My Project
OSParseosrl.tab.cpp
Go to the documentation of this file.
1/* A Bison parser, made by GNU Bison 2.3. */
2
3/* Skeleton implementation for Bison's Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6 Free Software Foundation, Inc.
7
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2, or (at your option)
11 any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA. */
22
23/* As a special exception, you may create a larger work that contains
24 part or all of the Bison parser skeleton and distribute that work
25 under terms of your choice, so long as that work isn't itself a
26 parser generator using the skeleton or a modified version thereof
27 as a parser skeleton. Alternatively, if you modify or redistribute
28 the parser skeleton itself, you may (at your option) remove this
29 special exception, which will cause the skeleton and the resulting
30 Bison output files to be licensed under the GNU General Public
31 License without this special exception.
32
33 This special exception was added by the Free Software Foundation in
34 version 2.2 of Bison. */
35
36/* C LALR(1) parser skeleton written by Richard Stallman, by
37 simplifying the original so-called "semantic" parser. */
38
39/* All symbols defined below should begin with yy or YY, to avoid
40 infringing on user name space. This should be done even for local
41 variables, as they might otherwise be expanded by user macros.
42 There are some unavoidable exceptions within include files to
43 define necessary library symbols; they are noted "INFRINGES ON
44 USER NAME SPACE" below. */
45
46/* Identify Bison output. */
47#define YYBISON 1
48
49/* Bison version. */
50#define YYBISON_VERSION "2.3"
51
52/* Skeleton name. */
53#define YYSKELETON_NAME "yacc.c"
54
55/* Pure parsers. */
56#define YYPURE 1
57
58/* Using locations. */
59#define YYLSP_NEEDED 1
60
61/* Substitute the variable and function names. */
62#define yyparse osrlparse
63#define yylex osrllex
64#define yyerror osrlerror
65#define yylval osrllval
66#define yychar osrlchar
67#define yydebug osrldebug
68#define yynerrs osrlnerrs
69#define yylloc osrllloc
70
71/* Tokens. */
72#ifndef YYTOKENTYPE
73# define YYTOKENTYPE
74 /* Put the tokens into the symbol table, so that GDB and other debuggers
75 know about them. */
79 INTEGER = 260,
80 DOUBLE = 261,
81 QUOTE = 262,
82 TWOQUOTES = 263,
85 OSRLSTART = 266,
88 OSRLEND = 269,
92 SYSTEMEND = 273,
95 JOBSTART = 276,
96 JOBEND = 277,
108 JOBIDEND = 289,
113 TIMEEND = 294,
124 VARSTART = 305,
125 VAREND = 306,
128 OBJSTART = 309,
129 OBJEND = 310,
132 CONSTART = 313,
133 CONEND = 314,
142 OTHEREND = 323,
155 IDXATT = 336,
156 TYPEATT = 337,
160 NAMEATT = 341,
164 UNITATT = 345,
166 VALUEATT = 347,
168 DUMMY = 349
169 };
170#endif
171/* Tokens. */
172#define ATTRIBUTETEXT 258
173#define ELEMENTTEXT 259
174#define INTEGER 260
175#define DOUBLE 261
176#define QUOTE 262
177#define TWOQUOTES 263
178#define GREATERTHAN 264
179#define ENDOFELEMENT 265
180#define OSRLSTART 266
181#define OSRLSTARTEMPTY 267
182#define OSRLATTRIBUTETEXT 268
183#define OSRLEND 269
184#define GENERALSTART 270
185#define GENERALEND 271
186#define SYSTEMSTART 272
187#define SYSTEMEND 273
188#define SERVICESTART 274
189#define SERVICEEND 275
190#define JOBSTART 276
191#define JOBEND 277
192#define SERVICEURISTARTANDEND 278
193#define SERVICEURISTART 279
194#define SERVICEURIEND 280
195#define SERVICENAMESTARTANDEND 281
196#define SERVICENAMESTART 282
197#define SERVICENAMEEND 283
198#define INSTANCENAMESTARTANDEND 284
199#define INSTANCENAMESTART 285
200#define INSTANCENAMEEND 286
201#define JOBIDSTARTANDEND 287
202#define JOBIDSTART 288
203#define JOBIDEND 289
204#define TIMINGINFORMATIONSTART 290
205#define TIMINGINFORMATIONEND 291
206#define TIMESTARTANDEND 292
207#define TIMESTART 293
208#define TIMEEND 294
209#define OPTIMIZATIONSTART 295
210#define OPTIMIZATIONEND 296
211#define SOLUTIONSTART 297
212#define SOLUTIONEND 298
213#define VALUESSTART 299
214#define VALUESEND 300
215#define DUALVALUESSTART 301
216#define DUALVALUESEND 302
217#define VARIABLESSTART 303
218#define VARIABLESEND 304
219#define VARSTART 305
220#define VAREND 306
221#define OBJECTIVESSTART 307
222#define OBJECTIVESEND 308
223#define OBJSTART 309
224#define OBJEND 310
225#define CONSTRAINTSSTART 311
226#define CONSTRAINTSEND 312
227#define CONSTART 313
228#define CONEND 314
229#define STATUSSTART 315
230#define STATUSEND 316
231#define GENERALSTATUSSTART 317
232#define GENERALSTATUSEND 318
233#define MESSAGESTART 319
234#define MESSAGEEND 320
235#define MESSAGESTARTANDEND 321
236#define OTHERSTART 322
237#define OTHEREND 323
238#define NUMBEROFTIMESATT 324
239#define NUMBEROFSOLUTIONSATT 325
240#define NUMBEROFVARIABLESATT 326
241#define NUMBEROFCONSTRAINTSATT 327
242#define NUMBEROFOBJECTIVESATT 328
243#define NUMBEROFOTHERVARIABLERESULTSATT 329
244#define NUMBEROFOTHEROBJECTIVERESULTSATT 330
245#define NUMBEROFOTHERCONSTRAINTRESULTSATT 331
246#define NUMBEROFVARATT 332
247#define NUMBEROFOBJATT 333
248#define NUMBEROFCONATT 334
249#define TARGETOBJECTIVEIDXATT 335
250#define IDXATT 336
251#define TYPEATT 337
252#define EMPTYTYPEATT 338
253#define DESCRIPTIONATT 339
254#define EMPTYDESCRIPTIONATT 340
255#define NAMEATT 341
256#define EMPTYNAMEATT 342
257#define CATEGORYATT 343
258#define EMPTYCATEGORYATT 344
259#define UNITATT 345
260#define EMPTYUNITATT 346
261#define VALUEATT 347
262#define EMPTYVALUEATT 348
263#define DUMMY 349
264
265
266
267
268/* Copy the first part of user declarations. */
269
270
271
272
273#include "OSDataStructures.h"
274#include "OSMathUtil.h"
275#include "OSParameters.h"
276#include "OSConfig.h"
277#include "OSErrorClass.h"
278#include "OSResult.h"
279#include "OSrLParserData.h"
280#include <iostream>
281#include <sstream>
282#include <stdio.h>
283
284
286YY_BUFFER_STATE osrl_scan_string (const char *yy_str , void* yyscanner );
287int osrllex_init(void** ptr_yy_globals);
288int osrllex_destroy (void* yyscanner );
289int osrlget_lineno( void* yyscanner);
290char *osrlget_text (void* yyscanner );
291void osrlset_lineno (int line_number , void* yyscanner );
292void osrlset_extra (OSrLParserData* parserData , void* yyscanner );
293void yygetOSResult(const char *ch, OSResult* m_osresult, OSrLParserData *m_parserData ) throw(ErrorClass);
294
295
296
297
298/* Enabling traces. */
299#ifndef YYDEBUG
300# define YYDEBUG 0
301#endif
302
303/* Enabling verbose error messages. */
304#ifdef YYERROR_VERBOSE
305# undef YYERROR_VERBOSE
306# define YYERROR_VERBOSE 1
307#else
308# define YYERROR_VERBOSE 0
309#endif
310
311/* Enabling the token table. */
312#ifndef YYTOKEN_TABLE
313# define YYTOKEN_TABLE 0
314#endif
315
316#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
317typedef union YYSTYPE
318
319{
320 double dval;
321 int ival;
322 char* sval;
323}
324/* Line 187 of yacc.c. */
325
327# define yystype YYSTYPE /* obsolescent; will be withdrawn */
328# define YYSTYPE_IS_DECLARED 1
329# define YYSTYPE_IS_TRIVIAL 1
330#endif
331
332#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
333typedef struct YYLTYPE
334{
335 int first_line;
336 int first_column;
337 int last_line;
338 int last_column;
340# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
341# define YYLTYPE_IS_DECLARED 1
342# define YYLTYPE_IS_TRIVIAL 1
343#endif
344
345
346/* Copy the second part of user declarations. */
347
348
349
350void osrlerror(YYLTYPE* type, OSResult *osresult, OSrLParserData *parserData ,const char* errormsg ) ;
351int osrllex(YYSTYPE* lvalp, YYLTYPE* llocp, void* scanner);
352
353#define scanner parserData->scanner
354
355
356/* Line 216 of yacc.c. */
357
358
359#ifdef short
360# undef short
361#endif
362
363#ifdef YYTYPE_UINT8
364typedef YYTYPE_UINT8 yytype_uint8;
365#else
366typedef unsigned char yytype_uint8;
367#endif
368
369#ifdef YYTYPE_INT8
370typedef YYTYPE_INT8 yytype_int8;
371#elif (defined __STDC__ || defined __C99__FUNC__ \
372 || defined __cplusplus || defined _MSC_VER)
373typedef signed char yytype_int8;
374#else
375typedef short int yytype_int8;
376#endif
377
378#ifdef YYTYPE_UINT16
379typedef YYTYPE_UINT16 yytype_uint16;
380#else
381typedef unsigned short int yytype_uint16;
382#endif
383
384#ifdef YYTYPE_INT16
385typedef YYTYPE_INT16 yytype_int16;
386#else
387typedef short int yytype_int16;
388#endif
389
390#ifndef YYSIZE_T
391# ifdef __SIZE_TYPE__
392# define YYSIZE_T __SIZE_TYPE__
393# elif defined size_t
394# define YYSIZE_T size_t
395# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
396 || defined __cplusplus || defined _MSC_VER)
397# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
398# define YYSIZE_T size_t
399# else
400# define YYSIZE_T unsigned int
401# endif
402#endif
403
404#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
405
406#ifndef YY_
407# if YYENABLE_NLS
408# if ENABLE_NLS
409# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
410# define YY_(msgid) dgettext ("bison-runtime", msgid)
411# endif
412# endif
413# ifndef YY_
414# define YY_(msgid) msgid
415# endif
416#endif
417
418/* Suppress unused-variable warnings by "using" E. */
419#if ! defined lint || defined __GNUC__
420# define YYUSE(e) ((void) (e))
421#else
422# define YYUSE(e) /* empty */
423#endif
424
425/* Identity function, used to suppress warnings about constant conditions. */
426#ifndef lint
427# define YYID(n) (n)
428#else
429#if (defined __STDC__ || defined __C99__FUNC__ \
430 || defined __cplusplus || defined _MSC_VER)
431static int
432YYID (int i)
433#else
434static int
435YYID (i)
436 int i;
437#endif
438{
439 return i;
440}
441#endif
442
443#if ! defined yyoverflow || YYERROR_VERBOSE
444
445/* The parser invokes alloca or malloc; define the necessary symbols. */
446
447# ifdef YYSTACK_USE_ALLOCA
448# if YYSTACK_USE_ALLOCA
449# ifdef __GNUC__
450# define YYSTACK_ALLOC __builtin_alloca
451# elif defined __BUILTIN_VA_ARG_INCR
452# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
453# elif defined _AIX
454# define YYSTACK_ALLOC __alloca
455# elif defined _MSC_VER
456# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
457# define alloca _alloca
458# else
459# define YYSTACK_ALLOC alloca
460# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
461 || defined __cplusplus || defined _MSC_VER)
462# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
463# ifndef _STDLIB_H
464# define _STDLIB_H 1
465# endif
466# endif
467# endif
468# endif
469# endif
470
471# ifdef YYSTACK_ALLOC
472 /* Pacify GCC's `empty if-body' warning. */
473# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
474# ifndef YYSTACK_ALLOC_MAXIMUM
475 /* The OS might guarantee only one guard page at the bottom of the stack,
476 and a page size can be as small as 4096 bytes. So we cannot safely
477 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
478 to allow for a few compiler-allocated temporary stack slots. */
479# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
480# endif
481# else
482# define YYSTACK_ALLOC YYMALLOC
483# define YYSTACK_FREE YYFREE
484# ifndef YYSTACK_ALLOC_MAXIMUM
485# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
486# endif
487# if (defined __cplusplus && ! defined _STDLIB_H \
488 && ! ((defined YYMALLOC || defined malloc) \
489 && (defined YYFREE || defined free)))
490# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
491# ifndef _STDLIB_H
492# define _STDLIB_H 1
493# endif
494# endif
495# ifndef YYMALLOC
496# define YYMALLOC malloc
497# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
498 || defined __cplusplus || defined _MSC_VER)
499void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
500# endif
501# endif
502# ifndef YYFREE
503# define YYFREE free
504# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
505 || defined __cplusplus || defined _MSC_VER)
506void free (void *); /* INFRINGES ON USER NAME SPACE */
507# endif
508# endif
509# endif
510#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
511
512
513#if (! defined yyoverflow \
514 && (! defined __cplusplus \
515 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
516 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
517
518/* A type that is properly aligned for any stack member. */
519union yyalloc
520{
524};
525
526/* The size of the maximum gap between one aligned stack and the next. */
527# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
528
529/* The size of an array large to enough to hold all stacks, each with
530 N elements. */
531# define YYSTACK_BYTES(N) \
532 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
533 + 2 * YYSTACK_GAP_MAXIMUM)
534
535/* Copy COUNT objects from FROM to TO. The source and destination do
536 not overlap. */
537# ifndef YYCOPY
538# if defined __GNUC__ && 1 < __GNUC__
539# define YYCOPY(To, From, Count) \
540 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
541# else
542# define YYCOPY(To, From, Count) \
543 do \
544 { \
545 YYSIZE_T yyi; \
546 for (yyi = 0; yyi < (Count); yyi++) \
547 (To)[yyi] = (From)[yyi]; \
548 } \
549 while (YYID (0))
550# endif
551# endif
552
553/* Relocate STACK from its old location to the new one. The
554 local variables YYSIZE and YYSTACKSIZE give the old and new number of
555 elements in the stack, and YYPTR gives the new location of the
556 stack. Advance YYPTR to a properly aligned location for the next
557 stack. */
558# define YYSTACK_RELOCATE(Stack) \
559 do \
560 { \
561 YYSIZE_T yynewbytes; \
562 YYCOPY (&yyptr->Stack, Stack, yysize); \
563 Stack = &yyptr->Stack; \
564 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
565 yyptr += yynewbytes / sizeof (*yyptr); \
566 } \
567 while (YYID (0))
568
569#endif
570
571/* YYFINAL -- State number of the termination state. */
572#define YYFINAL 6
573/* YYLAST -- Last index in YYTABLE. */
574#define YYLAST 252
575
576/* YYNTOKENS -- Number of terminals. */
577#define YYNTOKENS 99
578/* YYNNTS -- Number of nonterminals. */
579#define YYNNTS 80
580/* YYNRULES -- Number of rules. */
581#define YYNRULES 160
582/* YYNRULES -- Number of states. */
583#define YYNSTATES 299
584
585/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
586#define YYUNDEFTOK 2
587#define YYMAXUTOK 349
588
589#define YYTRANSLATE(YYX) \
590 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
591
592/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
593static const yytype_uint8 yytranslate[] =
594{
595 0, 2, 2, 2, 2, 2, 2, 2, 2, 96,
596 98, 2, 2, 97, 2, 2, 2, 2, 2, 2,
597 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
598 2, 2, 95, 2, 2, 2, 2, 2, 2, 2,
599 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
600 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
601 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
602 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
603 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
604 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
605 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
606 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
607 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
608 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
609 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
610 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
611 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
612 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
613 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
614 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
615 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
616 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
617 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
618 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
619 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
620 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
621 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
622 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
623 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
624 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
625 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
626 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
627 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
628 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
629 85, 86, 87, 88, 89, 90, 91, 92, 93, 94
630};
631
632#if YYDEBUG
633/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
634 YYRHS. */
635static const yytype_uint16 yyprhs[] =
636{
637 0, 0, 3, 11, 14, 18, 19, 28, 33, 37,
638 39, 42, 46, 48, 52, 54, 55, 57, 61, 64,
639 65, 67, 71, 74, 75, 77, 81, 84, 85, 87,
640 91, 94, 95, 97, 101, 104, 105, 108, 109, 112,
641 113, 117, 118, 122, 127, 129, 133, 134, 137, 139,
642 145, 146, 149, 151, 153, 155, 157, 161, 163, 167,
643 169, 173, 175, 179, 181, 183, 185, 186, 187, 192,
644 193, 197, 199, 202, 203, 206, 209, 212, 215, 218,
645 222, 226, 230, 234, 235, 238, 248, 249, 254, 259,
646 263, 265, 268, 272, 274, 278, 280, 281, 285, 288,
647 289, 300, 301, 306, 311, 313, 316, 322, 324, 326,
648 327, 330, 336, 338, 339, 342, 344, 346, 348, 350,
649 355, 357, 361, 363, 367, 371, 372, 375, 381, 383,
650 385, 387, 389, 390, 400, 405, 406, 409, 415, 421,
651 422, 423, 434, 439, 441, 444, 450, 456, 460, 461,
652 463, 464, 466, 468, 471, 474, 476, 478, 480, 482,
653 483
654};
655
656/* YYRHS -- A `-1'-separated list of the rules' RHS. */
657static const yytype_int16 yyrhs[] =
658{
659 100, 0, -1, 101, 102, 111, 112, 113, 126, 14,
660 -1, 11, 9, -1, 11, 13, 9, -1, -1, 15,
661 103, 106, 107, 108, 109, 110, 16, -1, 62, 104,
662 9, 63, -1, 62, 104, 10, -1, 105, -1, 104,
663 105, -1, 82, 3, 176, -1, 83, -1, 84, 3,
664 176, -1, 85, -1, -1, 23, -1, 24, 4, 25,
665 -1, 24, 25, -1, -1, 26, -1, 27, 4, 28,
666 -1, 27, 28, -1, -1, 29, -1, 30, 4, 31,
667 -1, 30, 31, -1, -1, 32, -1, 33, 4, 34,
668 -1, 33, 34, -1, -1, 66, -1, 64, 4, 65,
669 -1, 64, 65, -1, -1, 17, 18, -1, -1, 19,
670 20, -1, -1, 21, 114, 22, -1, -1, 35, 115,
671 116, -1, 69, 7, 5, 7, -1, 10, -1, 9,
672 117, 36, -1, -1, 117, 118, -1, 37, -1, 38,
673 119, 9, 125, 39, -1, -1, 119, 120, -1, 121,
674 -1, 122, -1, 123, -1, 124, -1, 82, 3, 7,
675 -1, 83, -1, 88, 3, 7, -1, 89, -1, 90,
676 3, 7, -1, 91, -1, 84, 3, 7, -1, 85,
677 -1, 6, -1, 5, -1, -1, -1, 40, 128, 127,
678 41, -1, -1, 131, 129, 130, -1, 10, -1, 9,
679 137, -1, -1, 131, 132, -1, 133, 176, -1, 134,
680 176, -1, 135, 176, -1, 136, 176, -1, 70, 176,
681 5, -1, 71, 176, 5, -1, 72, 176, 5, -1,
682 73, 176, 5, -1, -1, 137, 138, -1, 42, 139,
683 9, 140, 143, 144, 163, 167, 175, -1, -1, 80,
684 176, 5, 176, -1, 60, 141, 9, 61, -1, 60,
685 141, 10, -1, 142, -1, 141, 142, -1, 82, 3,
686 176, -1, 83, -1, 84, 3, 176, -1, 85, -1,
687 -1, 64, 4, 65, -1, 64, 65, -1, -1, 48,
688 145, 9, 44, 146, 9, 147, 45, 150, 49, -1,
689 -1, 74, 176, 5, 176, -1, 77, 176, 5, 176,
690 -1, 148, -1, 147, 148, -1, 50, 172, 9, 149,
691 51, -1, 5, -1, 6, -1, -1, 150, 151, -1,
692 152, 153, 9, 159, 68, -1, 67, -1, -1, 154,
693 153, -1, 155, -1, 156, -1, 157, -1, 158, -1,
694 77, 176, 5, 176, -1, 93, -1, 92, 3, 176,
695 -1, 87, -1, 86, 3, 176, -1, 84, 3, 176,
696 -1, -1, 160, 159, -1, 162, 172, 9, 161, 51,
697 -1, 4, -1, 5, -1, 6, -1, 50, -1, -1,
698 52, 9, 44, 164, 9, 165, 45, 173, 53, -1,
699 78, 176, 5, 176, -1, -1, 165, 166, -1, 54,
700 172, 9, 6, 55, -1, 54, 172, 9, 5, 55,
701 -1, -1, -1, 56, 9, 46, 169, 168, 9, 170,
702 47, 174, 57, -1, 79, 176, 5, 176, -1, 171,
703 -1, 170, 171, -1, 58, 172, 9, 6, 59, -1,
704 58, 172, 9, 5, 59, -1, 81, 5, 176, -1,
705 -1, 94, -1, -1, 94, -1, 43, -1, 94, 43,
706 -1, 178, 7, -1, 95, -1, 96, -1, 97, -1,
707 98, -1, -1, 178, 177, -1
708};
709
710/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
711static const yytype_uint16 yyrline[] =
712{
713 0, 116, 116, 119, 120, 124, 124, 126, 127, 129,
714 130, 132, 133, 134, 135, 138, 139, 140, 141, 144,
715 145, 146, 147, 149, 150, 151, 152, 154, 155, 156,
716 157, 159, 160, 161, 162, 164, 164, 166, 166, 168,
717 168, 170, 171, 173, 179, 179, 181, 181, 183, 184,
718 196, 196, 198, 198, 198, 198, 200, 201, 203, 204,
719 206, 207, 209, 210, 213, 214, 218, 218, 218, 221,
720 220, 248, 249, 251, 252, 254, 255, 256, 257, 261,
721 263, 265, 267, 271, 272, 275, 282, 283, 286, 287,
722 290, 291, 293, 294, 295, 296, 298, 299, 301, 305,
723 306, 309, 310, 321, 327, 328, 330, 349, 350, 353,
724 354, 356, 401, 410, 413, 415, 415, 415, 415, 417,
725 423, 424, 428, 432, 437, 445, 446, 448, 469, 470,
726 471, 473, 478, 479, 481, 483, 484, 486, 488, 491,
727 493, 492, 504, 506, 507, 509, 512, 519, 525, 526,
728 528, 529, 531, 532, 538, 540, 541, 542, 543, 545,
729 546
730};
731#endif
732
733#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
734/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
735 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
736static const char *const yytname[] =
737{
738 "$end", "error", "$undefined", "ATTRIBUTETEXT", "ELEMENTTEXT",
739 "INTEGER", "DOUBLE", "QUOTE", "TWOQUOTES", "GREATERTHAN", "ENDOFELEMENT",
740 "OSRLSTART", "OSRLSTARTEMPTY", "OSRLATTRIBUTETEXT", "OSRLEND",
741 "GENERALSTART", "GENERALEND", "SYSTEMSTART", "SYSTEMEND", "SERVICESTART",
742 "SERVICEEND", "JOBSTART", "JOBEND", "SERVICEURISTARTANDEND",
743 "SERVICEURISTART", "SERVICEURIEND", "SERVICENAMESTARTANDEND",
744 "SERVICENAMESTART", "SERVICENAMEEND", "INSTANCENAMESTARTANDEND",
745 "INSTANCENAMESTART", "INSTANCENAMEEND", "JOBIDSTARTANDEND", "JOBIDSTART",
746 "JOBIDEND", "TIMINGINFORMATIONSTART", "TIMINGINFORMATIONEND",
747 "TIMESTARTANDEND", "TIMESTART", "TIMEEND", "OPTIMIZATIONSTART",
748 "OPTIMIZATIONEND", "SOLUTIONSTART", "SOLUTIONEND", "VALUESSTART",
749 "VALUESEND", "DUALVALUESSTART", "DUALVALUESEND", "VARIABLESSTART",
750 "VARIABLESEND", "VARSTART", "VAREND", "OBJECTIVESSTART", "OBJECTIVESEND",
751 "OBJSTART", "OBJEND", "CONSTRAINTSSTART", "CONSTRAINTSEND", "CONSTART",
752 "CONEND", "STATUSSTART", "STATUSEND", "GENERALSTATUSSTART",
753 "GENERALSTATUSEND", "MESSAGESTART", "MESSAGEEND", "MESSAGESTARTANDEND",
754 "OTHERSTART", "OTHEREND", "NUMBEROFTIMESATT", "NUMBEROFSOLUTIONSATT",
755 "NUMBEROFVARIABLESATT", "NUMBEROFCONSTRAINTSATT",
756 "NUMBEROFOBJECTIVESATT", "NUMBEROFOTHERVARIABLERESULTSATT",
757 "NUMBEROFOTHEROBJECTIVERESULTSATT", "NUMBEROFOTHERCONSTRAINTRESULTSATT",
758 "NUMBEROFVARATT", "NUMBEROFOBJATT", "NUMBEROFCONATT",
759 "TARGETOBJECTIVEIDXATT", "IDXATT", "TYPEATT", "EMPTYTYPEATT",
760 "DESCRIPTIONATT", "EMPTYDESCRIPTIONATT", "NAMEATT", "EMPTYNAMEATT",
761 "CATEGORYATT", "EMPTYCATEGORYATT", "UNITATT", "EMPTYUNITATT", "VALUEATT",
762 "EMPTYVALUEATT", "DUMMY", "' '", "'\\t'", "'\\r'", "'\\n'", "$accept",
763 "osrldoc", "osrlstart", "generalElement", "generalStatus",
764 "anotherGeneralStatusATT", "generalstatusatt", "serviceURI",
765 "serviceName", "instanceName", "jobID", "headerMessage", "systemElement",
766 "serviceElement", "jobElement", "timingInformation", "numberoftimes",
767 "timingContent", "listOfTimes", "time", "timeAttList", "timeAtt",
768 "timeType", "timeCategory", "timeUnit", "timeDescription", "timeValue",
769 "optimizationElement", "@1", "optimizationContent", "@2", "optend",
770 "anotherOptATT", "optatt", "optnumsolatt", "optnumvaratt",
771 "optnumconatt", "optnumobjatt", "solution", "anothersolution",
772 "targetObjectiveIDXATT", "status", "anotherStatusATT", "statusatt",
773 "message", "variables", "numberOfOtherVariableResults", "numberOfVarATT",
774 "var", "anothervar", "DoubleOrInt", "otherVariables",
775 "otherVariableResult", "otherVariableStart", "otherVariableATTlist",
776 "othervariableATT", "numberOfOtherVarATT", "otherVarValueATT",
777 "otherVarNameATT", "otherVarDescriptionATT", "othervarlist", "othervar",
778 "ElementValue", "othervarstart", "objectives", "numberOfObjATT", "obj",
779 "anotherobj", "constraints", "@3", "numberOfConATT", "con", "anothercon",
780 "anIDXATT", "otherObjectives", "otherConstraints", "otherSolution",
781 "quote", "xmlWhiteSpaceChar", "xmlWhiteSpace", 0
782};
783#endif
784
785# ifdef YYPRINT
786/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
787 token YYLEX-NUM. */
788static const yytype_uint16 yytoknum[] =
789{
790 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
791 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
792 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
793 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
794 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
795 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
796 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
797 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
798 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
799 345, 346, 347, 348, 349, 32, 9, 13, 10
800};
801# endif
802
803/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
804static const yytype_uint8 yyr1[] =
805{
806 0, 99, 100, 101, 101, 102, 102, 103, 103, 104,
807 104, 105, 105, 105, 105, 106, 106, 106, 106, 107,
808 107, 107, 107, 108, 108, 108, 108, 109, 109, 109,
809 109, 110, 110, 110, 110, 111, 111, 112, 112, 113,
810 113, 114, 114, 115, 116, 116, 117, 117, 118, 118,
811 119, 119, 120, 120, 120, 120, 121, 121, 122, 122,
812 123, 123, 124, 124, 125, 125, 126, 127, 126, 129,
813 128, 130, 130, 131, 131, 132, 132, 132, 132, 133,
814 134, 135, 136, 137, 137, 138, 139, 139, 140, 140,
815 141, 141, 142, 142, 142, 142, 143, 143, 143, 144,
816 144, 145, 145, 146, 147, 147, 148, 149, 149, 150,
817 150, 151, 152, 153, 153, 154, 154, 154, 154, 155,
818 156, 156, 157, 157, 158, 159, 159, 160, 161, 161,
819 161, 162, 163, 163, 164, 165, 165, 166, 166, 167,
820 168, 167, 169, 170, 170, 171, 171, 172, 173, 173,
821 174, 174, 175, 175, 176, 177, 177, 177, 177, 178,
822 178
823};
824
825/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
826static const yytype_uint8 yyr2[] =
827{
828 0, 2, 7, 2, 3, 0, 8, 4, 3, 1,
829 2, 3, 1, 3, 1, 0, 1, 3, 2, 0,
830 1, 3, 2, 0, 1, 3, 2, 0, 1, 3,
831 2, 0, 1, 3, 2, 0, 2, 0, 2, 0,
832 3, 0, 3, 4, 1, 3, 0, 2, 1, 5,
833 0, 2, 1, 1, 1, 1, 3, 1, 3, 1,
834 3, 1, 3, 1, 1, 1, 0, 0, 4, 0,
835 3, 1, 2, 0, 2, 2, 2, 2, 2, 3,
836 3, 3, 3, 0, 2, 9, 0, 4, 4, 3,
837 1, 2, 3, 1, 3, 1, 0, 3, 2, 0,
838 10, 0, 4, 4, 1, 2, 5, 1, 1, 0,
839 2, 5, 1, 0, 2, 1, 1, 1, 1, 4,
840 1, 3, 1, 3, 3, 0, 2, 5, 1, 1,
841 1, 1, 0, 9, 4, 0, 2, 5, 5, 0,
842 0, 10, 4, 1, 2, 5, 5, 3, 0, 1,
843 0, 1, 1, 2, 2, 1, 1, 1, 1, 0,
844 2
845};
846
847/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
848 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
849 means the default is an error. */
850static const yytype_uint8 yydefact[] =
851{
852 0, 0, 0, 5, 3, 0, 1, 0, 35, 4,
853 0, 15, 0, 37, 0, 12, 0, 14, 0, 9,
854 16, 0, 19, 36, 0, 39, 159, 159, 0, 8,
855 10, 0, 18, 20, 0, 23, 38, 41, 66, 11,
856 0, 13, 7, 17, 0, 22, 24, 0, 27, 0,
857 0, 73, 0, 154, 155, 156, 157, 158, 160, 21,
858 0, 26, 28, 0, 31, 0, 0, 40, 67, 69,
859 2, 25, 0, 30, 0, 32, 0, 0, 46, 44,
860 42, 0, 159, 159, 159, 159, 0, 74, 159, 159,
861 159, 159, 29, 0, 34, 6, 0, 0, 68, 0,
862 0, 0, 0, 83, 71, 70, 75, 76, 77, 78,
863 33, 43, 45, 48, 50, 47, 79, 80, 81, 82,
864 72, 0, 86, 84, 0, 0, 57, 0, 63, 0,
865 59, 0, 61, 51, 52, 53, 54, 55, 159, 0,
866 65, 64, 0, 0, 0, 0, 0, 0, 0, 49,
867 56, 62, 58, 60, 159, 0, 96, 87, 0, 93,
868 0, 95, 0, 90, 0, 99, 159, 159, 0, 89,
869 91, 0, 98, 101, 132, 92, 94, 88, 97, 159,
870 0, 0, 139, 0, 0, 0, 0, 0, 159, 0,
871 0, 0, 152, 0, 85, 102, 159, 0, 159, 0,
872 0, 153, 0, 0, 0, 135, 159, 140, 159, 0,
873 0, 104, 159, 0, 0, 0, 103, 0, 0, 109,
874 105, 134, 148, 0, 136, 159, 0, 159, 0, 0,
875 149, 0, 0, 142, 0, 0, 143, 147, 107, 108,
876 0, 100, 112, 110, 113, 133, 0, 0, 150, 144,
877 106, 159, 0, 0, 122, 0, 120, 0, 113, 115,
878 116, 117, 118, 0, 0, 0, 151, 0, 0, 159,
879 159, 159, 125, 114, 138, 137, 0, 0, 141, 159,
880 124, 123, 121, 131, 0, 125, 0, 146, 145, 119,
881 111, 126, 0, 0, 128, 129, 130, 0, 127
882};
883
884/* YYDEFGOTO[NTERM-NUM]. */
885static const yytype_int16 yydefgoto[] =
886{
887 -1, 2, 3, 8, 11, 18, 19, 22, 35, 48,
888 64, 76, 13, 25, 38, 50, 66, 80, 97, 115,
889 121, 133, 134, 135, 136, 137, 142, 52, 81, 68,
890 86, 105, 69, 87, 88, 89, 90, 91, 120, 123,
891 139, 156, 162, 163, 165, 174, 180, 197, 210, 211,
892 240, 229, 243, 244, 257, 258, 259, 260, 261, 262,
893 284, 285, 297, 286, 182, 199, 213, 224, 187, 215,
894 207, 235, 236, 218, 231, 267, 194, 39, 58, 40
895};
896
897/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
898 STATE-NUM. */
899#define YYPACT_NINF -221
900static const yytype_int16 yypact[] =
901{
902 13, 14, 29, 16, -221, 24, -221, -24, 43, -221,
903 -41, 56, 98, 55, 114, -221, 115, -221, 3, -221,
904 -221, 7, 71, -221, 99, 100, -221, -221, 57, -221,
905 -221, 97, -221, -221, 6, 70, -221, 88, 84, -221,
906 -6, -221, -221, -221, 101, -221, -221, 5, 69, 59,
907 103, -221, 112, -221, -221, -221, -221, -221, -221, -221,
908 105, -221, -221, 1, -48, 123, 94, -221, -221, -23,
909 -221, -221, 108, -221, 0, -221, 116, 126, -221, -221,
910 -221, 92, -221, -221, -221, -221, 96, -221, -221, -221,
911 -221, -221, -221, 72, -221, -221, 127, 32, -221, 130,
912 133, 136, 138, -221, -221, -221, -221, -221, -221, -221,
913 -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
914 106, -7, 64, -221, 102, 142, -221, 143, -221, 144,
915 -221, 146, -221, -221, -221, -221, -221, -221, -221, 141,
916 -221, -221, 117, 147, 148, 150, 151, 154, 91, -221,
917 -221, -221, -221, -221, -221, -31, 89, -221, 157, -221,
918 159, -221, 11, -221, 2, 118, -221, -221, 111, -221,
919 -221, 110, -221, 90, 113, -221, -221, -221, -221, -221,
920 158, 161, 120, 163, 119, 129, 165, -35, -221, 122,
921 124, 131, -221, 135, -221, -221, -221, 171, -221, 173,
922 125, -221, 178, 134, 181, -221, -221, -221, -221, 128,
923 -28, -221, -221, -26, 182, 179, -221, 184, 183, -221,
924 -221, -221, 121, 128, -221, -221, 132, -221, 104, -42,
925 -221, 140, 185, -221, 128, -32, -221, -221, -221, -221,
926 145, -221, -221, -221, -47, -221, 107, 186, 137, -221,
927 -221, -221, 188, 194, -221, 198, -221, 196, -47, -221,
928 -221, -221, -221, 152, 153, 109, -221, 149, 205, -221,
929 -221, -221, 162, -221, -221, -221, 155, 160, -221, -221,
930 -221, -221, -221, -221, 164, 162, 128, -221, -221, -221,
931 -221, -221, 202, 67, -221, -221, -221, 166, -221
932};
933
934/* YYPGOTO[NTERM-NUM]. */
935static const yytype_int16 yypgoto[] =
936{
937 -221, -221, -221, -221, -221, -221, 195, -221, -221, -221,
938 -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
939 -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
940 -221, -221, -221, -221, -221, -221, -221, -221, -221, -221,
941 -221, -221, -221, 41, -221, -221, -221, -221, -221, 8,
942 -221, -221, -221, -221, -38, -221, -221, -221, -221, -221,
943 -69, -221, -221, -221, -221, -221, -221, -221, -221, -221,
944 -221, -221, -14, -220, -221, -221, -221, -27, -221, -221
945};
946
947/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
948 positive, shift that token. If negative, reduce the rule which
949 number is the opposite. If zero, do what YYDEFACT says.
950 If YYTABLE_NINF, syntax error. */
951#define YYTABLE_NINF -1
952static const yytype_uint16 yytable[] =
953{
954 41, 53, 124, 232, 93, 72, 171, 241, 192, 60,
955 44, 31, 28, 29, 247, 248, 74, 219, 75, 222,
956 168, 169, 209, 4, 1, 242, 234, 5, 223, 6,
957 251, 7, 32, 9, 45, 73, 61, 252, 10, 253,
958 254, 14, 15, 16, 17, 255, 256, 82, 83, 84,
959 85, 158, 159, 160, 161, 99, 100, 101, 102, 193,
960 12, 106, 107, 108, 109, 94, 292, 172, 112, 113,
961 114, 294, 295, 296, 24, 125, 126, 127, 128, 20,
962 21, 129, 130, 131, 132, 14, 15, 16, 17, 54,
963 55, 56, 57, 158, 159, 160, 161, 33, 34, 46,
964 47, 62, 63, 78, 79, 103, 104, 140, 141, 238,
965 239, 147, 263, 264, 276, 277, 23, 26, 27, 36,
966 42, 37, 43, 49, 51, 67, 70, 157, 65, 59,
967 77, 96, 95, 98, 111, 116, 71, 110, 117, 175,
968 176, 118, 92, 119, 138, 143, 144, 145, 122, 146,
969 148, 155, 183, 164, 150, 151, 149, 152, 153, 154,
970 166, 195, 167, 189, 179, 181, 173, 184, 188, 202,
971 185, 204, 177, 190, 191, 178, 186, 200, 201, 214,
972 203, 216, 205, 208, 209, 221, 212, 225, 226, 227,
973 234, 269, 228, 245, 246, 265, 250, 270, 233, 196,
974 237, 271, 198, 170, 206, 272, 278, 274, 275, 217,
975 279, 293, 283, 30, 287, 230, 291, 298, 220, 288,
976 273, 249, 0, 0, 268, 0, 0, 0, 0, 0,
977 0, 266, 290, 0, 0, 0, 0, 0, 0, 0,
978 0, 0, 280, 281, 282, 0, 0, 0, 0, 0,
979 0, 0, 289
980};
981
982static const yytype_int16 yycheck[] =
983{
984 27, 7, 9, 223, 4, 4, 4, 49, 43, 4,
985 4, 4, 9, 10, 234, 47, 64, 45, 66, 45,
986 9, 10, 50, 9, 11, 67, 58, 13, 54, 0,
987 77, 15, 25, 9, 28, 34, 31, 84, 62, 86,
988 87, 82, 83, 84, 85, 92, 93, 70, 71, 72,
989 73, 82, 83, 84, 85, 82, 83, 84, 85, 94,
990 17, 88, 89, 90, 91, 65, 286, 65, 36, 37,
991 38, 4, 5, 6, 19, 82, 83, 84, 85, 23,
992 24, 88, 89, 90, 91, 82, 83, 84, 85, 95,
993 96, 97, 98, 82, 83, 84, 85, 26, 27, 29,
994 30, 32, 33, 9, 10, 9, 10, 5, 6, 5,
995 6, 138, 5, 6, 5, 6, 18, 3, 3, 20,
996 63, 21, 25, 35, 40, 22, 14, 154, 69, 28,
997 7, 5, 16, 41, 7, 5, 31, 65, 5, 166,
998 167, 5, 34, 5, 80, 3, 3, 3, 42, 3,
999 9, 60, 179, 64, 7, 7, 39, 7, 7, 5,
1000 3, 188, 3, 44, 74, 52, 48, 9, 5, 196,
1001 9, 198, 61, 44, 9, 65, 56, 46, 43, 206,
1002 9, 208, 9, 5, 50, 212, 5, 5, 9, 5,
1003 58, 3, 9, 53, 9, 9, 51, 3, 225, 77,
1004 227, 3, 78, 162, 79, 9, 57, 55, 55, 81,
1005 5, 9, 50, 18, 59, 94, 285, 51, 210, 59,
1006 258, 235, -1, -1, 251, -1, -1, -1, -1, -1,
1007 -1, 94, 68, -1, -1, -1, -1, -1, -1, -1,
1008 -1, -1, 269, 270, 271, -1, -1, -1, -1, -1,
1009 -1, -1, 279
1010};
1011
1012/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1013 symbol of state STATE-NUM. */
1014static const yytype_uint8 yystos[] =
1015{
1016 0, 11, 100, 101, 9, 13, 0, 15, 102, 9,
1017 62, 103, 17, 111, 82, 83, 84, 85, 104, 105,
1018 23, 24, 106, 18, 19, 112, 3, 3, 9, 10,
1019 105, 4, 25, 26, 27, 107, 20, 21, 113, 176,
1020 178, 176, 63, 25, 4, 28, 29, 30, 108, 35,
1021 114, 40, 126, 7, 95, 96, 97, 98, 177, 28,
1022 4, 31, 32, 33, 109, 69, 115, 22, 128, 131,
1023 14, 31, 4, 34, 64, 66, 110, 7, 9, 10,
1024 116, 127, 70, 71, 72, 73, 129, 132, 133, 134,
1025 135, 136, 34, 4, 65, 16, 5, 117, 41, 176,
1026 176, 176, 176, 9, 10, 130, 176, 176, 176, 176,
1027 65, 7, 36, 37, 38, 118, 5, 5, 5, 5,
1028 137, 119, 42, 138, 9, 82, 83, 84, 85, 88,
1029 89, 90, 91, 120, 121, 122, 123, 124, 80, 139,
1030 5, 6, 125, 3, 3, 3, 3, 176, 9, 39,
1031 7, 7, 7, 7, 5, 60, 140, 176, 82, 83,
1032 84, 85, 141, 142, 64, 143, 3, 3, 9, 10,
1033 142, 4, 65, 48, 144, 176, 176, 61, 65, 74,
1034 145, 52, 163, 176, 9, 9, 56, 167, 5, 44,
1035 44, 9, 43, 94, 175, 176, 77, 146, 78, 164,
1036 46, 43, 176, 9, 176, 9, 79, 169, 5, 50,
1037 147, 148, 5, 165, 176, 168, 176, 81, 172, 45,
1038 148, 176, 45, 54, 166, 5, 9, 5, 9, 150,
1039 94, 173, 172, 176, 58, 170, 171, 176, 5, 6,
1040 149, 49, 67, 151, 152, 53, 9, 172, 47, 171,
1041 51, 77, 84, 86, 87, 92, 93, 153, 154, 155,
1042 156, 157, 158, 5, 6, 9, 94, 174, 176, 3,
1043 3, 3, 9, 153, 55, 55, 5, 6, 57, 5,
1044 176, 176, 176, 50, 159, 160, 162, 59, 59, 176,
1045 68, 159, 172, 9, 4, 5, 6, 161, 51
1046};
1047
1048#define yyerrok (yyerrstatus = 0)
1049#define yyclearin (yychar = YYEMPTY)
1050#define YYEMPTY (-2)
1051#define YYEOF 0
1052
1053#define YYACCEPT goto yyacceptlab
1054#define YYABORT goto yyabortlab
1055#define YYERROR goto yyerrorlab
1056
1057
1058/* Like YYERROR except do call yyerror. This remains here temporarily
1059 to ease the transition to the new meaning of YYERROR, for GCC.
1060 Once GCC version 2 has supplanted version 1, this can go. */
1061
1062#define YYFAIL goto yyerrlab
1063
1064#define YYRECOVERING() (!!yyerrstatus)
1065
1066#define YYBACKUP(Token, Value) \
1067do \
1068 if (yychar == YYEMPTY && yylen == 1) \
1069 { \
1070 yychar = (Token); \
1071 yylval = (Value); \
1072 yytoken = YYTRANSLATE (yychar); \
1073 YYPOPSTACK (1); \
1074 goto yybackup; \
1075 } \
1076 else \
1077 { \
1078 yyerror (&yylloc, osresult, parserData, YY_("syntax error: cannot back up")); \
1079 YYERROR; \
1080 } \
1081while (YYID (0))
1082
1083
1084#define YYTERROR 1
1085#define YYERRCODE 256
1086
1087
1088/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1089 If N is 0, then set CURRENT to the empty location which ends
1090 the previous symbol: RHS[0] (always defined). */
1091
1092#define YYRHSLOC(Rhs, K) ((Rhs)[K])
1093#ifndef YYLLOC_DEFAULT
1094# define YYLLOC_DEFAULT(Current, Rhs, N) \
1095 do \
1096 if (YYID (N)) \
1097 { \
1098 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1099 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1100 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1101 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1102 } \
1103 else \
1104 { \
1105 (Current).first_line = (Current).last_line = \
1106 YYRHSLOC (Rhs, 0).last_line; \
1107 (Current).first_column = (Current).last_column = \
1108 YYRHSLOC (Rhs, 0).last_column; \
1109 } \
1110 while (YYID (0))
1111#endif
1112
1113
1114/* YY_LOCATION_PRINT -- Print the location on the stream.
1115 This macro was not mandated originally: define only if we know
1116 we won't break user code: when these are the locations we know. */
1117
1118#ifndef YY_LOCATION_PRINT
1119# if YYLTYPE_IS_TRIVIAL
1120# define YY_LOCATION_PRINT(File, Loc) \
1121 fprintf (File, "%d.%d-%d.%d", \
1122 (Loc).first_line, (Loc).first_column, \
1123 (Loc).last_line, (Loc).last_column)
1124# else
1125# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1126# endif
1127#endif
1128
1129
1130/* YYLEX -- calling `yylex' with the right arguments. */
1131
1132#ifdef YYLEX_PARAM
1133# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
1134#else
1135# define YYLEX yylex (&yylval, &yylloc, scanner)
1136#endif
1137
1138/* Enable debugging if requested. */
1139#if YYDEBUG
1140
1141# ifndef YYFPRINTF
1142# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1143# define YYFPRINTF fprintf
1144# endif
1145
1146# define YYDPRINTF(Args) \
1147do { \
1148 if (yydebug) \
1149 YYFPRINTF Args; \
1150} while (YYID (0))
1151
1152# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1153do { \
1154 if (yydebug) \
1155 { \
1156 YYFPRINTF (stderr, "%s ", Title); \
1157 yy_symbol_print (stderr, \
1158 Type, Value, Location, osresult, parserData); \
1159 YYFPRINTF (stderr, "\n"); \
1160 } \
1161} while (YYID (0))
1162
1163
1164/*--------------------------------.
1165| Print this symbol on YYOUTPUT. |
1166`--------------------------------*/
1167
1168/*ARGSUSED*/
1169#if (defined __STDC__ || defined __C99__FUNC__ \
1170 || defined __cplusplus || defined _MSC_VER)
1171static void
1172yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, OSResult *osresult, OSrLParserData *parserData)
1173#else
1174static void
1175yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, osresult, parserData)
1176 FILE *yyoutput;
1177 int yytype;
1178 YYSTYPE const * const yyvaluep;
1179 YYLTYPE const * const yylocationp;
1182#endif
1183{
1184 if (!yyvaluep)
1185 return;
1187 YYUSE (osresult);
1188 YYUSE (parserData);
1189# ifdef YYPRINT
1190 if (yytype < YYNTOKENS)
1191 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1192# else
1193 YYUSE (yyoutput);
1194# endif
1195 switch (yytype)
1196 {
1197 default:
1198 break;
1199 }
1200}
1201
1202
1203/*--------------------------------.
1204| Print this symbol on YYOUTPUT. |
1205`--------------------------------*/
1206
1207#if (defined __STDC__ || defined __C99__FUNC__ \
1208 || defined __cplusplus || defined _MSC_VER)
1209static void
1210yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, OSResult *osresult, OSrLParserData *parserData)
1211#else
1212static void
1213yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, osresult, parserData)
1214 FILE *yyoutput;
1215 int yytype;
1216 YYSTYPE const * const yyvaluep;
1217 YYLTYPE const * const yylocationp;
1220#endif
1221{
1222 if (yytype < YYNTOKENS)
1223 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1224 else
1225 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1226
1227 YY_LOCATION_PRINT (yyoutput, *yylocationp);
1228 YYFPRINTF (yyoutput, ": ");
1229 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, osresult, parserData);
1230 YYFPRINTF (yyoutput, ")");
1231}
1232
1233/*------------------------------------------------------------------.
1234| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1235| TOP (included). |
1236`------------------------------------------------------------------*/
1237
1238#if (defined __STDC__ || defined __C99__FUNC__ \
1239 || defined __cplusplus || defined _MSC_VER)
1240static void
1241yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
1242#else
1243static void
1244yy_stack_print (bottom, top)
1245 yytype_int16 *bottom;
1246 yytype_int16 *top;
1247#endif
1248{
1249 YYFPRINTF (stderr, "Stack now");
1250 for (; bottom <= top; ++bottom)
1251 YYFPRINTF (stderr, " %d", *bottom);
1252 YYFPRINTF (stderr, "\n");
1253}
1254
1255# define YY_STACK_PRINT(Bottom, Top) \
1256do { \
1257 if (yydebug) \
1258 yy_stack_print ((Bottom), (Top)); \
1259} while (YYID (0))
1260
1261
1262/*------------------------------------------------.
1263| Report that the YYRULE is going to be reduced. |
1264`------------------------------------------------*/
1265
1266#if (defined __STDC__ || defined __C99__FUNC__ \
1267 || defined __cplusplus || defined _MSC_VER)
1268static void
1269yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, OSResult *osresult, OSrLParserData *parserData)
1270#else
1271static void
1272yy_reduce_print (yyvsp, yylsp, yyrule, osresult, parserData)
1273 YYSTYPE *yyvsp;
1274 YYLTYPE *yylsp;
1275 int yyrule;
1278#endif
1279{
1280 int yynrhs = yyr2[yyrule];
1281 int yyi;
1282 unsigned long int yylno = yyrline[yyrule];
1283 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1284 yyrule - 1, yylno);
1285 /* The symbols being reduced. */
1286 for (yyi = 0; yyi < yynrhs; yyi++)
1287 {
1288 fprintf (stderr, " $%d = ", yyi + 1);
1289 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1290 &(yyvsp[(yyi + 1) - (yynrhs)])
1291 , &(yylsp[(yyi + 1) - (yynrhs)]) , osresult, parserData);
1292 fprintf (stderr, "\n");
1293 }
1294}
1295
1296# define YY_REDUCE_PRINT(Rule) \
1297do { \
1298 if (yydebug) \
1299 yy_reduce_print (yyvsp, yylsp, Rule, osresult, parserData); \
1300} while (YYID (0))
1301
1302/* Nonzero means print parse trace. It is left uninitialized so that
1303 multiple parsers can coexist. */
1304int yydebug;
1305#else /* !YYDEBUG */
1306# define YYDPRINTF(Args)
1307# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1308# define YY_STACK_PRINT(Bottom, Top)
1309# define YY_REDUCE_PRINT(Rule)
1310#endif /* !YYDEBUG */
1311
1312
1313/* YYINITDEPTH -- initial size of the parser's stacks. */
1314#ifndef YYINITDEPTH
1315# define YYINITDEPTH 200
1316#endif
1317
1318/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1319 if the built-in stack extension method is used).
1320
1321 Do not make this value too large; the results are undefined if
1322 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1323 evaluated with infinite-precision integer arithmetic. */
1324
1325#ifndef YYMAXDEPTH
1326# define YYMAXDEPTH 10000
1327#endif
1328
1329
1330
1331#if YYERROR_VERBOSE
1332
1333# ifndef yystrlen
1334# if defined __GLIBC__ && defined _STRING_H
1335# define yystrlen strlen
1336# else
1337/* Return the length of YYSTR. */
1338#if (defined __STDC__ || defined __C99__FUNC__ \
1339 || defined __cplusplus || defined _MSC_VER)
1340static YYSIZE_T
1341yystrlen (const char *yystr)
1342#else
1343static YYSIZE_T
1344yystrlen (yystr)
1345 const char *yystr;
1346#endif
1347{
1349 for (yylen = 0; yystr[yylen]; yylen++)
1350 continue;
1351 return yylen;
1352}
1353# endif
1354# endif
1355
1356# ifndef yystpcpy
1357# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1358# define yystpcpy stpcpy
1359# else
1360/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1361 YYDEST. */
1362#if (defined __STDC__ || defined __C99__FUNC__ \
1363 || defined __cplusplus || defined _MSC_VER)
1364static char *
1365yystpcpy (char *yydest, const char *yysrc)
1366#else
1367static char *
1368yystpcpy (yydest, yysrc)
1369 char *yydest;
1370 const char *yysrc;
1371#endif
1372{
1373 char *yyd = yydest;
1374 const char *yys = yysrc;
1375
1376 while ((*yyd++ = *yys++) != '\0')
1377 continue;
1378
1379 return yyd - 1;
1380}
1381# endif
1382# endif
1383
1384# ifndef yytnamerr
1385/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1386 quotes and backslashes, so that it's suitable for yyerror. The
1387 heuristic is that double-quoting is unnecessary unless the string
1388 contains an apostrophe, a comma, or backslash (other than
1389 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1390 null, do not copy; instead, return the length of what the result
1391 would have been. */
1392static YYSIZE_T
1393yytnamerr (char *yyres, const char *yystr)
1394{
1395 if (*yystr == '"')
1396 {
1397 YYSIZE_T yyn = 0;
1398 char const *yyp = yystr;
1399
1400 for (;;)
1401 switch (*++yyp)
1402 {
1403 case '\'':
1404 case ',':
1405 goto do_not_strip_quotes;
1406
1407 case '\\':
1408 if (*++yyp != '\\')
1409 goto do_not_strip_quotes;
1410 /* Fall through. */
1411 default:
1412 if (yyres)
1413 yyres[yyn] = *yyp;
1414 yyn++;
1415 break;
1416
1417 case '"':
1418 if (yyres)
1419 yyres[yyn] = '\0';
1420 return yyn;
1421 }
1422 do_not_strip_quotes: ;
1423 }
1424
1425 if (! yyres)
1426 return yystrlen (yystr);
1427
1428 return yystpcpy (yyres, yystr) - yyres;
1429}
1430# endif
1431
1432/* Copy into YYRESULT an error message about the unexpected token
1433 YYCHAR while in state YYSTATE. Return the number of bytes copied,
1434 including the terminating null byte. If YYRESULT is null, do not
1435 copy anything; just return the number of bytes that would be
1436 copied. As a special case, return 0 if an ordinary "syntax error"
1437 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
1438 size calculation. */
1439static YYSIZE_T
1440yysyntax_error (char *yyresult, int yystate, int yychar)
1441{
1442 int yyn = yypact[yystate];
1443
1444 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
1445 return 0;
1446 else
1447 {
1448 int yytype = YYTRANSLATE (yychar);
1449 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1450 YYSIZE_T yysize = yysize0;
1451 YYSIZE_T yysize1;
1452 int yysize_overflow = 0;
1453 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1454 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1455 int yyx;
1456
1457# if 0
1458 /* This is so xgettext sees the translatable formats that are
1459 constructed on the fly. */
1460 YY_("syntax error, unexpected %s");
1461 YY_("syntax error, unexpected %s, expecting %s");
1462 YY_("syntax error, unexpected %s, expecting %s or %s");
1463 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1464 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1465# endif
1466 char *yyfmt;
1467 char const *yyf;
1468 static char const yyunexpected[] = "syntax error, unexpected %s";
1469 static char const yyexpecting[] = ", expecting %s";
1470 static char const yyor[] = " or %s";
1471 char yyformat[sizeof yyunexpected
1472 + sizeof yyexpecting - 1
1473 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
1474 * (sizeof yyor - 1))];
1475 char const *yyprefix = yyexpecting;
1476
1477 /* Start YYX at -YYN if negative to avoid negative indexes in
1478 YYCHECK. */
1479 int yyxbegin = yyn < 0 ? -yyn : 0;
1480
1481 /* Stay within bounds of both yycheck and yytname. */
1482 int yychecklim = YYLAST - yyn + 1;
1483 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1484 int yycount = 1;
1485
1486 yyarg[0] = yytname[yytype];
1487 yyfmt = yystpcpy (yyformat, yyunexpected);
1488
1489 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1490 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1491 {
1492 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1493 {
1494 yycount = 1;
1495 yysize = yysize0;
1496 yyformat[sizeof yyunexpected - 1] = '\0';
1497 break;
1498 }
1499 yyarg[yycount++] = yytname[yyx];
1500 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1501 yysize_overflow |= (yysize1 < yysize);
1502 yysize = yysize1;
1503 yyfmt = yystpcpy (yyfmt, yyprefix);
1504 yyprefix = yyor;
1505 }
1506
1507 yyf = YY_(yyformat);
1508 yysize1 = yysize + yystrlen (yyf);
1509 yysize_overflow |= (yysize1 < yysize);
1510 yysize = yysize1;
1511
1512 if (yysize_overflow)
1513 return YYSIZE_MAXIMUM;
1514
1515 if (yyresult)
1516 {
1517 /* Avoid sprintf, as that infringes on the user's name space.
1518 Don't have undefined behavior even if the translation
1519 produced a string with the wrong number of "%s"s. */
1520 char *yyp = yyresult;
1521 int yyi = 0;
1522 while ((*yyp = *yyf) != '\0')
1523 {
1524 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
1525 {
1526 yyp += yytnamerr (yyp, yyarg[yyi++]);
1527 yyf += 2;
1528 }
1529 else
1530 {
1531 yyp++;
1532 yyf++;
1533 }
1534 }
1535 }
1536 return yysize;
1537 }
1538}
1539#endif /* YYERROR_VERBOSE */
1540
1541
1542/*-----------------------------------------------.
1543| Release the memory associated to this symbol. |
1544`-----------------------------------------------*/
1545
1546/*ARGSUSED*/
1547#if (defined __STDC__ || defined __C99__FUNC__ \
1548 || defined __cplusplus || defined _MSC_VER)
1549static void
1551#else
1552static void
1554 const char *yymsg;
1560#endif
1561{
1562 YYUSE (yyvaluep);
1566
1567 if (!yymsg)
1568 yymsg = "Deleting";
1570
1571 switch (yytype)
1572 {
1573
1574 default:
1575 break;
1576 }
1577}
1578
1579
1580/* Prevent warnings from -Wmissing-prototypes. */
1581
1582#ifdef YYPARSE_PARAM
1583#if defined __STDC__ || defined __cplusplus
1584int yyparse (void *YYPARSE_PARAM);
1585#else
1586int yyparse ();
1587#endif
1588#else /* ! YYPARSE_PARAM */
1589#if defined __STDC__ || defined __cplusplus
1591#else
1592int yyparse ();
1593#endif
1594#endif /* ! YYPARSE_PARAM */
1595
1596
1597
1598
1599
1600
1601/*----------.
1602| yyparse. |
1603`----------*/
1604
1605#ifdef YYPARSE_PARAM
1606#if (defined __STDC__ || defined __C99__FUNC__ \
1607 || defined __cplusplus || defined _MSC_VER)
1608int
1609yyparse (void *YYPARSE_PARAM)
1610#else
1611int
1612yyparse (YYPARSE_PARAM)
1613 void *YYPARSE_PARAM;
1614#endif
1615#else /* ! YYPARSE_PARAM */
1616#if (defined __STDC__ || defined __C99__FUNC__ \
1617 || defined __cplusplus || defined _MSC_VER)
1618int
1620#else
1621int
1625#endif
1626#endif
1627{
1628 /* The look-ahead symbol. */
1629int yychar;
1630
1631/* The semantic value of the look-ahead symbol. */
1633
1634/* Number of syntax errors so far. */
1636/* Location data for the look-ahead symbol. */
1638
1640 int yyn;
1642 /* Number of tokens to shift before error messages enabled. */
1644 /* Look-ahead token as an internal (translated) token number. */
1645 int yytoken = 0;
1646#if YYERROR_VERBOSE
1647 /* Buffer for error messages, and its allocated size. */
1648 char yymsgbuf[128];
1649 char *yymsg = yymsgbuf;
1650 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1651#endif
1652
1653 /* Three stacks and their tools:
1654 `yyss': related to states,
1655 `yyvs': related to semantic values,
1656 `yyls': related to locations.
1657
1658 Refer to the stacks thru separate pointers, to allow yyoverflow
1659 to reallocate them elsewhere. */
1660
1661 /* The state stack. */
1665
1666 /* The semantic value stack. */
1670
1671 /* The location stack. */
1675 /* The locations where the error started and ended. */
1677
1678#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
1679
1681
1682 /* The variables used to return semantic value and location from the
1683 action routines. */
1686
1687 /* The number of symbols on the RHS of the reduced rule.
1688 Keep to zero when no symbol should be popped. */
1689 int yylen = 0;
1690
1691 YYDPRINTF ((stderr, "Starting parse\n"));
1692
1693 yystate = 0;
1694 yyerrstatus = 0;
1695 yynerrs = 0;
1696 yychar = YYEMPTY; /* Cause a token to be read. */
1697
1698 /* Initialize stack pointers.
1699 Waste one element of value and location stack
1700 so that they stay on the same level as the state stack.
1701 The wasted elements are never initialized. */
1702
1703 yyssp = yyss;
1704 yyvsp = yyvs;
1705 yylsp = yyls;
1706#if YYLTYPE_IS_TRIVIAL
1707 /* Initialize the default location before parsing starts. */
1708 yylloc.first_line = yylloc.last_line = 1;
1709 yylloc.first_column = yylloc.last_column = 0;
1710#endif
1711
1713
1714/*------------------------------------------------------------.
1715| yynewstate -- Push a new state, which is found in yystate. |
1716`------------------------------------------------------------*/
1718 /* In all cases, when you get here, the value and location stacks
1719 have just been pushed. So pushing a state here evens the stacks. */
1720 yyssp++;
1721
1723 *yyssp = yystate;
1724
1725 if (yyss + yystacksize - 1 <= yyssp)
1726 {
1727 /* Get the current used size of the three stacks, in elements. */
1728 YYSIZE_T yysize = yyssp - yyss + 1;
1729
1730#ifdef yyoverflow
1731 {
1732 /* Give user a chance to reallocate the stack. Use copies of
1733 these so that the &'s don't force the real ones into
1734 memory. */
1735 YYSTYPE *yyvs1 = yyvs;
1736 yytype_int16 *yyss1 = yyss;
1737 YYLTYPE *yyls1 = yyls;
1738
1739 /* Each stack pointer address is followed by the size of the
1740 data in use in that stack, in bytes. This used to be a
1741 conditional around just the two extra args, but that might
1742 be undefined if yyoverflow is a macro. */
1743 yyoverflow (YY_("memory exhausted"),
1744 &yyss1, yysize * sizeof (*yyssp),
1745 &yyvs1, yysize * sizeof (*yyvsp),
1746 &yyls1, yysize * sizeof (*yylsp),
1747 &yystacksize);
1748 yyls = yyls1;
1749 yyss = yyss1;
1750 yyvs = yyvs1;
1751 }
1752#else /* no yyoverflow */
1753# ifndef YYSTACK_RELOCATE
1754 goto yyexhaustedlab;
1755# else
1756 /* Extend the stack our own way. */
1757 if (YYMAXDEPTH <= yystacksize)
1758 goto yyexhaustedlab;
1759 yystacksize *= 2;
1760 if (YYMAXDEPTH < yystacksize)
1762
1763 {
1764 yytype_int16 *yyss1 = yyss;
1765 union yyalloc *yyptr =
1767 if (! yyptr)
1768 goto yyexhaustedlab;
1772# undef YYSTACK_RELOCATE
1773 if (yyss1 != yyssa)
1774 YYSTACK_FREE (yyss1);
1775 }
1776# endif
1777#endif /* no yyoverflow */
1778
1779 yyssp = yyss + yysize - 1;
1780 yyvsp = yyvs + yysize - 1;
1781 yylsp = yyls + yysize - 1;
1782
1783 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1784 (unsigned long int) yystacksize));
1785
1786 if (yyss + yystacksize - 1 <= yyssp)
1787 YYABORT;
1788 }
1789
1790 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1791
1793
1794/*-----------.
1795| yybackup. |
1796`-----------*/
1798
1799 /* Do appropriate processing given the current state. Read a
1800 look-ahead token if we need one and don't already have one. */
1801
1802 /* First try to decide what to do without reference to look-ahead token. */
1803 yyn = yypact[yystate];
1805 goto yydefault;
1806
1807 /* Not known => get a look-ahead token if don't already have one. */
1808
1809 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
1811 {
1812 YYDPRINTF ((stderr, "Reading a token: "));
1813 yychar = YYLEX;
1814 }
1815
1817 {
1818 yychar = yytoken = YYEOF;
1819 YYDPRINTF ((stderr, "Now at end of input.\n"));
1820 }
1821 else
1822 {
1824 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1825 }
1826
1827 /* If the proper action on seeing token YYTOKEN is to reduce or to
1828 detect an error, take that action. */
1829 yyn += yytoken;
1830 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1831 goto yydefault;
1832 yyn = yytable[yyn];
1833 if (yyn <= 0)
1834 {
1835 if (yyn == 0 || yyn == YYTABLE_NINF)
1836 goto yyerrlab;
1837 yyn = -yyn;
1838 goto yyreduce;
1839 }
1840
1841 if (yyn == YYFINAL)
1842 YYACCEPT;
1843
1844 /* Count tokens shifted since error; after three, turn off error
1845 status. */
1846 if (yyerrstatus)
1847 yyerrstatus--;
1848
1849 /* Shift the look-ahead token. */
1851
1852 /* Discard the shifted token unless it is eof. */
1854 yychar = YYEMPTY;
1855
1856 yystate = yyn;
1857 *++yyvsp = yylval;
1858 *++yylsp = yylloc;
1860
1861
1862/*-----------------------------------------------------------.
1863| yydefault -- do the default action for the current state. |
1864`-----------------------------------------------------------*/
1865yydefault:
1866 yyn = yydefact[yystate];
1867 if (yyn == 0)
1868 goto yyerrlab;
1870
1871
1872/*-----------------------------.
1873| yyreduce -- Do a reduction. |
1874`-----------------------------*/
1876 /* yyn is the number of a rule to reduce with. */
1877 yylen = yyr2[yyn];
1878
1879 /* If YYLEN is nonzero, implement the default value of the action:
1880 `$$ = $1'.
1881
1882 Otherwise, the following line sets YYVAL to garbage.
1883 This behavior is undocumented and Bison
1884 users should not rely upon it. Assigning to YYVAL
1885 unconditionally makes the parser a bit smaller, and it avoids a
1886 GCC warning that YYVAL may be used uninitialized. */
1887 yyval = yyvsp[1-yylen];
1888
1889 /* Default location. */
1892 switch (yyn)
1893 {
1894 case 7:
1895
1896 {if(parserData->generalStatusTypePresent == false) osrlerror(NULL, NULL, NULL, "a type attribute required for generalStatus element");}
1897 break;
1898
1899 case 8:
1900
1901 {if(parserData->generalStatusTypePresent == false) osrlerror(NULL, NULL, NULL, "a type attribute required for generalStatus element"); parserData->generalStatusTypePresent = false;}
1902 break;
1903
1904 case 11:
1905
1906 { osresult->setGeneralStatusType((yyvsp[(2) - (3)].sval)); free((yyvsp[(2) - (3)].sval)); ; parserData->generalStatusTypePresent = true;}
1907 break;
1908
1909 case 12:
1910
1911 { osresult->setGeneralStatusType(""); parserData->generalStatusTypePresent = true;}
1912 break;
1913
1914 case 13:
1915
1916 { osresult->setGeneralStatusDescription((yyvsp[(2) - (3)].sval)); free((yyvsp[(2) - (3)].sval));}
1917 break;
1918
1919 case 14:
1920
1922 break;
1923
1924 case 17:
1925
1926 {osresult->setServiceURI( (yyvsp[(2) - (3)].sval)); free((yyvsp[(2) - (3)].sval)); parserData->errorText = NULL;}
1927 break;
1928
1929 case 21:
1930
1931 {osresult->setServiceName( (yyvsp[(2) - (3)].sval)); free((yyvsp[(2) - (3)].sval)); parserData->errorText = NULL;}
1932 break;
1933
1934 case 25:
1935
1936 {osresult->setInstanceName( (yyvsp[(2) - (3)].sval)) ; free((yyvsp[(2) - (3)].sval)); parserData->errorText = NULL;}
1937 break;
1938
1939 case 29:
1940
1941 {osresult->setJobID( (yyvsp[(2) - (3)].sval)); free((yyvsp[(2) - (3)].sval)); parserData->errorText = NULL;}
1942 break;
1943
1944 case 33:
1945
1946 {osresult->setGeneralMessage( (yyvsp[(2) - (3)].sval)); free((yyvsp[(2) - (3)].sval)); parserData->errorText = NULL;}
1947 break;
1948
1949 case 43:
1950
1951 { if ((yyvsp[(3) - (4)].ival) < 0) osrlerror(NULL, NULL, NULL, "number of time measurements cannot be negative");
1952 parserData->numberOfTimes = (yyvsp[(3) - (4)].ival);
1953 parserData->ivar = 0;
1954}
1955 break;
1956
1957 case 49:
1958
1959 {if (parserData->ivar == parserData->numberOfTimes)
1960 osrlerror(NULL, NULL, NULL, "Too many time measurements");
1961 osresult->addTimingInformation(parserData->timeType, parserData->timeCategory,
1962 parserData->timeUnit, parserData->timeDescription, parserData->timeValue);
1963 parserData->ivar++;
1964 parserData->timeType = "elapsedTime";
1965 parserData->timeCategory = "total";
1966 parserData->timeUnit = "second";
1967 parserData->timeDescription = "";
1968 }
1969 break;
1970
1971 case 56:
1972
1973 {parserData->timeType = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));}
1974 break;
1975
1976 case 58:
1977
1978 {parserData->timeCategory = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));}
1979 break;
1980
1981 case 60:
1982
1983 {parserData->timeUnit = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));}
1984 break;
1985
1986 case 62:
1987
1988 {parserData->timeDescription = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));}
1989 break;
1990
1991 case 64:
1992
1993 { parserData->timeValue = (yyvsp[(1) - (1)].dval); }
1994 break;
1995
1996 case 65:
1997
1998 { parserData->timeValue = (yyvsp[(1) - (1)].ival); }
1999 break;
2000
2001 case 67:
2002
2003 {printf("\nbefore OPTIMIZATIONEND\n");}
2004 break;
2005
2006 case 69:
2007
2008 {
2009// we now have the basic problem parameters
2010 if(parserData->numberOfSolutions > 0){
2011 if( parserData->numberOfVariables > 0){
2012 parserData->primalSolution = new double* [parserData->numberOfSolutions];
2013 for(int i = 0; i < parserData->numberOfSolutions; i++){
2014 parserData->primalSolution[ i] = new double[ parserData->numberOfVariables];
2015 }
2016 }
2017 //if( parserData->numberOfConstraints > 0){
2018 // parserData->dualSolution = new double*[ parserData->numberOfSolutions];
2019 // for(int i = 0; i < parserData->numberOfSolutions; i++){
2020 // parserData->dualSolution[ i] = new double[ parserData->numberOfConstraints];
2021 // }
2022 //}
2024 parserData->objectiveValues = new double*[ parserData->numberOfSolutions];
2025 parserData->objectiveIdx = new int[ parserData->numberOfSolutions];
2026 for(int i = 0; i < parserData->numberOfSolutions; i++){
2027 parserData->objectiveValues[ i] = new double[ parserData->numberOfObjectives];
2028 }
2029 }
2030 }
2031}
2032 break;
2033
2034 case 72:
2035
2036 {printf("\nat optend\n");}
2037 break;
2038
2039 case 79:
2040
2041 { parserData->numberOfSolutions = (yyvsp[(3) - (3)].ival); osresult->setSolutionNumber((yyvsp[(3) - (3)].ival));}
2042 break;
2043
2044 case 80:
2045
2046 {parserData->numberOfVariables = (yyvsp[(3) - (3)].ival); osresult->setVariableNumber((yyvsp[(3) - (3)].ival)); }
2047 break;
2048
2049 case 81:
2050
2051 {parserData->numberOfConstraints = (yyvsp[(3) - (3)].ival); osresult->setConstraintNumber((yyvsp[(3) - (3)].ival));}
2052 break;
2053
2054 case 82:
2055
2056 {parserData->numberOfObjectives = (yyvsp[(3) - (3)].ival); osresult->setObjectiveNumber((yyvsp[(3) - (3)].ival));}
2057 break;
2058
2059 case 85:
2060
2061 {printf("\ncompleted solution %d out of %d\n",parserData->solutionIdx,parserData->numberOfSolutions);
2062 if (parserData->solutionIdx == parserData->numberOfSolutions)
2063 osrlerror(NULL, NULL, NULL, "too many solutions");
2064 parserData->solutionIdx++;
2065 }
2066 break;
2067
2068 case 87:
2069
2070 {if((yyvsp[(3) - (4)].ival) >= 0) osrlerror(NULL, NULL, NULL, "target objective index must be negative");
2071*(parserData->objectiveIdx + parserData->solutionIdx) = (yyvsp[(3) - (4)].ival);}
2072 break;
2073
2074 case 88:
2075
2076 {if(parserData->statusTypePresent == false) osrlerror(NULL, NULL, NULL, "a type attribute required for status element"); osresult->setSolutionStatus(parserData->solutionIdx, parserData->statusType, parserData->statusDescription);}
2077 break;
2078
2079 case 89:
2080
2081 {if(parserData->statusTypePresent == false) osrlerror(NULL, NULL, NULL, "a type attribute required for status element"); parserData->statusTypePresent = false; osresult->setSolutionStatus(parserData->solutionIdx, parserData->statusType, parserData->statusDescription);}
2082 break;
2083
2084 case 92:
2085
2086 {parserData->statusType = (yyvsp[(2) - (3)].sval); parserData->statusTypePresent = true; free((yyvsp[(2) - (3)].sval));}
2087 break;
2088
2089 case 93:
2090
2091 {parserData->statusType = ""; parserData->statusTypePresent = true;}
2092 break;
2093
2094 case 94:
2095
2096 {parserData->statusDescription = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));}
2097 break;
2098
2099 case 95:
2100
2102 break;
2103
2104 case 97:
2105
2106 {osresult->optimization->solution[parserData->solutionIdx]->message = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));}
2107 break;
2108
2109 case 98:
2110
2111 {osresult->optimization->solution[parserData->solutionIdx]->message = "";}
2112 break;
2113
2114 case 101:
2115
2116 { parserData->kounter = 0;}
2117 break;
2118
2119 case 102:
2120
2121 { osresult->setNumberOfOtherVariableResults(parserData->solutionIdx, (yyvsp[(3) - (4)].ival));
2122 /*osresult->optimization->solution[parserData->solutionIdx]->variables->numberOfOtherVariableResults = $3*/;
2123 parserData->kounter = 0;
2124 parserData->iOther = 0;
2125 parserData->tmpOtherValue = "";
2126 parserData->tmpOtherName = "";
2127 parserData->tmpOtherDescription = "";
2128 }
2129 break;
2130
2131 case 103:
2132
2133 {osresult->setNumberOfPrimalVariableValues(parserData->solutionIdx, (yyvsp[(3) - (4)].ival));
2134 /*osresult->optimization->solution[parserData->solutionIdx]->variables->values->numberOfVar = $3;*/
2135 }
2136 break;
2137
2138 case 106:
2139
2140 {
2142 osrlerror(NULL, NULL, NULL, "too many variables");
2143
2144 if (parserData->ivar < 0 || parserData->ivar > parserData->numberOfVariables - 1)
2145 osrlerror(NULL, NULL, NULL, "index must be greater than 0 and less than the number of variables");
2146
2147
2148 *(parserData->primalSolution[parserData->solutionIdx] + parserData->ivar ) = parserData->tempVal;
2149 osresult->optimization->solution[parserData->solutionIdx]->variables->values->var.push_back(new VarValue());
2152
2153
2155}
2156 break;
2157
2158 case 107:
2159
2160 {parserData->tempVal = (yyvsp[(1) - (1)].ival);}
2161 break;
2162
2163 case 108:
2164
2165 {parserData->tempVal = (yyvsp[(1) - (1)].dval);}
2166 break;
2167
2168 case 111:
2169
2170 {
2171
2172 parserData->otherVarVec.push_back( parserData->otherVarStruct);
2173 parserData->numberOfOtherVariableResults++;
2174 parserData->otherNamePresent = false;
2175
2176
2177 osresult->setAnOtherVariableResult(parserData->solutionIdx, parserData->iOther, parserData->otherVarStruct->name,
2178 parserData->otherVarStruct->description, parserData->otherVarStruct->otherVarIndex, parserData->otherVarStruct->otherVarText,
2179 parserData->otherVarStruct->numberOfVar );
2180
2181
2182 std::cout << "Other Name = " << parserData->otherVarStruct->name << std::endl;
2183 std::cout << "Description = " << parserData->otherVarStruct->description << std::endl;
2184
2185
2186 parserData->iOther++;
2187 parserData->tmpOtherName = "";
2188 parserData->tmpOtherValue = "";
2189 parserData->tmpOtherDescription = "";
2190
2191 /*
2192 if (osresult->optimization == NULL)
2193 osresult->optimization = new OptimizationResult();
2194
2195 if (osresult->optimization->solution == NULL)
2196 { osresult->optimization->solution = new OptimizationSolution*();
2197 for (int i = 0; i < parserData->numberOfSolutions; i++)
2198 osresult->optimization->solution[i] = new OptimizationSolution();
2199 }
2200 if (osresult->optimization->solution[parserData->solutionIdx]->variables == NULL){
2201 osresult->optimization->solution[parserData->solutionIdx]->variables = new VariableSolution();
2202 osresult->optimization->solution[parserData->solutionIdx]->variables->other = new OtherVariableResult*[osresult->getNumberOfOtherVariableResults(parserData->solutionIdx)];
2203 }
2204 osresult->optimization->solution[parserData->solutionIdx]->variables->other[parserData->iOther] = new OtherVariableResult();
2205 osresult->optimization->solution[parserData->solutionIdx]->variables->other[parserData->iOther]->name = parserData->tmpOtherName;
2206 osresult->optimization->solution[parserData->solutionIdx]->variables->other[parserData->iOther]->value = parserData->tmpOtherValue;
2207 osresult->optimization->solution[parserData->solutionIdx]->variables->other[parserData->iOther]->description = parserData->tmpOtherDescription;
2208 osresult->optimization->solution[parserData->solutionIdx]->variables->other[parserData->iOther]->numberOfVar = parserData->otherVarStruct->numberOfVar;
2209 */
2210
2211
2212 }
2213 break;
2214
2215 case 112:
2216
2217 { // parserData->numberOfOtherVariableResults++;
2218 parserData->otherVarStruct = new OtherVariableResultStruct();
2219 parserData->otherVarStruct->otherVarText = new std::string[parserData->numberOfVariables];
2220 parserData->otherVarStruct->otherVarIndex = new int[parserData->numberOfVariables];
2221 parserData->kounter = 0;
2222 }
2223 break;
2224
2225 case 113:
2226
2227 { if(parserData->otherNamePresent == false)
2228 osrlerror(NULL, NULL, NULL, "other element requires name attribute");
2229 }
2230 break;
2231
2232 case 119:
2233
2234 {parserData->otherVarStruct->numberOfVar = (yyvsp[(3) - (4)].ival);
2236}
2237 break;
2238
2239 case 120:
2240
2241 {parserData->tmpOtherValue=""; parserData->otherVarStruct->value = ""; osresult->optimization->solution[parserData->solutionIdx]->variables->other[parserData->iOther]->value = "";}
2242 break;
2243
2244 case 121:
2245
2246 {printf("\nset tmpOtherValue: %s\n",(yyvsp[(2) - (3)].sval)); parserData->tmpOtherValue=(yyvsp[(2) - (3)].sval); parserData->otherVarStruct->value = (yyvsp[(2) - (3)].sval); osresult->optimization->solution[parserData->solutionIdx]->variables->other[parserData->iOther]->value = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));}
2247 break;
2248
2249 case 122:
2250
2251 { parserData->tmpOtherName=""; parserData->otherNamePresent = true; parserData->otherVarStruct->name = "";
2252 // osresult->optimization->solution[parserData->solutionIdx]->variables->other[parserData->iOther]->name = "";
2253}
2254 break;
2255
2256 case 123:
2257
2258 {printf("\nset tmpOtherName: %s\n",(yyvsp[(2) - (3)].sval)); parserData->tmpOtherName=(yyvsp[(2) - (3)].sval); parserData->otherNamePresent = true; parserData->otherVarStruct->name = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));
2259 // osresult->optimization->solution[parserData->solutionIdx]->variables->other[parserData->iOther]->name = $2;
2260}
2261 break;
2262
2263 case 124:
2264
2265 {printf("\nset tmpOtherDescription: %s\n",(yyvsp[(2) - (3)].sval)); parserData->tmpOtherDescription=(yyvsp[(2) - (3)].sval); parserData->otherVarStruct->description = (yyvsp[(2) - (3)].sval); free((yyvsp[(2) - (3)].sval));
2266 //osresult->optimization->solution[parserData->solutionIdx]->variables->other[parserData->iOther]->description = $2;
2267}
2268 break;
2269
2270 case 127:
2271
2272 {
2273parserData->otherVarStruct->otherVarText[parserData->kounter] = parserData->outStr.str();
2274//reset the buffer;
2275parserData->outStr.str("");
2276parserData->otherVarStruct->otherVarIndex[parserData->kounter] = parserData->ivar;
2277parserData->errorText = NULL;
2279 osrlerror(NULL, NULL, NULL, "too many variables");
2280if (parserData->ivar < 0 || parserData->ivar > parserData->numberOfVariables - 1)
2281 osrlerror(NULL, NULL, NULL, "index must be greater than 0 and less than the number of variables");
2282
2283//osresult->optimization->solution[parserData->solutionIdx]->variables->other[parserData->iOther]->var.push_back(new OtherVarResult());
2284//osresult->optimization->solution[parserData->solutionIdx]->variables->other[parserData->iOther]->var[parserData->kounter]->idx = parserData->ivar;
2285//osresult->optimization->solution[parserData->solutionIdx]->variables->other[parserData->iOther]->var[parserData->kounter]->value = parserData->tempVal;
2286
2287
2288
2290}
2291 break;
2292
2293 case 128:
2294
2295 {/*std::cout << "FOUND OTHER ELEMENT TEXT" << std::endl;*/ parserData->outStr << (yyvsp[(1) - (1)].sval); /*free($1);*/ }
2296 break;
2297
2298 case 129:
2299
2300 {/*std::cout << "FOUND OTHER ELEMENT INTEGER" << std::endl;*/ parserData->outStr << (yyvsp[(1) - (1)].ival); /*free($1);*/ }
2301 break;
2302
2303 case 130:
2304
2305 {/*std::cout << "FOUND OTHER ELEMENT DOUBLE" << std::endl;*/ parserData->outStr << (yyvsp[(1) - (1)].dval); /*free($1);*/ }
2306 break;
2307
2308 case 131:
2309
2310 { if(parserData->otherVarStruct->numberOfVar <= 0)
2311 osrlerror(NULL, NULL, parserData, "must specify the number of variables") ;
2312 }
2313 break;
2314
2315 case 137:
2316
2317 { /* *( parserData->objectiveValues[parserData->solutionIdx] + (parserData->kounter + parserData->numberOfObjectives)) = $4;*/
2318}
2319 break;
2320
2321 case 138:
2322
2323 {/* *(parserData->objectiveValues[parserData->solutionIdx] + (parserData->kounter + parserData->numberOfObjectives)) = $4; */}
2324 break;
2325
2326 case 140:
2327
2328 {
2330 parserData->dualSolution = new double*[ parserData->numberOfSolutions];
2331 for(int i = 0; i < parserData->numberOfSolutions; i++){
2332 parserData->dualSolution[ i] = new double[ parserData->numberOfConstraints];
2333 }
2334 }
2335}
2336 break;
2337
2338 case 145:
2339
2340 {
2341 if(parserData->kounter < 0 || parserData->kounter > parserData->numberOfConstraints- 1) osrlerror(NULL, NULL, NULL, "index must be greater than 0 and less than the number of constraints");
2342 *(parserData->dualSolution[parserData->solutionIdx] + parserData->kounter) = (yyvsp[(4) - (5)].dval);}
2343 break;
2344
2345 case 146:
2346
2347 {
2348 if(parserData->kounter < 0 || parserData->kounter > parserData->numberOfConstraints- 1) osrlerror(NULL, NULL, NULL, "index must be greater than 0 and less than the number of constraints");
2349 *(parserData->dualSolution[parserData->solutionIdx] + parserData->kounter) = (yyvsp[(4) - (5)].ival);}
2350 break;
2351
2352 case 147:
2353
2354 {parserData->ivar = (yyvsp[(2) - (3)].ival);}
2355 break;
2356
2357 case 152:
2358
2359 {printf("\nprocessed SOLUTIONEND\n");}
2360 break;
2361
2362 case 153:
2363
2364 {printf("\nprocessed SOLUTIONEND\n");}
2365 break;
2366
2367
2368/* Line 1267 of yacc.c. */
2369
2370 default: break;
2371 }
2373
2375 yylen = 0;
2377
2378 *++yyvsp = yyval;
2379 *++yylsp = yyloc;
2380
2381 /* Now `shift' the result of the reduction. Determine what state
2382 that goes to, based on the state we popped back to and the rule
2383 number reduced by. */
2384
2385 yyn = yyr1[yyn];
2386
2388 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2390 else
2392
2393 goto yynewstate;
2394
2395
2396/*------------------------------------.
2397| yyerrlab -- here on detecting error |
2398`------------------------------------*/
2399yyerrlab:
2400 /* If not already recovering from an error, report this error. */
2401 if (!yyerrstatus)
2402 {
2403 ++yynerrs;
2404#if ! YYERROR_VERBOSE
2405 yyerror (&yylloc, osresult, parserData, YY_("syntax error"));
2406#else
2407 {
2408 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
2409 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
2410 {
2411 YYSIZE_T yyalloc = 2 * yysize;
2412 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
2414 if (yymsg != yymsgbuf)
2415 YYSTACK_FREE (yymsg);
2416 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
2417 if (yymsg)
2418 yymsg_alloc = yyalloc;
2419 else
2420 {
2421 yymsg = yymsgbuf;
2422 yymsg_alloc = sizeof yymsgbuf;
2423 }
2424 }
2425
2426 if (0 < yysize && yysize <= yymsg_alloc)
2427 {
2428 (void) yysyntax_error (yymsg, yystate, yychar);
2429 yyerror (&yylloc, osresult, parserData, yymsg);
2430 }
2431 else
2432 {
2433 yyerror (&yylloc, osresult, parserData, YY_("syntax error"));
2434 if (yysize != 0)
2435 goto yyexhaustedlab;
2436 }
2437 }
2438#endif
2439 }
2440
2441 yyerror_range[0] = yylloc;
2442
2443 if (yyerrstatus == 3)
2444 {
2445 /* If just tried and failed to reuse look-ahead token after an
2446 error, discard it. */
2447
2448 if (yychar <= YYEOF)
2449 {
2450 /* Return failure if at end of input. */
2451 if (yychar == YYEOF)
2452 YYABORT;
2453 }
2454 else
2455 {
2456 yydestruct ("Error: discarding",
2458 yychar = YYEMPTY;
2459 }
2460 }
2461
2462 /* Else will try to reuse look-ahead token after shifting the error
2463 token. */
2465
2466
2467/*---------------------------------------------------.
2468| yyerrorlab -- error raised explicitly by YYERROR. |
2469`---------------------------------------------------*/
2470yyerrorlab:
2471
2472 /* Pacify compilers like GCC when the user code never invokes
2473 YYERROR and the label yyerrorlab therefore never appears in user
2474 code. */
2475 if (/*CONSTCOND*/ 0)
2476 goto yyerrorlab;
2477
2478 yyerror_range[0] = yylsp[1-yylen];
2479 /* Do not reclaim the symbols of the rule which action triggered
2480 this YYERROR. */
2481 YYPOPSTACK (yylen);
2482 yylen = 0;
2484 yystate = *yyssp;
2485 goto yyerrlab1;
2486
2487
2488/*-------------------------------------------------------------.
2489| yyerrlab1 -- common code for both syntax error and YYERROR. |
2490`-------------------------------------------------------------*/
2492 yyerrstatus = 3; /* Each real token shifted decrements this. */
2493
2494 for (;;)
2495 {
2496 yyn = yypact[yystate];
2497 if (yyn != YYPACT_NINF)
2498 {
2499 yyn += YYTERROR;
2500 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2501 {
2502 yyn = yytable[yyn];
2503 if (0 < yyn)
2504 break;
2505 }
2506 }
2507
2508 /* Pop the current state because it cannot handle the error token. */
2509 if (yyssp == yyss)
2510 YYABORT;
2511
2512 yyerror_range[0] = *yylsp;
2513 yydestruct ("Error: popping",
2515 YYPOPSTACK (1);
2516 yystate = *yyssp;
2518 }
2519
2520 if (yyn == YYFINAL)
2521 YYACCEPT;
2522
2523 *++yyvsp = yylval;
2524
2525 yyerror_range[1] = yylloc;
2526 /* Using YYLLOC is tempting, but would change the location of
2527 the look-ahead. YYLOC is available though. */
2529 *++yylsp = yyloc;
2530
2531 /* Shift the error token. */
2533
2534 yystate = yyn;
2535 goto yynewstate;
2536
2537
2538/*-------------------------------------.
2539| yyacceptlab -- YYACCEPT comes here. |
2540`-------------------------------------*/
2541yyacceptlab:
2542 yyresult = 0;
2544
2545/*-----------------------------------.
2546| yyabortlab -- YYABORT comes here. |
2547`-----------------------------------*/
2548yyabortlab:
2549 yyresult = 1;
2550 goto yyreturn;
2551
2552#ifndef yyoverflow
2553/*-------------------------------------------------.
2554| yyexhaustedlab -- memory exhaustion comes here. |
2555`-------------------------------------------------*/
2556yyexhaustedlab:
2557 yyerror (&yylloc, osresult, parserData, YY_("memory exhausted"));
2558 yyresult = 2;
2559 /* Fall through. */
2560#endif
2561
2563 if (yychar != YYEOF && yychar != YYEMPTY)
2564 yydestruct ("Cleanup: discarding lookahead",
2566 /* Do not reclaim the symbols of the rule which action triggered
2567 this YYABORT or YYACCEPT. */
2568 YYPOPSTACK (yylen);
2570 while (yyssp != yyss)
2571 {
2572 yydestruct ("Cleanup: popping",
2574 YYPOPSTACK (1);
2575 }
2576#ifndef yyoverflow
2577 if (yyss != yyssa)
2579#endif
2580#if YYERROR_VERBOSE
2581 if (yymsg != yymsgbuf)
2582 YYSTACK_FREE (yymsg);
2583#endif
2584 /* Make sure YYID is used. */
2585 return YYID (yyresult);
2586}
2587
2588
2589
2590
2591
2592void osrlerror(YYLTYPE* mytype, OSResult *osresult, OSrLParserData* parserData, const char* errormsg )
2593{
2594 std::ostringstream outStr;
2595 std::string error = errormsg;
2596 error = "Input is either not valid or well formed: " + error;
2597 outStr << error << std::endl;
2598 outStr << "See line number: " << osrlget_lineno( scanner) << std::endl;
2599 outStr << "The offending text is: " << osrlget_text ( scanner ) << std::endl;
2600 error = outStr.str();
2601 //printf("THIS DID NOT GET DESTROYED: %s\n", parserData->errorText);
2602 //if( (parserData->errorText != NULL) && (strlen(parserData->errorText) > 0) ) free( parserData->errorText);
2603 //osrllex_destroy( scanner);
2604 throw ErrorClass( error);
2605} //end osrlerror
2606
2607void yygetOSResult(const char *parsestring, OSResult *osresult, OSrLParserData *parserData) throw(ErrorClass){
2608 try{
2609 osrl_scan_string( parsestring, scanner);
2610 osrlset_lineno (1 , scanner );
2611 //
2612 // call the Bison parser
2613 //
2614 if( osrlparse( osresult, parserData) != 0) {
2615 //osrllex_destroy(scanner);
2616 throw ErrorClass( "Error parsing the OSrL");
2617 }
2618 }
2619 catch(const ErrorClass& eclass){
2620 throw ErrorClass( eclass.errormsg);
2621 }
2622} //end yygetOSResult
2623
2624
#define yylval
#define yyalloc
#define yylloc
unsigned short yytype_uint16
static YYPTRDIFF_T yystrlen(const char *yystr)
static YYPTRDIFF_T yytnamerr(char *yyres, const char *yystr)
unsigned char yytype_uint8
static const char *const yytname[]
static char * yystpcpy(char *yydest, const char *yysrc)
short yytype_int16
static int yysyntax_error(YYPTRDIFF_T *yymsg_alloc, char **yymsg, const yypcontext_t *yyctx)
signed char yytype_int8
yytokentype
#define YYEOF
#define YYEMPTY
goto yyreduce
int yystate
int yyresult
int yyn
goto yysetstate
YYSTYPE yyval
#define yychar
YYSTYPE * yyvaluep
goto yyerrlab1
YYLTYPE yyerror_range[2]
OSoLParserData * parserData
yytype_int16 * yyss
YYLTYPE * yylsp
YYSTYPE * yyvs
YYLTYPE * yylocationp
YYSTYPE yyvsa[YYINITDEPTH]
YYSIZE_T yystacksize
yytype_int16 yyssa[YYINITDEPTH]
goto yybackup
goto yynewstate
YYSTYPE * yyvsp
yytype_int16 * yyssp
int yytoken
YYLTYPE yylsa[YYINITDEPTH]
int yyerrstatus
YYLTYPE * yyls
int yylen
YYLTYPE yyloc
#define dval(x)
Definition OSdtoa.cpp:363
used for throwing exceptions.
std::string errormsg
errormsg is the error that is causing the exception to be thrown
The Result Class.
Definition OSResult.h:2549
bool setGeneralMessage(std::string message)
Set the general message.
bool setAnOtherVariableResult(int solIdx, int otherIdx, std::string name, std::string description, int *indexes, std::string *s, int n)
Set the [i]th optimization solution's other (non-standard/solver specific)variable-related results,...
bool setJobID(std::string jobID)
Set job id.
bool setGeneralStatusDescription(std::string description)
Set the general status description.
bool setSolutionNumber(int number)
set the number of solutions.
bool setInstanceName(std::string instanceName)
Set instance name.
bool setNumberOfOtherVariableResults(int solIdx, int numberOfOtherVariableResults)
Set the [i]th optimization solution's other (non-standard/solver specific) variable-related results,...
bool setGeneralStatusType(std::string type)
Set the general status type, which can be: success, error, warning.
bool setObjectiveNumber(int objectiveNumber)
Set the objective number.
OptimizationResult * optimization
optimization holds the fifth child of the OSResult specified by the OSrL Schema.
Definition OSResult.h:2581
bool setServiceName(std::string serviceName)
Set service name.
bool setNumberOfPrimalVariableValues(int solIdx, int n)
Set the [i]th optimization solution's number of primal variable values, where i equals the given solu...
bool setVariableNumber(int variableNumber)
Set the variable number.
bool setSolutionStatus(int solIdx, std::string type, std::string description)
Set the [i]th optimization solution status, where i equals the given solution index.
bool addTimingInformation(std::string type, std::string category, std::string unit, std::string description, double value)
Add timing information.
bool setConstraintNumber(int constraintNumber)
Set the constraint number.
bool setServiceURI(std::string serviceURI)
Set service uri.
int numberOfVariables
children of the <optimization> element
char * errorText
if the parser finds invalid text it is held here and we delete if the file was not valid
std::string statusDescription
the status Description of the solution
std::string statusType
the status type of the result
The OSrLParserData Class.
OptimizationSolution ** solution
solution is an array of pointers to OptimizationSolution objects
Definition OSResult.h:2500
VariableSolution * variables
variables holds the solution information for the variables
Definition OSResult.h:2291
std::string message
a message associated with this solution
Definition OSResult.h:2286
std::string value
this element allows a specific value associated with this particular type of result
Definition OSResult.h:1144
int numberOfVar
the number of variables which have values for this particular type of result
Definition OSResult.h:1131
VarValue Class.
Definition OSResult.h:848
int idx
idx is the index on variable in the solution
Definition OSResult.h:852
double value
Definition OSResult.h:860
OtherVariableResult ** other
a pointer to an array of other pointer objects for variables
Definition OSResult.h:1238
VariableValues * values
a pointer to a VariableValues object
Definition OSResult.h:1227
VarValue ** var
a vector of VarValue objects, there will be one for each variable in the solution
Definition OSResult.h:912
int numberOfVar
the number of variable values that are in the solution
Definition OSResult.h:907
void yygetOSResult(const char *ch, OSResult *m_osresult, OSrLParserData *m_parserData, OSgLParserData *osglData, OSnLParserData *osnlData)
static const yytype_int16 yytranslate[]
#define YYMAXDEPTH
#define YYSTACK_FREE
char * osrlget_text(void *yyscanner)
Get the current token.
int osrllex_destroy(void *yyscanner)
#define YY_(Msgid)
int osrllex_init(void **ptr_yy_globals)
static const yytype_int16 yydefact[]
#define YYABORT
#define YYSTACK_BYTES(N)
#define YYLLOC_DEFAULT(Current, Rhs, N)
static const yytype_int16 yydefgoto[]
#define YY_REDUCE_PRINT(Rule)
struct yy_buffer_state * YY_BUFFER_STATE
static const yytype_int16 yypact[]
#define YYFINAL
#define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
static const yytype_int16 yypgoto[]
static void yydestruct(const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, OSResult *osresult, OSrLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData)
#define yyparse
#define YYNTOKENS
#define YY_STACK_PRINT(Bottom, Top)
#define YYSIZE_T
#define yydebug
void osrlerror(YYLTYPE *type, OSResult *osresult, OSrLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData, std::string errormsg)
void osrlset_lineno(int line_number, void *yyscanner)
Set the current line number.
static const yytype_int8 yyr2[]
void * malloc(YYSIZE_T)
static const yytype_int16 yystos[]
YY_BUFFER_STATE osrl_scan_string(const char *yy_str, void *yyscanner)
int osrlget_lineno(void *yyscanner)
Get the current line number.
#define yynerrs
int osrllex(YYSTYPE *lvalp, YYLTYPE *llocp, void *scanner)
static const yytype_int16 yytable[]
#define scanner
#define YYACCEPT
#define YYTRANSLATE(YYX)
static const yytype_int16 yyr1[]
#define YYPOPSTACK(N)
void osrlset_extra(OSrLParserData *parserData, void *yyscanner)
#define YYLAST
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
#define YYINITDEPTH
void free(void *)
static const yytype_int16 yycheck[]
#define YYSTACK_ALLOC
#define YYDPRINTF(Args)
#define yyerror
int osrlparse(OSResult *osresult, OSrLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData)
A structure to information about an OtherVariableResult element.
yytype_int16 yyss
#define UNITATT
#define SOLUTIONEND
#define GENERALSTATUSSTART
#define NUMBEROFVARATT
#define YYID(n)
#define EMPTYVALUEATT
#define YYLEX
#define TWOQUOTES
int yytype
#define EMPTYUNITATT
#define GREATERTHAN
#define NAMEATT
#define TYPEATT
#define VALUESSTART
#define EMPTYCATEGORYATT
#define IDXATT
#define SERVICENAMEEND
#define SERVICEURISTART
#define SERVICEURISTARTANDEND
#define NUMBEROFSOLUTIONSATT
#define JOBIDSTARTANDEND
#define VALUEATT
#define VARSTART
#define NUMBEROFCONSTRAINTSATT
#define SOLUTIONSTART
#define JOBIDEND
#define INSTANCENAMESTARTANDEND
#define OBJEND
#define EMPTYDESCRIPTIONATT
#define GENERALSTART
#define CATEGORYATT
#define DUMMY
#define SYSTEMEND
#define NUMBEROFOTHERCONSTRAINTRESULTSATT
#define OBJECTIVESEND
#define TIMINGINFORMATIONSTART
#define OPTIMIZATIONSTART
#define YYTABLE_NINF
#define YY_LOCATION_PRINT(File, Loc)
#define CONSTRAINTSEND
#define DESCRIPTIONATT
#define OBJSTART
#define VARIABLESSTART
#define YYPACT_NINF
#define CONSTRAINTSSTART
#define NUMBEROFOTHEROBJECTIVERESULTSATT
#define TIMESTARTANDEND
#define VARIABLESEND
#define SERVICEURIEND
#define GENERALEND
#define OTHERSTART
#define MESSAGESTART
#define JOBSTART
#define SYSTEMSTART
#define SERVICENAMESTART
#define INSTANCENAMEEND
#define MESSAGEEND
#define DUALVALUESEND
#define YYSTACK_ALLOC_MAXIMUM
#define SERVICENAMESTARTANDEND
#define NUMBEROFVARIABLESATT
#define NUMBEROFOBJECTIVESATT
#define DOUBLE
#define QUOTE
#define DUALVALUESSTART
#define VALUESEND
#define GENERALSTATUSEND
#define INTEGER
#define EMPTYNAMEATT
#define INSTANCENAMESTART
#define OPTIMIZATIONEND
#define OTHEREND
#define CONEND
#define NUMBEROFCONATT
#define OSRLSTARTEMPTY
#define OSRLATTRIBUTETEXT
#define EMPTYTYPEATT
#define SERVICESTART
#define NUMBEROFOBJATT
#define YYSIZE_MAXIMUM
#define OBJECTIVESSTART
#define OSRLEND
#define TIMESTART
#define ATTRIBUTETEXT
#define OSRLSTART
#define TARGETOBJECTIVEIDXATT
#define ENDOFELEMENT
struct YYLTYPE YYLTYPE
#define STATUSEND
#define NUMBEROFOTHERVARIABLERESULTSATT
#define MESSAGESTARTANDEND
union YYSTYPE YYSTYPE
#define NUMBEROFTIMESATT
OSResult * osresult
#define STATUSSTART
#define YYTERROR
#define YYUSE(e)
#define TIMINGINFORMATIONEND
#define ELEMENTTEXT
#define VAREND
#define TIMEEND
#define CONSTART
#define SERVICEEND
goto yyreturn
#define JOBIDSTART
#define JOBEND