54 # define _END_OBJECT 258 56 # define _END_GROUP 260 58 # define _sequence_opening 262 59 # define _sequence_closing 263 60 # define _set_opening 264 61 # define _set_closing 265 62 # define _units_opening 266 63 # define _units_closing 267 64 # define _list_separator 268 65 # define _point_operator 269 66 # define _assignment_operator 270 67 # define _multiply_operator 271 68 # define _divide_operator 272 69 # define _exponentiate_operator 273 70 # define _range_operator 274 72 # define _date_time 276 73 # define _date_timeV0 277 78 # define _text_string 282 80 #define yyclearin yychar = -1 81 #define yyerrok yyerrflag = 0 85 #define YYMAXDEPTH 150 88 # define YYERRCODE 256 130 67, 87, 38, 37, 36, 35, 77, 73, 27, 67,
131 52, 63, 105, 34, 33, 97, 73, 31, 30, 54,
132 56, 57, 52, 58, 53, 59, 60, 55, 54, 56,
133 57, 52, 58, 53, 59, 60, 55, 61, 96, 51,
134 67, 29, 28, 98, 85, 72, 84, 77, 90, 64,
135 54, 56, 57, 52, 58, 53, 59, 60, 55, 54,
136 56, 57, 52, 58, 53, 59, 60, 55, 54, 56,
137 57, 52, 58, 53, 59, 60, 55, 7, 19, 20,
138 21, 22, 12, 111, 26, 94, 103, 89, 66, 83,
139 18, 49, 68, 74, 88, 82, 39, 99, 25, 80,
140 17, 101, 102, 3, 81, 110, 23, 80, 75, 50,
141 71, 24, 104, 93, 70, 69, 48, 47, 46, 45,
142 43, 40, 42, 41, 62, 44, 32, 15, 13, 11,
143 10, 9, 8, 6, 5, 4, 2, 100, 109, 95,
144 14, 16, 1, 0, 106, 65, 0, 0, 0, 0,
145 108, 40, 0, 76, 0, 44, 79, 0, 112, 78,
146 86, 0, 0, 0, 0, 0, 0, 91, 0, 92,
147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
148 0, 0, 0, 0, 0, 0, 107 };
151 -179, -1000, -179, -1000, -1000, -1000, -1000, -179, -1000, -1000,
152 -1000, -1000, -1000, -1000, -1000, -1000, -1000, -172, -271, -228,
153 -229, -252, -253, -1000, -1000, -242, -1000, -257, -274, -275,
154 -276, -277, -225, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
155 -1000, -1000, -1000, -1000, -263, -1000, -1000, -1000, -1000, -1000,
156 -1000, -216, -1000, -1000, -1000, -1000, -1000, -221, -1000, -1000,
157 -1000, -256, -225, -268, -1000, -161, -1000, -1000, -1000, -222,
158 -222, -1000, -278, -1000, -169, -215, -1000, -247, -1000, -1000,
159 -207, -1000, -1000, -1000, -1000, -241, -1000, -224, -1000, -1000,
160 -1000, -1000, -1000, -170, -1000, -261, -1000, -222, -1000, -1000,
161 -241, -1000, -1000, -222, -173, -1000, -1000, -1000, -1000, -1000,
162 -1000, -222, -1000 };
165 0, 142, 92, 141, 140, 139, 138, 137, 136, 103,
166 135, 134, 133, 132, 131, 130, 129, 128, 127, 126,
167 96, 124, 88, 123, 122, 120, 119, 118, 117, 116,
168 115, 89, 114, 46, 113, 85, 112, 110, 91, 109,
172 0, 1, 8, 8, 9, 9, 9, 9, 10, 10,
173 11, 11, 12, 13, 13, 17, 17, 4, 4, 14,
174 14, 18, 18, 3, 3, 19, 15, 15, 15, 21,
175 16, 20, 20, 20, 20, 22, 22, 22, 22, 22,
176 30, 2, 32, 26, 31, 31, 33, 34, 34, 35,
177 35, 5, 5, 7, 7, 7, 36, 6, 6, 27,
178 27, 27, 27, 37, 37, 28, 28, 29, 23, 23,
179 38, 38, 38, 40, 40, 40, 39, 41, 41, 24,
183 0, 3, 2, 4, 2, 2, 2, 4, 2, 2,
184 2, 2, 3, 2, 2, 3, 7, 3, 7, 2,
185 2, 3, 7, 3, 7, 1, 8, 7, 5, 1,
186 10, 3, 3, 3, 3, 2, 2, 2, 2, 2,
187 1, 6, 1, 6, 0, 2, 6, 2, 7, 3,
188 7, 2, 5, 3, 3, 5, 2, 2, 5, 3,
189 3, 3, 5, 0, 6, 3, 3, 3, 2, 2,
190 5, 7, 7, 2, 6, 3, 6, 2, 4, 4,
194 -1000, -1, -8, -9, -10, -11, -12, 256, -13, -14,
195 -15, -16, 261, -17, -4, -18, -3, 279, 269, 257,
196 258, 259, 260, -9, -9, 270, 256, 279, 270, 270,
197 270, 270, -19, 256, 270, 279, 279, 279, 279, -20,
198 -22, -23, -24, -25, -2, -26, -27, -28, -29, -38,
199 -39, 264, 278, 280, 275, 283, 276, 277, 279, 281,
200 282, 262, -21, 274, 265, -40, -22, 256, -2, -30,
201 -32, -37, 266, 263, -40, -41, -38, 262, -20, -2,
202 268, 265, 256, -31, -33, 266, -31, 279, 263, 256,
203 263, -38, -22, -34, -35, -5, 279, 256, 267, 267,
204 -7, 271, 272, 256, -36, 273, -33, -35, -33, -6,
208 0, -2, -2, 2, 4, 5, 6, 0, 8, 9,
209 10, 11, 12, 13, 14, 19, 20, 0, 0, 15,
210 17, 21, 23, 3, 7, -2, 28, 0, 0, 0,
211 0, 0, 0, 27, 29, 16, 18, 22, 24, 26,
212 31, 32, 33, 34, 35, 36, 37, 38, 39, 68,
213 69, 0, 40, 42, 59, 60, 61, 63, 65, 66,
214 67, 0, 0, 0, 79, 0, 73, 75, 35, 44,
215 44, 62, 0, 70, 0, 0, 77, 0, 30, 82,
216 0, 80, 81, 41, 45, 0, 43, 0, 71, 72,
217 76, 78, 74, 0, 47, 49, 51, 0, 64, 46,
218 0, 53, 54, 0, 0, 56, 52, 48, 55, 50,
234 "_sequence_opening", 262,
235 "_sequence_closing", 263,
238 "_units_opening", 266,
239 "_units_closing", 267,
240 "_list_separator", 268,
241 "_point_operator", 269,
242 "_assignment_operator", 270,
243 "_multiply_operator", 271,
244 "_divide_operator", 272,
245 "_exponentiate_operator", 273,
246 "_range_operator", 274,
261 "-no such reduction-",
262 "label : statement_list",
263 "statement_list : statement",
264 "statement_list : statement_list statement",
265 "statement : aggregation_stmt",
266 "statement : assignment_stmt",
267 "statement : end_statement",
268 "statement : error statement",
269 "aggregation_stmt : object_stmt",
270 "aggregation_stmt : group_stmt",
271 "assignment_stmt : attribute_stmt",
272 "assignment_stmt : pointer_stmt",
273 "end_statement : _END",
274 "object_stmt : object_opening",
275 "object_stmt : object_closing",
276 "object_opening : _OBJECT",
277 "object_opening : _OBJECT _assignment_operator _name",
278 "object_closing : _END_OBJECT",
279 "object_closing : _END_OBJECT _assignment_operator _name",
280 "group_stmt : group_opening",
281 "group_stmt : group_closing",
282 "group_opening : _GROUP",
283 "group_opening : _GROUP _assignment_operator _name",
284 "group_closing : _END_GROUP",
285 "group_closing : _END_GROUP _assignment_operator _name",
286 "attribute_stmt : _name _assignment_operator",
287 "attribute_stmt : _name _assignment_operator value",
288 "attribute_stmt : _name _assignment_operator error",
289 "attribute_stmt : _name error",
290 "pointer_stmt : _point_operator _name _assignment_operator",
291 "pointer_stmt : _point_operator _name _assignment_operator value",
292 "value : scalar_value",
293 "value : sequence_value",
295 "value : range_value",
296 "scalar_value : integer_value",
297 "scalar_value : real_value",
298 "scalar_value : date_time_value",
299 "scalar_value : symbolic_value",
300 "scalar_value : text_string_value",
301 "integer_value : _integer",
302 "integer_value : _integer units_part",
303 "real_value : _real",
304 "real_value : _real units_part",
305 "units_part : /* empty */",
306 "units_part : units_expression",
307 "units_expression : _units_opening units_expr _units_closing",
308 "units_expr : units_factor",
309 "units_expr : units_expr units_mult_op units_factor",
310 "units_factor : units",
311 "units_factor : units units_exp_op units_exponent",
313 "units : error units_expression",
314 "units_mult_op : _multiply_operator",
315 "units_mult_op : _divide_operator",
316 "units_mult_op : error units_expression",
317 "units_exp_op : _exponentiate_operator",
318 "units_exponent : _integer",
319 "units_exponent : error units_expression",
320 "date_time_value : _date",
321 "date_time_value : _time",
322 "date_time_value : _date_time",
323 "date_time_value : _date_timeV0 time_zoneV0",
324 "time_zoneV0 : /* empty */",
325 "time_zoneV0 : _units_opening _name _units_closing",
326 "symbolic_value : _name",
327 "symbolic_value : _symbol",
328 "text_string_value : _text_string",
329 "sequence_value : sequence_1D",
330 "sequence_value : sequence_2D",
331 "sequence_1D : _sequence_opening _sequence_closing",
332 "sequence_1D : _sequence_opening value_list _sequence_closing",
333 "sequence_1D : _sequence_opening value_list error",
334 "value_list : scalar_value",
335 "value_list : value_list _list_separator scalar_value",
336 "value_list : error",
337 "sequence_2D : _sequence_opening sequence_1D_list _sequence_closing",
338 "sequence_1D_list : sequence_1D",
339 "sequence_1D_list : sequence_1D_list sequence_1D",
340 "set_value : _set_opening _set_closing",
341 "set_value : _set_opening value_list _set_closing",
342 "set_value : _set_opening value_list error",
343 "range_value : integer_value _range_operator integer_value",
346 #line 1 "/usr/lib/yaccpar" 356 #define YYERROR goto yyerrlab 357 #define YYACCEPT { free(yys); free(yyv); return(0); } 358 #define YYABORT { free(yys); free(yyv); return(1); } 359 #define YYBACKUP( newtoken, newvalue )\ 361 if ( yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\ 363 yyerror( "syntax error - cannot backup" );\ 371 #define YYRECOVERING() (!!yyerrflag) 384 #define YYFLAG (-1000) 417 yys = (
int*)malloc(yymaxdepth*
sizeof(
int));
435 register int yy_state;
475 (void)printf(
"State %d, token ", yy_state );
477 (void)printf(
"end-of-file\n" );
479 (void)printf(
"-none-\n" );
482 for ( yy_i = 0; yytoks[yy_i].
t_val >= 0;
485 if ( yytoks[yy_i].t_val ==
yychar )
488 (void)printf(
"%s\n", yytoks[yy_i].t_name );
492 if ( ++yy_ps >= &
yys[ yymaxdepth ] )
498 int yyps_index = (yy_ps -
yys);
499 int yypv_index = (yy_pv -
yyv);
500 int yypvt_index = (yypvt -
yyv);
504 yys = (
int*)realloc((
char*)
yys,
505 yymaxdepth *
sizeof(int));
508 yyerror(
"yacc stack overflow" );
511 yy_ps =
yys + yyps_index;
512 yy_pv = yyv + yypv_index;
513 yypvt = yyv + yypvt_index;
537 (void)printf(
"Received token " );
539 (void)printf(
"end-of-file\n" );
541 (void)printf(
"-none-\n" );
544 for ( yy_i = 0; yytoks[yy_i].
t_val >= 0;
547 if ( yytoks[yy_i].t_val ==
yychar )
550 (void)printf(
"%s\n", yytoks[yy_i].t_name );
567 if ( ( yy_n =
yydef[ yy_state ] ) == -2 )
579 (void)printf(
"Received token " );
581 (void)printf(
"end-of-file\n" );
583 (void)printf(
"-none-\n" );
587 yytoks[yy_i].
t_val >= 0;
590 if ( yytoks[yy_i].t_val
596 (void)printf(
"%s\n", yytoks[yy_i].t_name );
604 register int *yyxi =
yyexca;
606 while ( ( *yyxi != -1 ) ||
607 ( yyxi[1] != yy_state ) )
611 while ( ( *(yyxi += 2) >= 0 ) &&
614 if ( ( yy_n = yyxi[1] ) < 0 )
648 while ( yy_ps >=
yys )
651 if ( yy_n >= 0 && yy_n <
YYLAST &&
656 yy_state =
yyact[ yy_n ];
664 # define _POP_ "Error recovery pops state %d, uncovers state %d\n" 666 (void)printf( _POP_, *yy_ps,
691 (void)printf(
"Error recovery discards " );
693 (void)printf(
"token end-of-file\n" );
695 (void)printf(
"token -none-\n" );
699 yytoks[yy_i].
t_val >= 0;
702 if ( yytoks[yy_i].t_val
708 (void)printf(
"token %s\n",
709 yytoks[yy_i].t_name );
730 (void)printf(
"Reduce by (%d) \"%s\"\n",
731 yy_n, yyreds[ yy_n ] );
749 register int yy_len =
yyr2[ yy_n ];
751 if ( !( yy_len & 01 ) )
754 yyval = ( yy_pv -= yy_len )[1];
755 yy_state =
yypgo[ yy_n =
yyr1[ yy_n ] ] +
756 *( yy_ps -= yy_len ) + 1;
757 if ( yy_state >=
YYLAST ||
759 yyact[ yy_state ] ] != -yy_n )
766 yyval = ( yy_pv -= yy_len )[1];
767 yy_state =
yypgo[ yy_n =
yyr1[ yy_n ] ] +
768 *( yy_ps -= yy_len ) + 1;
769 if ( yy_state >=
YYLAST ||
770 yychk[ yy_state =
yyact[ yy_state ] ] != -yy_n )
793 yyerror (
"END statement is missing");
814 {
yyerror (
"Missing '=' operator after OBJECT"); }
break;
829 {
yyerror (
"Missing '=' operator after GROUP"); }
break;
848 yyerror (
"Bad value in assignment statement");
853 {
yyerror (
"Expected '=' after name"); }
break;
886 {
yyerror (
"Units designator must be a name"); }
break;
889 { yyval.
flag = 1; }
break;
892 { yyval.
flag = -1; }
break;
895 {
yyerror (
"Expected a '*', '/' or '**' operator");}
break;
898 {
yyerror(
"Exponent in units expr must be integer");}
break;
922 {
yyerror(
"Sequences with no values not allowed"); }
break;
929 yyerror(
"')' at end of a sequence is missing");
934 {
yyerror (
"Error in value list"); }
break;
937 {
yyerror (
"The '}' is missing at end of set"); }
break;
int yyerror(char *error_msg)
union Value_Data::@2 value