Parent Directory | Revision Log
Little bit on trying to fix debian build.
1 | jpye | 1523 | /* A Bison parser, made by GNU Bison 2.3. */ |
2 | aw0a | 1 | |
3 | jpye | 1523 | /* Skeleton implementation for Bison's Yacc-like parsers in C |
4 | ben.allan | 411 | |
5 | jpye | 1523 | Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 |
6 | Free Software Foundation, Inc. | ||
7 | |||
8 | ben.allan | 411 | 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 | jpye | 1523 | Foundation, Inc., 51 Franklin Street, Fifth Floor, |
21 | Boston, MA 02110-1301, USA. */ | ||
22 | ben.allan | 411 | |
23 | jpye | 1523 | /* 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 | ben.allan | 411 | |
33 | jpye | 1523 | This special exception was added by the Free Software Foundation in |
34 | version 2.2 of Bison. */ | ||
35 | ben.allan | 411 | |
36 | jpye | 1523 | /* C LALR(1) parser skeleton written by Richard Stallman, by |
37 | simplifying the original so-called "semantic" parser. */ | ||
38 | |||
39 | johnpye | 506 | /* All symbols defined below should begin with yy or YY, to avoid |
40 | ben.allan | 411 | 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 | johnpye | 506 | #define YYBISON 1 |
48 | ben.allan | 411 | |
49 | jpye | 1523 | /* Bison version. */ |
50 | #define YYBISON_VERSION "2.3" | ||
51 | |||
52 | ben.allan | 411 | /* Skeleton name. */ |
53 | johnpye | 506 | #define YYSKELETON_NAME "yacc.c" |
54 | ben.allan | 411 | |
55 | /* Pure parsers. */ | ||
56 | johnpye | 506 | #define YYPURE 0 |
57 | ben.allan | 411 | |
58 | /* Using locations. */ | ||
59 | johnpye | 506 | #define YYLSP_NEEDED 0 |
60 | ben.allan | 411 | |
61 | johnpye | 506 | /* Substitute the variable and function names. */ |
62 | #define yyparse zz_parse | ||
63 | #define yylex zz_lex | ||
64 | #define yyerror zz_error | ||
65 | #define yylval zz_lval | ||
66 | #define yychar zz_char | ||
67 | #define yydebug zz_debug | ||
68 | #define yynerrs zz_nerrs | ||
69 | ben.allan | 411 | |
70 | |||
71 | /* Tokens. */ | ||
72 | johnpye | 506 | #ifndef YYTOKENTYPE |
73 | # define YYTOKENTYPE | ||
74 | ben.allan | 411 | /* Put the tokens into the symbol table, so that GDB and other debuggers |
75 | know about them. */ | ||
76 | johnpye | 506 | enum yytokentype { |
77 | jpye | 1520 | ADD_TOK = 258, |
78 | ALIASES_TOK = 259, | ||
79 | AND_TOK = 260, | ||
80 | ANY_TOK = 261, | ||
81 | AREALIKE_TOK = 262, | ||
82 | ARETHESAME_TOK = 263, | ||
83 | ARRAY_TOK = 264, | ||
84 | ASSERT_TOK = 265, | ||
85 | ATOM_TOK = 266, | ||
86 | BEQ_TOK = 267, | ||
87 | BNE_TOK = 268, | ||
88 | BREAK_TOK = 269, | ||
89 | CALL_TOK = 270, | ||
90 | CARD_TOK = 271, | ||
91 | CASE_TOK = 272, | ||
92 | CHOICE_TOK = 273, | ||
93 | CHECK_TOK = 274, | ||
94 | CONDITIONAL_TOK = 275, | ||
95 | CONSTANT_TOK = 276, | ||
96 | CONTINUE_TOK = 277, | ||
97 | CREATE_TOK = 278, | ||
98 | DATA_TOK = 279, | ||
99 | DECREASING_TOK = 280, | ||
100 | DEFAULT_TOK = 281, | ||
101 | DEFINITION_TOK = 282, | ||
102 | DIMENSION_TOK = 283, | ||
103 | DIMENSIONLESS_TOK = 284, | ||
104 | DO_TOK = 285, | ||
105 | ELSE_TOK = 286, | ||
106 | END_TOK = 287, | ||
107 | EXPECT_TOK = 288, | ||
108 | EXTERNAL_TOK = 289, | ||
109 | FALSE_TOK = 290, | ||
110 | FALLTHRU_TOK = 291, | ||
111 | FIX_TOK = 292, | ||
112 | FOR_TOK = 293, | ||
113 | FREE_TOK = 294, | ||
114 | FROM_TOK = 295, | ||
115 | GLOBAL_TOK = 296, | ||
116 | IF_TOK = 297, | ||
117 | IMPORT_TOK = 298, | ||
118 | IN_TOK = 299, | ||
119 | INPUT_TOK = 300, | ||
120 | INCREASING_TOK = 301, | ||
121 | INTERACTIVE_TOK = 302, | ||
122 | INTERSECTION_TOK = 303, | ||
123 | ISA_TOK = 304, | ||
124 | ben.allan | 411 | _IS_T = 305, |
125 | jpye | 1520 | ISREFINEDTO_TOK = 306, |
126 | MAXIMIZE_TOK = 307, | ||
127 | MAXINTEGER_TOK = 308, | ||
128 | MAXREAL_TOK = 309, | ||
129 | METHODS_TOK = 310, | ||
130 | METHOD_TOK = 311, | ||
131 | MINIMIZE_TOK = 312, | ||
132 | MODEL_TOK = 313, | ||
133 | NOT_TOK = 314, | ||
134 | NOTES_TOK = 315, | ||
135 | OF_TOK = 316, | ||
136 | OR_TOK = 317, | ||
137 | OTHERWISE_TOK = 318, | ||
138 | OUTPUT_TOK = 319, | ||
139 | PATCH_TOK = 320, | ||
140 | PROD_TOK = 321, | ||
141 | PROVIDE_TOK = 322, | ||
142 | REFINES_TOK = 323, | ||
143 | REPLACE_TOK = 324, | ||
144 | REQUIRE_TOK = 325, | ||
145 | RETURN_TOK = 326, | ||
146 | RUN_TOK = 327, | ||
147 | SATISFIED_TOK = 328, | ||
148 | SELECT_TOK = 329, | ||
149 | SIZE_TOK = 330, | ||
150 | STOP_TOK = 331, | ||
151 | SUCHTHAT_TOK = 332, | ||
152 | SUM_TOK = 333, | ||
153 | SWITCH_TOK = 334, | ||
154 | THEN_TOK = 335, | ||
155 | TRUE_TOK = 336, | ||
156 | UNION_TOK = 337, | ||
157 | UNITS_TOK = 338, | ||
158 | UNIVERSAL_TOK = 339, | ||
159 | WHEN_TOK = 340, | ||
160 | WHERE_TOK = 341, | ||
161 | WHILE_TOK = 342, | ||
162 | WILLBE_TOK = 343, | ||
163 | WILLBETHESAME_TOK = 344, | ||
164 | WILLNOTBETHESAME_TOK = 345, | ||
165 | ASSIGN_TOK = 346, | ||
166 | CASSIGN_TOK = 347, | ||
167 | DBLCOLON_TOK = 348, | ||
168 | USE_TOK = 349, | ||
169 | LEQ_TOK = 350, | ||
170 | GEQ_TOK = 351, | ||
171 | NEQ_TOK = 352, | ||
172 | DOTDOT_TOK = 353, | ||
173 | WITH_TOK = 354, | ||
174 | VALUE_TOK = 355, | ||
175 | ben.allan | 411 | WITH_VALUE_T = 356, |
176 | jpye | 1520 | REAL_TOK = 357, |
177 | INTEGER_TOK = 358, | ||
178 | IDENTIFIER_TOK = 359, | ||
179 | BRACEDTEXT_TOK = 360, | ||
180 | SYMBOL_TOK = 361, | ||
181 | DQUOTE_TOK = 362, | ||
182 | UPLUS_TOK = 363, | ||
183 | UMINUS_TOK = 364 | ||
184 | ben.allan | 411 | }; |
185 | #endif | ||
186 | jpye | 1523 | /* Tokens. */ |
187 | jpye | 1520 | #define ADD_TOK 258 |
188 | #define ALIASES_TOK 259 | ||
189 | #define AND_TOK 260 | ||
190 | #define ANY_TOK 261 | ||
191 | #define AREALIKE_TOK 262 | ||
192 | #define ARETHESAME_TOK 263 | ||
193 | #define ARRAY_TOK 264 | ||
194 | #define ASSERT_TOK 265 | ||
195 | #define ATOM_TOK 266 | ||
196 | #define BEQ_TOK 267 | ||
197 | #define BNE_TOK 268 | ||
198 | #define BREAK_TOK 269 | ||
199 | #define CALL_TOK 270 | ||
200 | #define CARD_TOK 271 | ||
201 | #define CASE_TOK 272 | ||
202 | #define CHOICE_TOK 273 | ||
203 | #define CHECK_TOK 274 | ||
204 | #define CONDITIONAL_TOK 275 | ||
205 | #define CONSTANT_TOK 276 | ||
206 | #define CONTINUE_TOK 277 | ||
207 | #define CREATE_TOK 278 | ||
208 | #define DATA_TOK 279 | ||
209 | #define DECREASING_TOK 280 | ||
210 | #define DEFAULT_TOK 281 | ||
211 | #define DEFINITION_TOK 282 | ||
212 | #define DIMENSION_TOK 283 | ||
213 | #define DIMENSIONLESS_TOK 284 | ||
214 | #define DO_TOK 285 | ||
215 | #define ELSE_TOK 286 | ||
216 | #define END_TOK 287 | ||
217 | #define EXPECT_TOK 288 | ||
218 | #define EXTERNAL_TOK 289 | ||
219 | #define FALSE_TOK 290 | ||
220 | #define FALLTHRU_TOK 291 | ||
221 | #define FIX_TOK 292 | ||
222 | #define FOR_TOK 293 | ||
223 | #define FREE_TOK 294 | ||
224 | #define FROM_TOK 295 | ||
225 | #define GLOBAL_TOK 296 | ||
226 | #define IF_TOK 297 | ||
227 | #define IMPORT_TOK 298 | ||
228 | #define IN_TOK 299 | ||
229 | #define INPUT_TOK 300 | ||
230 | #define INCREASING_TOK 301 | ||
231 | #define INTERACTIVE_TOK 302 | ||
232 | #define INTERSECTION_TOK 303 | ||
233 | #define ISA_TOK 304 | ||
234 | ben.allan | 411 | #define _IS_T 305 |
235 | jpye | 1520 | #define ISREFINEDTO_TOK 306 |
236 | #define MAXIMIZE_TOK 307 | ||
237 | #define MAXINTEGER_TOK 308 | ||
238 | #define MAXREAL_TOK 309 | ||
239 | #define METHODS_TOK 310 | ||
240 | #define METHOD_TOK 311 | ||
241 | #define MINIMIZE_TOK 312 | ||
242 | #define MODEL_TOK 313 | ||
243 | #define NOT_TOK 314 | ||
244 | #define NOTES_TOK 315 | ||
245 | #define OF_TOK 316 | ||
246 | #define OR_TOK 317 | ||
247 | #define OTHERWISE_TOK 318 | ||
248 | #define OUTPUT_TOK 319 | ||
249 | #define PATCH_TOK 320 | ||
250 | #define PROD_TOK 321 | ||
251 | #define PROVIDE_TOK 322 | ||
252 | #define REFINES_TOK 323 | ||
253 | #define REPLACE_TOK 324 | ||
254 | #define REQUIRE_TOK 325 | ||
255 | #define RETURN_TOK 326 | ||
256 | #define RUN_TOK 327 | ||
257 | #define SATISFIED_TOK 328 | ||
258 | #define SELECT_TOK 329 | ||
259 | #define SIZE_TOK 330 | ||
260 | #define STOP_TOK 331 | ||
261 | #define SUCHTHAT_TOK 332 | ||
262 | #define SUM_TOK 333 | ||
263 | #define SWITCH_TOK 334 | ||
264 | #define THEN_TOK 335 | ||
265 | #define TRUE_TOK 336 | ||
266 | #define UNION_TOK 337 | ||
267 | #define UNITS_TOK 338 | ||
268 | #define UNIVERSAL_TOK 339 | ||
269 | #define WHEN_TOK 340 | ||
270 | #define WHERE_TOK 341 | ||
271 | #define WHILE_TOK 342 | ||
272 | #define WILLBE_TOK 343 | ||
273 | #define WILLBETHESAME_TOK 344 | ||
274 | #define WILLNOTBETHESAME_TOK 345 | ||
275 | #define ASSIGN_TOK 346 | ||
276 | #define CASSIGN_TOK 347 | ||
277 | #define DBLCOLON_TOK 348 | ||
278 | #define USE_TOK 349 | ||
279 | #define LEQ_TOK 350 | ||
280 | #define GEQ_TOK 351 | ||
281 | #define NEQ_TOK 352 | ||
282 | #define DOTDOT_TOK 353 | ||
283 | #define WITH_TOK 354 | ||
284 | #define VALUE_TOK 355 | ||
285 | ben.allan | 411 | #define WITH_VALUE_T 356 |
286 | jpye | 1520 | #define REAL_TOK 357 |
287 | #define INTEGER_TOK 358 | ||
288 | #define IDENTIFIER_TOK 359 | ||
289 | #define BRACEDTEXT_TOK 360 | ||
290 | #define SYMBOL_TOK 361 | ||
291 | #define DQUOTE_TOK 362 | ||
292 | #define UPLUS_TOK 363 | ||
293 | #define UMINUS_TOK 364 | ||
294 | ben.allan | 411 | |
295 | |||
296 | |||
297 | |||
298 | /* Copy the first part of user declarations. */ | ||
299 | jpye | 1523 | #line 31 "base/generic/compiler/ascParse.y" |
300 | ben.allan | 411 | |
301 | #include <stdio.h> | ||
302 | #include <stdarg.h> | ||
303 | #include <limits.h> /* need DBL_MAX and LONG_MAX */ | ||
304 | #include <float.h> /* on a NeXT they are in here */ | ||
305 | |||
306 | johnpye | 506 | #include <compiler/parser.h> |
307 | |||
308 | #include <utilities/ascMalloc.h> | ||
309 | #include <general/list.h> | ||
310 | #include <general/dstring.h> | ||
311 | jpye | 1520 | #include <compiler/compiler.h> |
312 | johnpye | 506 | #include <compiler/scanner.h> |
313 | #include <compiler/symtab.h> /* the global string/symbol table */ | ||
314 | #include <compiler/notate.h> /* notes database wrapper */ | ||
315 | #include <compiler/braced.h> | ||
316 | jpye | 1520 | #include <compiler/fractions.h> |
317 | #include <compiler/dimen.h> | ||
318 | johnpye | 506 | #include <compiler/functype.h> |
319 | #include <compiler/func.h> | ||
320 | johnpye | 669 | #include <compiler/expr_types.h> |
321 | johnpye | 506 | #include <compiler/name.h> |
322 | #include <compiler/nameio.h> | ||
323 | #include <compiler/instance_enum.h> | ||
324 | #include <compiler/extfunc.h> | ||
325 | #include <compiler/packages.h> | ||
326 | #include <compiler/sets.h> | ||
327 | #include <compiler/exprs.h> | ||
328 | #include <compiler/exprio.h> | ||
329 | #include <compiler/vlist.h> | ||
330 | #include <compiler/vlistio.h> /* for debugging only */ | ||
331 | #include <compiler/stattypes.h> | ||
332 | #include <compiler/slist.h> | ||
333 | #include <compiler/statement.h> | ||
334 | #include <compiler/statio.h> | ||
335 | #include <compiler/units.h> | ||
336 | #include <compiler/when.h> | ||
337 | #include <compiler/select.h> | ||
338 | #include <compiler/switch.h> | ||
339 | #include <compiler/proc.h> | ||
340 | #include <compiler/watchpt.h> | ||
341 | #include <compiler/module.h> | ||
342 | #include <compiler/child.h> | ||
343 | #include <compiler/type_desc.h> | ||
344 | #include <compiler/type_descio.h> | ||
345 | #include <compiler/typedef.h> | ||
346 | #include <compiler/library.h> | ||
347 | #include <compiler/syntax.h> | ||
348 | #include <compiler/lexer.h> | ||
349 | |||
350 | aw0a | 1 | /* 1 ==> expr can find missing , w/o shift/reduce conflicts */ |
351 | #define COMMAEXPR_NOTBUGGY 0 | ||
352 | #if COMMAEXPR_NOTBUGGY | ||
353 | johnpye | 506 | #include <compiler/exprio.h> |
354 | aw0a | 1 | #endif /* for CommaExpr if working. */ |
355 | |||
356 | int g_compiler_warnings = 1; /* level of whine to allow */ | ||
357 | |||
358 | johnpye | 506 | #include <compiler/redirectFile.h> |
359 | aw0a | 1 | #ifndef ASCERR |
360 | jpye | 1520 | # error "ASCERR not defined" |
361 | aw0a | 1 | #endif |
362 | |||
363 | extern int zz_error(char *); | ||
364 | /* provided at the end of this file. | ||
365 | * it increments g_untrapped_error, the global defined below | ||
366 | */ | ||
367 | |||
368 | static unsigned long g_header_linenum = 0; | ||
369 | static unsigned int g_untrapped_error = 0; | ||
370 | /* if g_untrapped_error is set to 1, the current definition | ||
371 | * should be abandoned even if nothing else detectable by | ||
372 | * typedef.c exists. basically any syntax error should cause a type | ||
373 | * to be abandoned, but not all cause the parser to barf. | ||
374 | */ | ||
375 | |||
376 | /* the last seen method name while processing a method */ | ||
377 | static symchar *g_proc_name=NULL; | ||
378 | |||
379 | /* the last seen ATOM/MODEL/constant type and refinement base */ | ||
380 | static symchar *g_type_name=NULL; | ||
381 | static symchar *g_refines_name=NULL; | ||
382 | jpye | 1520 | /* |
383 | aw0a | 1 | * g_type_name is used by the scanner when closing a module to check if |
384 | * the parser is in the middle of parsing a MODEL or ATOM type | ||
385 | * definition. | ||
386 | * g_type_name == NULL implies that the parser is in between | ||
387 | * definitions. This depends on proper | ||
388 | * resets to NULL at END of type productions. | ||
389 | * g_type_name != NULL implies that the parser is in the middle | ||
390 | * of a type definition and gives the name | ||
391 | * of that type. | ||
392 | jpye | 1520 | */ |
393 | aw0a | 1 | |
394 | static symchar *g_end_identifier = NULL; | ||
395 | jpye | 1520 | /* This variable gets reset every time we see an ``END_TOK''. If the |
396 | * token after END_TOK is missing (i.e., ``END;'') or if it is recognized | ||
397 | * (e.g., FOR_TOK), set this variable to NULL. When we see an | ||
398 | * ``END_TOK IDENTIFIER_TOK'', set this variable to the pointer into the | ||
399 | aw0a | 1 | * symbol table returned by the scanner. |
400 | */ | ||
401 | |||
402 | static struct StatementList *g_model_parameters=NULL; | ||
403 | /* this is the statementlist of the parameterized type | ||
404 | */ | ||
405 | |||
406 | static struct StatementList *g_parameter_wheres=NULL; | ||
407 | /* this is the where list of a parameterized type. restrictions on args | ||
408 | */ | ||
409 | |||
410 | static struct StatementList *g_parameter_reduction=NULL; | ||
411 | /* this is the statementlist of the REFINES clause | ||
412 | * at present both might be null, which is bad. | ||
413 | */ | ||
414 | |||
415 | static struct Set *g_typeargs=NULL; | ||
416 | /* optional args to a typename in part declaration. | ||
417 | * it is set in the production type_identifier. in | ||
418 | jpye | 1520 | * contexts where args are not allowed, use IDENTIFIER_TOK instead of the |
419 | aw0a | 1 | * type_identifier production. |
420 | */ | ||
421 | |||
422 | static struct Set *g_callargs=NULL; | ||
423 | /* optional args to a user defined method. | ||
424 | * it is set in the production call_identifier. in | ||
425 | jpye | 1520 | * contexts where args are not allowed, use IDENTIFIER_TOK instead of the |
426 | aw0a | 1 | * type_identifier production. |
427 | */ | ||
428 | |||
429 | static struct gl_list_t *g_notelist = NULL; | ||
430 | /* | ||
431 | * Notes accumulator until a type commits or destroys it. | ||
432 | */ | ||
433 | |||
434 | static int g_defaulted; /* used for atoms,constants */ | ||
435 | |||
436 | static CONST dim_type *g_dim_ptr; /* dim of last units parsed, or so */ | ||
437 | static CONST dim_type *g_atom_dim_ptr; /* dim of DIMENSION decl */ | ||
438 | static CONST dim_type *g_default_dim_ptr; /* dim of default value parsed */ | ||
439 | |||
440 | static double g_default_double; | ||
441 | static long g_default_long; | ||
442 | symchar *g_default_symbol; | ||
443 | #define DOUBLECONSTANT 0 | ||
444 | #define LONGCONSTANT 1 | ||
445 | #define BOOLEANCONSTANT 2 | ||
446 | #define SYMBOLCONSTANT 3 | ||
447 | static int g_constant_type = DOUBLECONSTANT; | ||
448 | static CONST struct Units *g_units_ptr; | ||
449 | |||
450 | int g_parse_relns = 1; | ||
451 | /* Should we parse relations? | ||
452 | * 0 indicates don't parse relations | ||
453 | * 1 indicates process them | ||
454 | */ | ||
455 | |||
456 | /* Forward declaration of error message reporting | ||
457 | * functions provided at the end of this file. | ||
458 | */ | ||
459 | static void ErrMsg_Generic(CONST char *); | ||
460 | static void ErrMsg_CommaName(CONST char *, struct Name *); | ||
461 | #if COMMAEXPR_NOTBUGGY | ||
462 | static void ErrMsg_CommaExpr(CONST char *, struct Expr *); | ||
463 | #endif /* COMMAEXPR_NOTBUGGY */ | ||
464 | static void ErrMsg_NullDefPointer(CONST char *); | ||
465 | static void ErrMsg_ParensBrackets(CONST char *); | ||
466 | static void WarnMsg_MismatchEnd(CONST char *, CONST char *, | ||
467 | unsigned long, CONST char *); | ||
468 | static CONST char *TokenAsString(unsigned long); | ||
469 | |||
470 | ben.allan | 411 | static void error_reporter_current_line(const error_severity_t sev, const char *fmt,...); |
471 | |||
472 | /** @page ascend-notes About 'NOTES' in ASCEND | ||
473 | aw0a | 1 | * |
474 | * The parser will now parse a NOTES block as well as in-lined NOTES. As | ||
475 | * a matter of fact, the parser would probably parse FORTRAN now since it | ||
476 | * is very lenient. For the in-lined NOTES, I accept any "doubly-quoted" | ||
477 | * string after an `fname'. I am currently dropping the NOTE on the | ||
478 | * floor. Ideally, we should only accept an inline NOTE when we are | ||
479 | * creating a new thing, like in an IS_A statement or a labeled relation. | ||
480 | * That means either adding the optional_note to fname and whining at the | ||
481 | * user when he/she uses the in-lined notes incorrectly, or coming up | ||
482 | * with a fvarnotelist and fnamenote that accepts fnames and | ||
483 | * optional_notes in a list or a stand-alone form. | ||
484 | * | ||
485 | * For the block NOTES statement, the symtax is | ||
486 | * | ||
487 | jpye | 1520 | * NOTES ( SYMBOL_TOK ( fvarlist BRACEDTEXT_TOK )+ )+ END NOTES ';' |
488 | aw0a | 1 | * |
489 | * Here I am using () as part of the meta-language to describe the syntax | ||
490 | * to you, they are not part of the formal grammer. An example is | ||
491 | * | ||
492 | * NOTES | ||
493 | * 'text' a,b,c { Here is some text } | ||
494 | * d { Here is more text } | ||
495 | * 'html' SELF { <bold>html sucks</bold> } | ||
496 | * END NOTES; | ||
497 | * | ||
498 | * Note that the only punctuation is the `,' between the members of the | ||
499 | * fvarlist and the closing `;'. Right now, the term `SELF' would be | ||
500 | * eaten in the fvarlist production. I'm not sure if this is what we | ||
501 | * should do (which requires having the notes processing do something | ||
502 | * special when it sees SELF in the fvarlist), or if we should create | ||
503 | jpye | 1520 | * a SELF_TOK token. The latter is certainly easier to implement from |
504 | aw0a | 1 | * the parser's perspective, which is why I did it that way. |
505 | * | ||
506 | * The block NOTES statement doesn't do anything with its stuff either, | ||
507 | * the symbols and {bracedText} get dropped on the floor and I destroy | ||
508 | * the fvarlist, but that all that happens. | ||
509 | * | ||
510 | * The `notes_body' and `noteslist' productions return `notes_ptr', which | ||
511 | * right now is a `void*' until we can decide what type of data structure | ||
512 | * we want to handle NOTES. | ||
513 | * | ||
514 | * As an amusing side note, the parser will currently eat the following: | ||
515 | * | ||
516 | * NOTES | ||
517 | * 'fun' name "put some text here" {put more text here} | ||
518 | * END NOTES; | ||
519 | * | ||
520 | * Like I said, this is so the parser will eat them; it's not being real | ||
521 | * smart about what it does with them. | ||
522 | * | ||
523 | * For debugging the NOTES stuff, set the DEBUG_NOTES macro to the | ||
524 | * following: | ||
525 | * | ||
526 | * #define DEBUG_NOTES(s) FPRINTF(stderr,"****DISCARDED NOTES:\n%s****\n",(s)) | ||
527 | * | ||
528 | * To completely ignore the NOTES, set DEBUG_NOTES to the following: | ||
529 | * | ||
530 | * #define DEBUG_NOTES(s) 0 | ||
531 | * | ||
532 | * Note that if you do the latter, you'll get `statement with no effect' | ||
533 | * warnings from gcc -Wall. | ||
534 | ben.allan | 411 | * |
535 | * -- Mark Thomas Thursday, 13 March 1997 | ||
536 | aw0a | 1 | */ |
537 | jpye | 1520 | /* #define DEBUG_NOTES(s) 0 */ |
538 | #define DEBUG_NOTES(s) ERROR_REPORTER_NOLINE(ASC_USER_WARNING,"Discarded note: %s", (s)) | ||
539 | aw0a | 1 | |
540 | /* | ||
541 | * Because the ascend types and notes are not tightly bound to each other, | ||
542 | * what with notes being stored in a database, | ||
543 | * We collect notes locally until the type associated with a batch of notes | ||
544 | * is approved by typedef and other error checks. Then we process the | ||
545 | * collected notes, commiting them to the database. | ||
546 | * | ||
547 | * NOTES made via ADD NOTES do not require a type check first and the | ||
548 | * type may not even exist yet in the library. | ||
549 | * | ||
550 | * ProcessNotes(keep); Clear up collected list, commit them if keep != 0. | ||
551 | * CollectNote(note); Add a note to the collected list. | ||
552 | */ | ||
553 | static void ProcessNotes(int); | ||
554 | static void CollectNote(struct Note *); | ||
555 | |||
556 | jpye | 1520 | /* For 'inline' notes, note on DQUOTE_TOK from scanner.l: |
557 | * Remember that DQUOTE_TOK is a string value which is local to the | ||
558 | aw0a | 1 | * production that finds it. It must be copied if you want to |
559 | * keep it. | ||
560 | */ | ||
561 | |||
562 | jpye | 1520 | /* MS VC++ won't compiler Bison output unless we switch this */ |
563 | #ifdef _MSC_VER | ||
564 | # define __STDC__ | ||
565 | #endif | ||
566 | ben.allan | 411 | |
567 | jpye | 1520 | |
568 | |||
569 | ben.allan | 411 | /* Enabling traces. */ |
570 | johnpye | 506 | #ifndef YYDEBUG |
571 | # define YYDEBUG 0 | ||
572 | ben.allan | 411 | #endif |
573 | |||
574 | /* Enabling verbose error messages. */ | ||
575 | johnpye | 506 | #ifdef YYERROR_VERBOSE |
576 | # undef YYERROR_VERBOSE | ||
577 | # define YYERROR_VERBOSE 1 | ||
578 | ben.allan | 411 | #else |
579 | johnpye | 506 | # define YYERROR_VERBOSE 0 |
580 | ben.allan | 411 | #endif |
581 | |||
582 | jpye | 1523 | /* Enabling the token table. */ |
583 | #ifndef YYTOKEN_TABLE | ||
584 | # define YYTOKEN_TABLE 0 | ||
585 | #endif | ||
586 | |||
587 | #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED | ||
588 | typedef union YYSTYPE | ||
589 | #line 304 "base/generic/compiler/ascParse.y" | ||
590 | { | ||
591 | aw0a | 1 | double real_value; |
592 | long int_value; | ||
593 | struct fraction frac_value; | ||
594 | symchar *id_ptr; | ||
595 | CONST char *braced_ptr; /* pointer for units, explanations, tables */ | ||
596 | symchar *sym_ptr; /* pointer for symbols */ | ||
597 | CONST char *dquote_ptr; /* for text in "double quotes" */ | ||
598 | struct Name *nptr; | ||
599 | struct Expr *eptr; | ||
600 | struct Set *sptr; | ||
601 | struct VariableList *lptr; | ||
602 | struct Statement *statptr; | ||
603 | struct StatementList *slptr; | ||
604 | struct SelectList *septr; | ||
605 | struct SwitchList *swptr; | ||
606 | struct WhenList *wptr; | ||
607 | struct NoteTmp *notesptr; /* change this once struct Notes is defined */ | ||
608 | struct gl_list_t *listp; | ||
609 | struct InitProcedure *procptr; | ||
610 | CONST dim_type *dimp; | ||
611 | struct TypeDescription *tptr; | ||
612 | struct UnitDefinition *udefptr; | ||
613 | dim_type dimen; | ||
614 | enum ForOrder order; | ||
615 | enum ForKind fkind; | ||
616 | jpye | 1523 | } |
617 | /* Line 187 of yacc.c. */ | ||
618 | #line 619 "base/generic/compiler/ascParse.c" | ||
619 | YYSTYPE; | ||
620 | johnpye | 506 | # define yystype YYSTYPE /* obsolescent; will be withdrawn */ |
621 | # define YYSTYPE_IS_DECLARED 1 | ||
622 | # define YYSTYPE_IS_TRIVIAL 1 | ||
623 | aw0a | 1 | #endif |
624 | |||
625 | ben.allan | 411 | |
626 | |||
627 | /* Copy the second part of user declarations. */ | ||
628 | |||
629 | |||
630 | jpye | 1523 | /* Line 216 of yacc.c. */ |
631 | #line 632 "base/generic/compiler/ascParse.c" | ||
632 | ben.allan | 411 | |
633 | jpye | 1523 | #ifdef short |
634 | # undef short | ||
635 | #endif | ||
636 | ben.allan | 411 | |
637 | jpye | 1523 | #ifdef YYTYPE_UINT8 |
638 | typedef YYTYPE_UINT8 yytype_uint8; | ||
639 | #else | ||
640 | typedef unsigned char yytype_uint8; | ||
641 | #endif | ||
642 | |||
643 | #ifdef YYTYPE_INT8 | ||
644 | typedef YYTYPE_INT8 yytype_int8; | ||
645 | #elif (defined __STDC__ || defined __C99__FUNC__ \ | ||
646 | || defined __cplusplus || defined _MSC_VER) | ||
647 | typedef signed char yytype_int8; | ||
648 | #else | ||
649 | typedef short int yytype_int8; | ||
650 | #endif | ||
651 | |||
652 | #ifdef YYTYPE_UINT16 | ||
653 | typedef YYTYPE_UINT16 yytype_uint16; | ||
654 | #else | ||
655 | typedef unsigned short int yytype_uint16; | ||
656 | #endif | ||
657 | |||
658 | #ifdef YYTYPE_INT16 | ||
659 | typedef YYTYPE_INT16 yytype_int16; | ||
660 | #else | ||
661 | typedef short int yytype_int16; | ||
662 | #endif | ||
663 | |||
664 | #ifndef YYSIZE_T | ||
665 | # ifdef __SIZE_TYPE__ | ||
666 | # define YYSIZE_T __SIZE_TYPE__ | ||
667 | # elif defined size_t | ||
668 | # define YYSIZE_T size_t | ||
669 | # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ | ||
670 | || defined __cplusplus || defined _MSC_VER) | ||
671 | # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ | ||
672 | # define YYSIZE_T size_t | ||
673 | # else | ||
674 | # define YYSIZE_T unsigned int | ||
675 | ben.allan | 411 | # endif |
676 | jpye | 1523 | #endif |
677 | |||
678 | #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) | ||
679 | |||
680 | #ifndef YY_ | ||
681 | # if YYENABLE_NLS | ||
682 | # if ENABLE_NLS | ||
683 | # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ | ||
684 | # define YY_(msgid) dgettext ("bison-runtime", msgid) | ||
685 | # endif | ||
686 | ben.allan | 411 | # endif |
687 | jpye | 1523 | # ifndef YY_ |
688 | # define YY_(msgid) msgid | ||
689 | # endif | ||
690 | #endif | ||
691 | ben.allan | 411 | |
692 | jpye | 1523 | /* Suppress unused-variable warnings by "using" E. */ |
693 | #if ! defined lint || defined __GNUC__ | ||
694 | # define YYUSE(e) ((void) (e)) | ||
695 | #else | ||
696 | # define YYUSE(e) /* empty */ | ||
697 | #endif | ||
698 | |||
699 | /* Identity function, used to suppress warnings about constant conditions. */ | ||
700 | #ifndef lint | ||
701 | # define YYID(n) (n) | ||
702 | #else | ||
703 | #if (defined __STDC__ || defined __C99__FUNC__ \ | ||
704 | || defined __cplusplus || defined _MSC_VER) | ||
705 | static int | ||
706 | YYID (int i) | ||
707 | #else | ||
708 | static int | ||
709 | YYID (i) | ||
710 | int i; | ||
711 | #endif | ||
712 | { | ||
713 | return i; | ||
714 | } | ||
715 | #endif | ||
716 | |||
717 | #if ! defined yyoverflow || YYERROR_VERBOSE | ||
718 | |||
719 | ben.allan | 411 | /* The parser invokes alloca or malloc; define the necessary symbols. */ |
720 | |||
721 | johnpye | 506 | # ifdef YYSTACK_USE_ALLOCA |
722 | # if YYSTACK_USE_ALLOCA | ||
723 | ben.allan | 411 | # ifdef __GNUC__ |
724 | johnpye | 506 | # define YYSTACK_ALLOC __builtin_alloca |
725 | jpye | 1523 | # elif defined __BUILTIN_VA_ARG_INCR |
726 | # include <alloca.h> /* INFRINGES ON USER NAME SPACE */ | ||
727 | # elif defined _AIX | ||
728 | # define YYSTACK_ALLOC __alloca | ||
729 | # elif defined _MSC_VER | ||
730 | # include <malloc.h> /* INFRINGES ON USER NAME SPACE */ | ||
731 | # define alloca _alloca | ||
732 | ben.allan | 411 | # else |
733 | johnpye | 506 | # define YYSTACK_ALLOC alloca |
734 | jpye | 1523 | # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ |
735 | || defined __cplusplus || defined _MSC_VER) | ||
736 | # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ | ||
737 | # ifndef _STDLIB_H | ||
738 | # define _STDLIB_H 1 | ||
739 | # endif | ||
740 | # endif | ||
741 | ben.allan | 411 | # endif |
742 | # endif | ||
743 | # endif | ||
744 | |||
745 | johnpye | 506 | # ifdef YYSTACK_ALLOC |
746 | jpye | 1523 | /* Pacify GCC's `empty if-body' warning. */ |
747 | # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) | ||
748 | # ifndef YYSTACK_ALLOC_MAXIMUM | ||
749 | /* The OS might guarantee only one guard page at the bottom of the stack, | ||
750 | and a page size can be as small as 4096 bytes. So we cannot safely | ||
751 | invoke alloca (N) if N exceeds 4096. Use a slightly smaller number | ||
752 | to allow for a few compiler-allocated temporary stack slots. */ | ||
753 | # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ | ||
754 | # endif | ||
755 | ben.allan | 411 | # else |
756 | jpye | 1523 | # define YYSTACK_ALLOC YYMALLOC |
757 | # define YYSTACK_FREE YYFREE | ||
758 | # ifndef YYSTACK_ALLOC_MAXIMUM | ||
759 | # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM | ||
760 | # endif | ||
761 | # if (defined __cplusplus && ! defined _STDLIB_H \ | ||
762 | && ! ((defined YYMALLOC || defined malloc) \ | ||
763 | && (defined YYFREE || defined free))) | ||
764 | ben.allan | 411 | # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ |
765 | jpye | 1523 | # ifndef _STDLIB_H |
766 | # define _STDLIB_H 1 | ||
767 | # endif | ||
768 | ben.allan | 411 | # endif |
769 | jpye | 1523 | # ifndef YYMALLOC |
770 | # define YYMALLOC malloc | ||
771 | # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ | ||
772 | || defined __cplusplus || defined _MSC_VER) | ||
773 | void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ | ||
774 | # endif | ||
775 | # endif | ||
776 | # ifndef YYFREE | ||
777 | # define YYFREE free | ||
778 | # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ | ||
779 | || defined __cplusplus || defined _MSC_VER) | ||
780 | void free (void *); /* INFRINGES ON USER NAME SPACE */ | ||
781 | # endif | ||
782 | # endif | ||
783 | ben.allan | 411 | # endif |
784 | jpye | 1523 | #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ |
785 | ben.allan | 411 | |
786 | |||
787 | jpye | 1523 | #if (! defined yyoverflow \ |
788 | && (! defined __cplusplus \ | ||
789 | || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) | ||
790 | ben.allan | 411 | |
791 | /* A type that is properly aligned for any stack member. */ | ||
792 | johnpye | 506 | union yyalloc |
793 | ben.allan | 411 | { |
794 | jpye | 1523 | yytype_int16 yyss; |
795 | johnpye | 506 | YYSTYPE yyvs; |
796 | ben.allan | 411 | }; |
797 | |||
798 | /* The size of the maximum gap between one aligned stack and the next. */ | ||
799 | johnpye | 506 | # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) |
800 | ben.allan | 411 | |
801 | /* The size of an array large to enough to hold all stacks, each with | ||
802 | N elements. */ | ||
803 | johnpye | 506 | # define YYSTACK_BYTES(N) \ |
804 | jpye | 1523 | ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ |
805 | johnpye | 506 | + YYSTACK_GAP_MAXIMUM) |
806 | ben.allan | 411 | |
807 | /* Copy COUNT objects from FROM to TO. The source and destination do | ||
808 | not overlap. */ | ||
809 | johnpye | 506 | # ifndef YYCOPY |
810 | jpye | 1523 | # if defined __GNUC__ && 1 < __GNUC__ |
811 | johnpye | 506 | # define YYCOPY(To, From, Count) \ |
812 | ben.allan | 411 | __builtin_memcpy (To, From, (Count) * sizeof (*(From))) |
813 | # else | ||
814 | johnpye | 506 | # define YYCOPY(To, From, Count) \ |
815 | ben.allan | 411 | do \ |
816 | { \ | ||
817 | jpye | 1523 | YYSIZE_T yyi; \ |
818 | johnpye | 506 | for (yyi = 0; yyi < (Count); yyi++) \ |
819 | (To)[yyi] = (From)[yyi]; \ | ||
820 | ben.allan | 411 | } \ |
821 | jpye | 1523 | while (YYID (0)) |
822 | ben.allan | 411 | # endif |
823 | # endif | ||
824 | |||
825 | /* Relocate STACK from its old location to the new one. The | ||
826 | johnpye | 506 | local variables YYSIZE and YYSTACKSIZE give the old and new number of |
827 | elements in the stack, and YYPTR gives the new location of the | ||
828 | stack. Advance YYPTR to a properly aligned location for the next | ||
829 | ben.allan | 411 | stack. */ |
830 | johnpye | 506 | # define YYSTACK_RELOCATE(Stack) \ |
831 | ben.allan | 411 | do \ |
832 | { \ | ||
833 | johnpye | 506 | YYSIZE_T yynewbytes; \ |
834 | YYCOPY (&yyptr->Stack, Stack, yysize); \ | ||
835 | Stack = &yyptr->Stack; \ | ||
836 | yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ | ||
837 | yyptr += yynewbytes / sizeof (*yyptr); \ | ||
838 | ben.allan | 411 | } \ |
839 | jpye | 1523 | while (YYID (0)) |
840 | ben.allan | 411 | |
841 | aw0a | 1 | #endif |
842 | |||
843 | jpye | 1523 | /* YYFINAL -- State number of the termination state. */ |
844 | johnpye | 506 | #define YYFINAL 2 |
845 | /* YYLAST -- Last index in YYTABLE. */ | ||
846 | jpye | 1520 | #define YYLAST 1102 |
847 | ben.allan | 411 | |
848 | jpye | 1523 | /* YYNTOKENS -- Number of terminals. */ |
849 | johnpye | 506 | #define YYNTOKENS 127 |
850 | jpye | 1523 | /* YYNNTS -- Number of nonterminals. */ |
851 | johnpye | 506 | #define YYNNTS 116 |
852 | jpye | 1523 | /* YYNRULES -- Number of rules. */ |
853 | johnpye | 506 | #define YYNRULES 307 |
854 | jpye | 1523 | /* YYNRULES -- Number of states. */ |
855 | jpye | 1520 | #define YYNSTATES 616 |
856 | ben.allan | 411 | |
857 | johnpye | 506 | /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ |
858 | #define YYUNDEFTOK 2 | ||
859 | #define YYMAXUTOK 364 | ||
860 | ben.allan | 411 | |
861 | jpye | 1523 | #define YYTRANSLATE(YYX) \ |
862 | johnpye | 506 | ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) |
863 | ben.allan | 411 | |
864 | johnpye | 506 | /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ |
865 | jpye | 1523 | static const yytype_uint8 yytranslate[] = |
866 | aw0a | 1 | { |
867 | ben.allan | 411 | 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
868 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
869 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
870 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
871 | 121, 122, 116, 113, 108, 114, 124, 115, 2, 2, | ||
872 | 2, 2, 2, 2, 2, 2, 2, 2, 123, 120, | ||
873 | 110, 111, 112, 2, 2, 2, 2, 2, 2, 2, | ||
874 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
875 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
876 | 2, 125, 2, 126, 119, 2, 2, 2, 2, 2, | ||
877 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
878 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
879 | 2, 2, 2, 2, 109, 2, 2, 2, 2, 2, | ||
880 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
881 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
882 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
883 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
884 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
885 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
886 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
887 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
888 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
889 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
890 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
891 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
892 | 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, | ||
893 | 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, | ||
894 | 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, | ||
895 | 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, | ||
896 | 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, | ||
897 | 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, | ||
898 | 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, | ||
899 | 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, | ||
900 | 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, | ||
901 | 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, | ||
902 | 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, | ||
903 | 105, 106, 107, 117, 118 | ||
904 | }; | ||
905 | aw0a | 1 | |
906 | johnpye | 506 | #if YYDEBUG |
907 | /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in | ||
908 | YYRHS. */ | ||
909 | jpye | 1523 | static const yytype_uint16 yyprhs[] = |
910 | aw0a | 1 | { |
911 | ben.allan | 411 | 0, 0, 3, 4, 7, 9, 11, 13, 15, 17, |
912 | 19, 21, 23, 25, 27, 29, 31, 33, 35, 41, | ||
913 | 45, 49, 52, 56, 60, 63, 69, 73, 78, 85, | ||
914 | 90, 96, 103, 108, 114, 121, 128, 135, 138, 139, | ||
915 | 143, 146, 149, 152, 155, 164, 165, 169, 172, 175, | ||
916 | 178, 185, 190, 198, 201, 202, 206, 207, 212, 213, | ||
917 | 217, 223, 229, 230, 232, 238, 241, 244, 248, 249, | ||
918 | 252, 257, 258, 259, 263, 265, 266, 269, 275, 278, | ||
919 | 280, 281, 285, 289, 291, 293, 295, 297, 299, 301, | ||
920 | 303, 305, 307, 309, 311, 313, 315, 317, 319, 321, | ||
921 | 323, 325, 327, 329, 331, 333, 335, 337, 339, 341, | ||
922 | 343, 345, 347, 349, 355, 361, 365, 378, 379, 384, | ||
923 | 389, 393, 395, 400, 402, 407, 408, 411, 412, 415, | ||
924 | 416, 419, 422, 425, 428, 431, 435, 439, 441, 445, | ||
925 | 447, 450, 453, 463, 467, 471, 472, 477, 487, 488, | ||
926 | 491, 500, 501, 503, 505, 507, 509, 511, 513, 516, | ||
927 | 521, 524, 527, 533, 536, 539, 546, 552, 553, 556, | ||
928 | 561, 568, 575, 584, 586, 591, 595, 601, 606, 608, | ||
929 | 610, 612, 614, 617, 620, 625, 632, 634, 639, 643, | ||
930 | 649, 654, 659, 666, 668, 673, 677, 683, 688, 692, | ||
931 | 696, 699, 703, 706, 710, 712, 714, 718, 721, 724, | ||
932 | 726, 730, 735, 738, 741, 744, 747, 750, 753, 756, | ||
933 | 759, 762, 765, 768, 771, 774, 776, 777, 779, 780, | ||
934 | 782, 784, 785, 787, 791, 795, 801, 803, 805, 808, | ||
935 | 811, 812, 814, 817, 819, 820, 822, 824, 826, 828, | ||
936 | 832, 836, 840, 844, 847, 849, 855, 856, 858, 860, | ||
937 | 862, 864, 866, 868, 870, 872, 874, 876, 878, 882, | ||
938 | 886, 890, 894, 898, 902, 906, 910, 913, 917, 921, | ||
939 | 925, 929, 933, 936, 939, 946, 951, 956, 961, 966, | ||
940 | 971, 976, 981, 986, 991, 996, 1001, 1006, 1011, 1016, | ||
941 | 1020, 1022, 1024, 1026, 1028, 1030, 1032, 1034 | ||
942 | }; | ||
943 | aw0a | 1 | |
944 | jpye | 1523 | /* YYRHS -- A `-1'-separated list of the rules' RHS. */ |
945 | static const yytype_int16 yyrhs[] = | ||
946 | ben.allan | 411 | { |
947 | 128, 0, -1, -1, 128, 129, -1, 131, -1, 132, | ||
948 | -1, 133, -1, 136, -1, 138, -1, 134, -1, 144, | ||
949 | -1, 140, -1, 147, -1, 156, -1, 153, -1, 158, | ||
950 | -1, 130, -1, 1, -1, 41, 120, 168, 226, 120, | ||
951 | -1, 70, 107, 120, -1, 70, 225, 120, -1, 70, | ||
952 | 225, -1, 67, 107, 120, -1, 67, 225, 120, -1, | ||
953 | ben.allan | 473 | 67, 225, -1, 43, 104, 40, 107, 120, -1, 43, |
954 | jpye | 1520 | 107, 120, -1, 135, 220, 226, 120, -1, 3, 60, |
955 | ben.allan | 411 | 44, 104, 179, 120, -1, 137, 164, 226, 120, -1, |
956 | 3, 55, 44, 104, 120, -1, 3, 55, 44, 27, | ||
957 | 58, 120, -1, 139, 164, 226, 120, -1, 69, 55, | ||
958 | 44, 104, 120, -1, 69, 55, 44, 27, 58, 120, | ||
959 | -1, 155, 141, 168, 162, 226, 120, -1, 142, 68, | ||
960 | 104, 234, 143, 120, -1, 11, 104, -1, -1, 26, | ||
961 | 239, 231, -1, 26, 35, -1, 26, 81, -1, 26, | ||
962 | 106, -1, 155, 145, -1, 21, 104, 68, 104, 234, | ||
963 | 146, 228, 120, -1, -1, 92, 239, 231, -1, 92, | ||
964 | 81, -1, 92, 35, -1, 92, 106, -1, 155, 148, | ||
965 | 168, 162, 226, 120, -1, 149, 150, 151, 120, -1, | ||
966 | 149, 150, 151, 68, 104, 152, 120, -1, 58, 104, | ||
967 | -1, -1, 121, 168, 122, -1, -1, 86, 121, 168, | ||
968 | 122, -1, -1, 121, 168, 122, -1, 154, 168, 162, | ||
969 | 226, 120, -1, 65, 104, 38, 104, 120, -1, -1, | ||
970 | 84, -1, 157, 168, 162, 226, 120, -1, 27, 104, | ||
971 | -1, 159, 120, -1, 83, 160, 226, -1, -1, 160, | ||
972 | 161, -1, 104, 111, 105, 120, -1, -1, -1, 55, | ||
973 | 163, 164, -1, 165, -1, -1, 165, 166, -1, 167, | ||
974 | 120, 168, 226, 120, -1, 56, 104, -1, 169, -1, | ||
975 | -1, 169, 170, 120, -1, 169, 1, 120, -1, 171, | ||
976 | -1, 172, -1, 173, -1, 175, -1, 176, -1, 182, | ||
977 | -1, 183, -1, 184, -1, 185, -1, 186, -1, 187, | ||
978 | -1, 193, -1, 189, -1, 202, -1, 201, -1, 195, | ||
979 | -1, 198, -1, 199, -1, 200, -1, 203, -1, 204, | ||
980 | -1, 205, -1, 207, -1, 211, -1, 210, -1, 212, | ||
981 | -1, 215, -1, 218, -1, 219, -1, 159, -1, 222, | ||
982 | 49, 178, 180, 181, -1, 222, 88, 178, 180, 181, | ||
983 | -1, 222, 4, 224, -1, 222, 4, 121, 222, 122, | ||
984 | 86, 222, 49, 104, 61, 104, 174, -1, -1, 101, | ||
985 | 121, 229, 122, -1, 222, 50, 104, 180, -1, 222, | ||
986 | 51, 178, -1, 104, -1, 104, 121, 229, 122, -1, | ||
987 | 104, -1, 104, 121, 229, 122, -1, -1, 56, 104, | ||
988 | -1, -1, 61, 104, -1, -1, 101, 240, -1, 222, | ||
989 | 7, -1, 222, 8, -1, 222, 89, -1, 222, 90, | ||
990 | -1, 224, 91, 240, -1, 224, 92, 240, -1, 188, | ||
991 | -1, 224, 123, 188, -1, 240, -1, 57, 240, -1, | ||
992 | 52, 240, -1, 224, 123, 104, 121, 190, 120, 191, | ||
993 | 192, 122, -1, 222, 123, 45, -1, 222, 123, 64, | ||
994 | -1, -1, 120, 224, 123, 24, -1, 224, 123, 104, | ||
995 | 121, 222, 120, 103, 122, 194, -1, -1, 44, 224, | ||
996 | -1, 38, 104, 44, 240, 196, 197, 168, 226, -1, | ||
997 | -1, 46, -1, 25, -1, 23, -1, 33, -1, 19, | ||
998 | -1, 30, -1, 72, 224, -1, 72, 224, 93, 224, | ||
999 | -1, 37, 222, -1, 39, 222, -1, 34, 104, 121, | ||
1000 | 222, 122, -1, 15, 177, -1, 10, 240, -1, 42, | ||
1001 | 240, 80, 168, 206, 226, -1, 87, 240, 30, 168, | ||
1002 | 226, -1, -1, 31, 168, -1, 85, 222, 208, 226, | ||
1003 | -1, 224, 123, 85, 222, 208, 226, -1, 85, 121, | ||
1004 | 222, 122, 208, 226, -1, 224, 123, 85, 121, 222, | ||
1005 | 122, 208, 226, -1, 209, -1, 17, 229, 123, 168, | ||
1006 | -1, 63, 123, 168, -1, 209, 17, 229, 123, 168, | ||
1007 | -1, 209, 63, 123, 168, -1, 14, -1, 22, -1, | ||
1008 | 36, -1, 71, -1, 76, 227, -1, 94, 224, -1, | ||
1009 | 74, 222, 213, 226, -1, 74, 121, 222, 122, 213, | ||
1010 | 226, -1, 214, -1, 17, 229, 123, 168, -1, 63, | ||
1011 | 123, 168, -1, 214, 17, 229, 123, 168, -1, 214, | ||
1012 | 63, 123, 168, -1, 79, 222, 216, 226, -1, 79, | ||
1013 | 121, 222, 122, 216, 226, -1, 217, -1, 17, 229, | ||
1014 | 123, 168, -1, 63, 123, 168, -1, 217, 17, 229, | ||
1015 | 123, 168, -1, 217, 63, 123, 168, -1, 20, 168, | ||
1016 | 226, -1, 60, 220, 226, -1, 106, 221, -1, 220, | ||
1017 | 106, 221, -1, 222, 105, -1, 221, 222, 105, -1, | ||
1018 | 223, -1, 224, -1, 223, 108, 224, -1, 223, 224, | ||
1019 | -1, 225, 228, -1, 104, -1, 225, 124, 104, -1, | ||
1020 | 225, 125, 229, 126, -1, 32, 20, -1, 32, 38, | ||
1021 | -1, 32, 42, -1, 32, 47, -1, 32, 55, -1, | ||
1022 | 32, 60, -1, 32, 74, -1, 32, 79, -1, 32, | ||
1023 | 83, -1, 32, 41, -1, 32, 85, -1, 32, 87, | ||
1024 | -1, 32, 104, -1, 32, -1, -1, 105, -1, -1, | ||
1025 | 107, -1, 230, -1, -1, 240, -1, 240, 98, 240, | ||
1026 | -1, 230, 108, 240, -1, 230, 108, 240, 98, 240, | ||
1027 | -1, 103, -1, 232, -1, 102, 233, -1, 103, 105, | ||
1028 | -1, -1, 105, -1, 28, 235, -1, 29, -1, -1, | ||
1029 | 116, -1, 236, -1, 104, -1, 103, -1, 236, 115, | ||
1030 | 236, -1, 236, 116, 236, -1, 236, 119, 237, -1, | ||
1031 | 121, 236, 122, -1, 239, 238, -1, 103, -1, 121, | ||
1032 | 103, 115, 103, 122, -1, -1, 113, -1, 114, -1, | ||
1033 | 103, -1, 53, -1, 232, -1, 54, -1, 81, -1, | ||
1034 | 35, -1, 6, -1, 106, -1, 224, -1, 125, 229, | ||
1035 | 126, -1, 240, 113, 240, -1, 240, 114, 240, -1, | ||
1036 | 240, 116, 240, -1, 240, 115, 240, -1, 240, 119, | ||
1037 | 240, -1, 240, 5, 240, -1, 240, 62, 240, -1, | ||
1038 | 59, 240, -1, 240, 241, 240, -1, 240, 242, 240, | ||
1039 | -1, 240, 44, 240, -1, 240, 109, 240, -1, 240, | ||
1040 | 77, 240, -1, 113, 240, -1, 114, 240, -1, 73, | ||
1041 | 121, 224, 108, 232, 122, -1, 73, 121, 224, 122, | ||
1042 | -1, 78, 121, 229, 122, -1, 78, 125, 229, 126, | ||
1043 | -1, 66, 121, 229, 122, -1, 66, 125, 229, 126, | ||
1044 | -1, 82, 121, 229, 122, -1, 82, 125, 229, 126, | ||
1045 | -1, 48, 121, 229, 122, -1, 48, 125, 229, 126, | ||
1046 | -1, 16, 121, 229, 122, -1, 16, 125, 229, 126, | ||
1047 | -1, 18, 121, 229, 122, -1, 18, 125, 229, 126, | ||
1048 | -1, 104, 121, 240, 122, -1, 121, 240, 122, -1, | ||
1049 | 111, -1, 110, -1, 112, -1, 95, -1, 96, -1, | ||
1050 | 97, -1, 12, -1, 13, -1 | ||
1051 | }; | ||
1052 | aw0a | 1 | |
1053 | johnpye | 506 | /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ |
1054 | jpye | 1523 | static const yytype_uint16 yyrline[] = |
1055 | aw0a | 1 | { |
1056 | jpye | 1520 | 0, 423, 423, 425, 429, 430, 431, 432, 433, 434, |
1057 | 435, 436, 437, 438, 439, 440, 441, 442, 449, 494, | ||
1058 | 498, 503, 511, 515, 520, 528, 534, 543, 574, 582, | ||
1059 | 605, 618, 626, 647, 659, 667, 719, 730, 739, 744, | ||
1060 | 749, 756, 763, 773, 812, 847, 852, 857, 864, 871, | ||
1061 | 881, 922, 931, 944, 953, 956, 964, 967, 975, 978, | ||
1062 | 985, 1017, 1031, 1034, 1041, 1071, 1080, 1085, 1105, 1108, | ||
1063 | 1116, 1126, 1130, 1129, 1143, 1151, 1154, 1179, 1193, 1202, | ||
1064 | 1210, 1213, 1221, 1229, 1230, 1231, 1232, 1233, 1234, 1235, | ||
1065 | 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, | ||
1066 | 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, | ||
1067 | 1256, 1257, 1258, 1262, 1303, 1332, 1336, 1387, 1390, 1397, | ||
1068 | 1409, 1436, 1441, 1449, 1454, 1463, 1466, 1474, 1477, 1485, | ||
1069 | 1488, 1495, 1502, 1509, 1516, 1523, 1527, 1534, 1547, 1564, | ||
1070 | 1574, 1582, 1593, 1606, 1613, 1621, 1624, 1631, 1652, 1655, | ||
1071 | 1662, 1684, 1687, 1691, 1698, 1702, 1706, 1710, 1717, 1721, | ||
1072 | 1728, 1735, 1742, 1753, 1764, 1770, 1780, 1790, 1793, 1800, | ||
1073 | 1811, 1823, 1830, 1840, 1847, 1851, 1855, 1859, 1866, 1870, | ||
1074 | 1874, 1878, 1882, 1889, 1896, 1907, 1917, 1924, 1928, 1932, | ||
1075 | 1936, 1943, 1954, 1964, 1971, 1975, 1979, 1983, 1990, 2000, | ||
1076 | 2037, 2046, 2061, 2066, 2075, 2086, 2090, 2095, 2108, 2128, | ||
1077 | 2132, 2137, 2152, 2157, 2162, 2167, 2172, 2177, 2182, 2187, | ||
1078 | 2192, 2197, 2202, 2207, 2212, 2217, 2226, 2229, 2237, 2240, | ||
1079 | 2247, 2252, 2258, 2262, 2266, 2271, 2279, 2285, 2294, 2298, | ||
1080 | 2320, 2324, 2345, 2349, 2354, 2360, 2364, 2371, 2375, 2379, | ||
1081 | 2383, 2387, 2391, 2398, 2405, 2409, 2417, 2420, 2424, 2431, | ||
1082 | 2435, 2439, 2443, 2447, 2451, 2455, 2459, 2463, 2467, 2471, | ||
1083 | 2476, 2481, 2486, 2491, 2496, 2501, 2506, 2510, 2515, 2520, | ||
1084 | 2525, 2530, 2535, 2539, 2543, 2547, 2551, 2558, 2562, 2569, | ||
1085 | 2573, 2580, 2584, 2591, 2595, 2602, 2606, 2613, 2617, 2628, | ||
1086 | 2635, 2639, 2643, 2647, 2651, 2655, 2662, 2666 | ||
1087 | ben.allan | 411 | }; |
1088 | #endif | ||
1089 | aw0a | 1 | |
1090 | jpye | 1523 | #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE |
1091 | /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. | ||
1092 | First, the terminals, then, starting at YYNTOKENS, nonterminals. */ | ||
1093 | johnpye | 506 | static const char *const yytname[] = |
1094 | ben.allan | 411 | { |
1095 | jpye | 1520 | "$end", "error", "$undefined", "ADD_TOK", "ALIASES_TOK", "AND_TOK", |
1096 | "ANY_TOK", "AREALIKE_TOK", "ARETHESAME_TOK", "ARRAY_TOK", "ASSERT_TOK", | ||
1097 | "ATOM_TOK", "BEQ_TOK", "BNE_TOK", "BREAK_TOK", "CALL_TOK", "CARD_TOK", | ||
1098 | "CASE_TOK", "CHOICE_TOK", "CHECK_TOK", "CONDITIONAL_TOK", "CONSTANT_TOK", | ||
1099 | "CONTINUE_TOK", "CREATE_TOK", "DATA_TOK", "DECREASING_TOK", | ||
1100 | "DEFAULT_TOK", "DEFINITION_TOK", "DIMENSION_TOK", "DIMENSIONLESS_TOK", | ||
1101 | "DO_TOK", "ELSE_TOK", "END_TOK", "EXPECT_TOK", "EXTERNAL_TOK", | ||
1102 | "FALSE_TOK", "FALLTHRU_TOK", "FIX_TOK", "FOR_TOK", "FREE_TOK", | ||
1103 | "FROM_TOK", "GLOBAL_TOK", "IF_TOK", "IMPORT_TOK", "IN_TOK", "INPUT_TOK", | ||
1104 | "INCREASING_TOK", "INTERACTIVE_TOK", "INTERSECTION_TOK", "ISA_TOK", | ||
1105 | "_IS_T", "ISREFINEDTO_TOK", "MAXIMIZE_TOK", "MAXINTEGER_TOK", | ||
1106 | "MAXREAL_TOK", "METHODS_TOK", "METHOD_TOK", "MINIMIZE_TOK", "MODEL_TOK", | ||
1107 | "NOT_TOK", "NOTES_TOK", "OF_TOK", "OR_TOK", "OTHERWISE_TOK", | ||
1108 | "OUTPUT_TOK", "PATCH_TOK", "PROD_TOK", "PROVIDE_TOK", "REFINES_TOK", | ||
1109 | "REPLACE_TOK", "REQUIRE_TOK", "RETURN_TOK", "RUN_TOK", "SATISFIED_TOK", | ||
1110 | "SELECT_TOK", "SIZE_TOK", "STOP_TOK", "SUCHTHAT_TOK", "SUM_TOK", | ||
1111 | "SWITCH_TOK", "THEN_TOK", "TRUE_TOK", "UNION_TOK", "UNITS_TOK", | ||
1112 | "UNIVERSAL_TOK", "WHEN_TOK", "WHERE_TOK", "WHILE_TOK", "WILLBE_TOK", | ||
1113 | "WILLBETHESAME_TOK", "WILLNOTBETHESAME_TOK", "ASSIGN_TOK", "CASSIGN_TOK", | ||
1114 | "DBLCOLON_TOK", "USE_TOK", "LEQ_TOK", "GEQ_TOK", "NEQ_TOK", "DOTDOT_TOK", | ||
1115 | "WITH_TOK", "VALUE_TOK", "WITH_VALUE_T", "REAL_TOK", "INTEGER_TOK", | ||
1116 | "IDENTIFIER_TOK", "BRACEDTEXT_TOK", "SYMBOL_TOK", "DQUOTE_TOK", "','", | ||
1117 | "'|'", "'<'", "'='", "'>'", "'+'", "'-'", "'/'", "'*'", "UPLUS_TOK", | ||
1118 | "UMINUS_TOK", "'^'", "';'", "'('", "')'", "':'", "'.'", "'['", "']'", | ||
1119 | ben.allan | 411 | "$accept", "definitions", "definition", "global_def", "require_file", |
1120 | "provide_module", "import", "add_notes_def", "add_notes_head", | ||
1121 | "add_method_def", "add_method_head", "replace_method_def", | ||
1122 | "replace_method_head", "atom_def", "atom_head", "atom_id", "default_val", | ||
1123 | "constant_def", "constant_head", "constant_val", "model_def", | ||
1124 | "model_head", "model_id", "optional_model_parameters", | ||
1125 | "optional_parameter_wheres", "optional_parameter_reduction", "patch_def", | ||
1126 | "patch_head", "universal", "definition_def", "definition_id", | ||
1127 | "units_def", "units_statement", "unitdeflist", "unitdef", "methods", | ||
1128 | "@1", "proclist", "proclistf", "procedure", "procedure_id", | ||
1129 | "fstatements", "statements", "statement", "isa_statement", | ||
1130 | "willbe_statement", "aliases_statement", "optional_set_values", | ||
1131 | "is_statement", "isrefinedto_statement", "call_identifier", | ||
1132 | "type_identifier", "optional_method", "optional_of", | ||
1133 | "optional_with_value", "arealike_statement", "arethesame_statement", | ||
1134 | "willbethesame_statement", "willnotbethesame_statement", | ||
1135 | "assignment_statement", "relation_statement", "relation", | ||
1136 | "blackbox_statement", "input_args", "output_args", "data_args", | ||
1137 | "glassbox_statement", "optional_scope", "for_statement", | ||
1138 | "optional_direction", "forexprend", "run_statement", "fix_statement", | ||
1139 | "free_statement", "external_statement", "call_statement", | ||
1140 | "assert_statement", "if_statement", "while_statement", "optional_else", | ||
1141 | "when_statement", "whenlist", "whenlistf", "flow_statement", | ||
1142 | "use_statement", "select_statement", "selectlist", "selectlistf", | ||
1143 | "switch_statement", "switchlist", "switchlistf", "conditional_statement", | ||
1144 | "notes_statement", "notes_body", "noteslist", "fvarlist", "varlist", | ||
1145 | "fname", "name", "end", "optional_bracedtext", "optional_notes", "set", | ||
1146 | "setexprlist", "number", "realnumber", "opunits", "dims", "dimensions", | ||
1147 | "dimexpr", "fraction", "fractail", "optional_sign", "expr", "relop", | ||
1148 | "logrelop", 0 | ||
1149 | }; | ||
1150 | #endif | ||
1151 | aw0a | 1 | |
1152 | johnpye | 506 | # ifdef YYPRINT |
1153 | /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to | ||
1154 | token YYLEX-NUM. */ | ||
1155 | jpye | 1523 | static const yytype_uint16 yytoknum[] = |
1156 | aw0a | 1 | { |
1157 | ben.allan | 411 | 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, |
1158 | 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, | ||
1159 | 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, | ||
1160 | 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, | ||
1161 | 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, | ||
1162 | 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, | ||
1163 | 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, | ||
1164 | 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, | ||
1165 | 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, | ||
1166 | 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, | ||
1167 | 355, 356, 357, 358, 359, 360, 361, 362, 44, 124, | ||
1168 | 60, 61, 62, 43, 45, 47, 42, 363, 364, 94, | ||
1169 | 59, 40, 41, 58, 46, 91, 93 | ||
1170 | }; | ||
1171 | # endif | ||
1172 | aw0a | 1 | |
1173 | johnpye | 506 | /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ |
1174 | jpye | 1523 | static const yytype_uint8 yyr1[] = |
1175 | ben.allan | 411 | { |
1176 | 0, 127, 128, 128, 129, 129, 129, 129, 129, 129, | ||
1177 | 129, 129, 129, 129, 129, 129, 129, 129, 130, 131, | ||
1178 | 131, 131, 132, 132, 132, 133, 133, 134, 135, 136, | ||
1179 | 137, 137, 138, 139, 139, 140, 141, 142, 143, 143, | ||
1180 | 143, 143, 143, 144, 145, 146, 146, 146, 146, 146, | ||
1181 | 147, 148, 148, 149, 150, 150, 151, 151, 152, 152, | ||
1182 | 153, 154, 155, 155, 156, 157, 158, 159, 160, 160, | ||
1183 | 161, 162, 163, 162, 164, 165, 165, 166, 167, 168, | ||
1184 | 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, | ||
1185 | 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, | ||
1186 | 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, | ||
1187 | 170, 170, 170, 171, 172, 173, 173, 174, 174, 175, | ||
1188 | 176, 177, 177, 178, 178, 179, 179, 180, 180, 181, | ||
1189 | 181, 182, 183, 184, 185, 186, 186, 187, 187, 188, | ||
1190 | 188, 188, 189, 190, 191, 192, 192, 193, 194, 194, | ||
1191 | 195, 196, 196, 196, 197, 197, 197, 197, 198, 198, | ||
1192 | 199, 200, 201, 202, 203, 204, 205, 206, 206, 207, | ||
1193 | 207, 207, 207, 208, 209, 209, 209, 209, 210, 210, | ||
1194 | 210, 210, 210, 211, 212, 212, 213, 214, 214, 214, | ||
1195 | 214, 215, 215, 216, 217, 217, 217, 217, 218, 219, | ||
1196 | 220, 220, 221, 221, 222, 223, 223, 223, 224, 225, | ||
1197 | 225, 225, 226, 226, 226, 226, 226, 226, 226, 226, | ||
1198 | 226, 226, 226, 226, 226, 226, 227, 227, 228, 228, | ||
1199 | 229, 229, 230, 230, 230, 230, 231, 231, 232, 232, | ||
1200 | 233, 233, 234, 234, 234, 235, 235, 236, 236, 236, | ||
1201 | 236, 236, 236, 237, 238, 238, 239, 239, 239, 240, | ||
1202 | 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, | ||
1203 | 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, | ||
1204 | 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, | ||
1205 | 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, | ||
1206 | 241, 241, 241, 241, 241, 241, 242, 242 | ||
1207 | }; | ||
1208 | aw0a | 1 | |
1209 | johnpye | 506 | /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ |
1210 | jpye | 1523 | static const yytype_uint8 yyr2[] = |
1211 | aw0a | 1 | { |
1212 | ben.allan | 411 | 0, 2, 0, 2, 1, 1, 1, 1, 1, 1, |
1213 | 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, | ||
1214 | 3, 2, 3, 3, 2, 5, 3, 4, 6, 4, | ||
1215 | 5, 6, 4, 5, 6, 6, 6, 2, 0, 3, | ||
1216 | 2, 2, 2, 2, 8, 0, 3, 2, 2, 2, | ||
1217 | 6, 4, 7, 2, 0, 3, 0, 4, 0, 3, | ||
1218 | 5, 5, 0, 1, 5, 2, 2, 3, 0, 2, | ||
1219 | 4, 0, 0, 3, 1, 0, 2, 5, 2, 1, | ||
1220 | 0, 3, 3, 1, 1, 1, 1, 1, 1, 1, | ||
1221 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
1222 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
1223 | 1, 1, 1, 5, 5, 3, 12, 0, 4, 4, | ||
1224 | 3, 1, 4, 1, 4, 0, 2, 0, 2, 0, | ||
1225 | 2, 2, 2, 2, 2, 3, 3, 1, 3, 1, | ||
1226 | 2, 2, 9, 3, 3, 0, 4, 9, 0, 2, | ||
1227 | 8, 0, 1, 1, 1, 1, 1, 1, 2, 4, | ||
1228 | 2, 2, 5, 2, 2, 6, 5, 0, 2, 4, | ||
1229 | 6, 6, 8, 1, 4, 3, 5, 4, 1, 1, | ||
1230 | 1, 1, 2, 2, 4, 6, 1, 4, 3, 5, | ||
1231 | 4, 4, 6, 1, 4, 3, 5, 4, 3, 3, | ||
1232 | 2, 3, 2, 3, 1, 1, 3, 2, 2, 1, | ||
1233 | 3, 4, 2, 2, 2, 2, 2, 2, 2, 2, | ||
1234 | 2, 2, 2, 2, 2, 1, 0, 1, 0, 1, | ||
1235 | 1, 0, 1, 3, 3, 5, 1, 1, 2, 2, | ||
1236 | 0, 1, 2, 1, 0, 1, 1, 1, 1, 3, | ||
1237 | 3, 3, 3, 2, 1, 5, 0, 1, 1, 1, | ||
1238 | 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, | ||
1239 | 3, 3, 3, 3, 3, 3, 2, 3, 3, 3, | ||
1240 | 3, 3, 2, 2, 6, 4, 4, 4, 4, 4, | ||
1241 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, | ||
1242 | 1, 1, 1, 1, 1, 1, 1, 1 | ||
1243 | }; | ||
1244 | aw0a | 1 | |
1245 | johnpye | 506 | /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state |
1246 | STATE-NUM when YYTABLE doesn't specify something else to do. Zero | ||
1247 | ben.allan | 411 | means the default is an error. */ |
1248 | jpye | 1523 | static const yytype_uint16 yydefact[] = |
1249 | ben.allan | 411 | { |
1250 | 2, 0, 1, 17, 0, 0, 0, 0, 0, 0, | ||
1251 | 0, 0, 68, 63, 3, 16, 4, 5, 6, 9, | ||
1252 | 0, 7, 75, 8, 75, 11, 10, 12, 14, 80, | ||
1253 | 0, 13, 80, 15, 0, 0, 0, 65, 80, 0, | ||
1254 | jpye | 1520 | 0, 0, 209, 0, 24, 0, 0, 21, 0, 0, |
1255 | 0, 0, 74, 0, 71, 0, 0, 0, 0, 80, | ||
1256 | 0, 43, 80, 54, 71, 66, 0, 0, 0, 0, | ||
1257 | 26, 0, 22, 23, 0, 231, 0, 19, 20, 225, | ||
1258 | 0, 69, 67, 200, 0, 204, 205, 228, 0, 0, | ||
1259 | 0, 0, 76, 0, 0, 72, 0, 0, 265, 0, | ||
1260 | 178, 0, 0, 0, 80, 179, 0, 264, 180, 0, | ||
1261 | 0, 0, 0, 0, 0, 260, 262, 0, 0, 0, | ||
1262 | 0, 181, 0, 0, 0, 226, 0, 0, 263, 0, | ||
1263 | 0, 0, 0, 240, 259, 209, 266, 0, 0, 0, | ||
1264 | 231, 112, 0, 83, 84, 85, 86, 87, 88, 89, | ||
1265 | 90, 91, 92, 93, 137, 95, 94, 98, 99, 100, | ||
1266 | 101, 97, 96, 102, 103, 104, 105, 107, 106, 108, | ||
1267 | 109, 110, 111, 0, 267, 261, 139, 37, 0, 53, | ||
1268 | 71, 0, 71, 80, 56, 0, 0, 0, 125, 0, | ||
1269 | 0, 0, 210, 267, 0, 230, 232, 0, 0, 212, | ||
1270 | 213, 221, 214, 215, 216, 217, 218, 219, 220, 222, | ||
1271 | 223, 224, 0, 0, 202, 0, 207, 229, 208, 201, | ||
1272 | 27, 29, 78, 80, 32, 75, 0, 82, 164, 121, | ||
1273 | 163, 231, 231, 231, 231, 0, 0, 160, 0, 161, | ||
1274 | 0, 231, 231, 141, 140, 276, 0, 231, 231, 158, | ||
1275 | 0, 0, 0, 227, 182, 231, 231, 0, 0, 231, | ||
1276 | 231, 0, 0, 0, 183, 241, 238, 239, 0, 282, | ||
1277 | 283, 0, 0, 81, 0, 131, 132, 0, 0, 0, | ||
1278 | 0, 133, 134, 0, 0, 0, 0, 306, 307, 0, | ||
1279 | 0, 0, 303, 304, 305, 0, 301, 300, 302, 0, | ||
1280 | 0, 0, 0, 0, 0, 0, 0, 0, 244, 0, | ||
1281 | 0, 0, 0, 0, 0, 30, 0, 0, 18, 25, | ||
1282 | 61, 211, 0, 0, 0, 33, 0, 203, 206, 0, | ||
1283 | 73, 60, 231, 0, 0, 0, 0, 198, 0, 0, | ||
1284 | 80, 0, 0, 199, 0, 0, 0, 0, 0, 231, | ||
1285 | 0, 0, 186, 0, 0, 0, 231, 0, 0, 193, | ||
1286 | 0, 0, 0, 231, 0, 0, 173, 80, 0, 299, | ||
1287 | 268, 0, 115, 123, 127, 127, 120, 127, 135, 136, | ||
1288 | 0, 209, 138, 274, 279, 275, 281, 280, 269, 270, | ||
1289 | 272, 271, 273, 277, 278, 244, 0, 0, 243, 38, | ||
1290 | 0, 55, 80, 0, 51, 64, 31, 126, 28, 234, | ||
1291 | 233, 34, 70, 0, 0, 294, 295, 296, 297, 0, | ||
1292 | 151, 167, 292, 293, 288, 289, 159, 0, 285, 0, | ||
1293 | 0, 80, 184, 231, 0, 286, 287, 0, 0, 80, | ||
1294 | 191, 231, 0, 290, 291, 0, 0, 80, 169, 231, | ||
1295 | 0, 0, 298, 0, 231, 0, 129, 119, 129, 0, | ||
1296 | 0, 0, 45, 35, 248, 247, 245, 0, 242, 246, | ||
1297 | 256, 0, 50, 0, 58, 0, 77, 122, 162, 153, | ||
1298 | 152, 0, 80, 0, 0, 0, 0, 80, 188, 0, | ||
1299 | 80, 0, 80, 195, 0, 80, 0, 80, 175, 0, | ||
1300 | 80, 166, 0, 0, 128, 0, 113, 114, 0, 0, | ||
1301 | 0, 0, 267, 256, 228, 0, 0, 0, 256, 40, | ||
1302 | 41, 42, 257, 258, 0, 36, 57, 80, 0, 235, | ||
1303 | 156, 154, 157, 155, 80, 168, 165, 284, 185, 187, | ||
1304 | 80, 190, 192, 194, 80, 197, 171, 174, 80, 177, | ||
1305 | 0, 124, 130, 0, 170, 0, 0, 0, 48, 47, | ||
1306 | 49, 0, 0, 252, 249, 250, 251, 0, 236, 39, | ||
1307 | 237, 0, 52, 0, 189, 196, 176, 0, 0, 145, | ||
1308 | 0, 0, 143, 46, 44, 254, 0, 253, 59, 150, | ||
1309 | 0, 172, 0, 0, 0, 148, 0, 0, 0, 142, | ||
1310 | 144, 0, 147, 0, 0, 0, 149, 0, 117, 146, | ||
1311 | 255, 0, 116, 231, 0, 118 | ||
1312 | ben.allan | 411 | }; |
1313 | aw0a | 1 | |
1314 | jpye | 1523 | /* YYDEFGOTO[NTERM-NUM]. */ |
1315 | static const yytype_int16 yydefgoto[] = | ||
1316 | aw0a | 1 | { |
1317 | ben.allan | 411 | -1, 1, 14, 15, 16, 17, 18, 19, 20, 21, |
1318 | jpye | 1520 | 22, 23, 24, 25, 59, 60, 471, 26, 61, 514, |
1319 | 27, 62, 63, 184, 312, 528, 28, 29, 30, 31, | ||
1320 | 32, 33, 34, 48, 81, 96, 225, 51, 52, 92, | ||
1321 | 93, 54, 55, 142, 143, 144, 145, 612, 146, 147, | ||
1322 | 230, 374, 317, 456, 506, 148, 149, 150, 151, 152, | ||
1323 | 153, 154, 155, 510, 579, 593, 156, 602, 157, 481, | ||
1324 | 534, 158, 159, 160, 161, 162, 163, 164, 165, 483, | ||
1325 | 166, 365, 366, 167, 168, 169, 351, 352, 170, 358, | ||
1326 | 359, 171, 172, 50, 83, 84, 85, 193, 87, 82, | ||
1327 | 254, 218, 194, 195, 569, 175, 266, 399, 468, 469, | ||
1328 | 566, 587, 524, 196, 304, 305 | ||
1329 | ben.allan | 411 | }; |
1330 | aw0a | 1 | |
1331 | johnpye | 506 | /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing |
1332 | ben.allan | 411 | STATE-NUM. */ |
1333 | johnpye | 506 | #define YYPACT_NINF -437 |
1334 | jpye | 1523 | static const yytype_int16 yypact[] = |
1335 | aw0a | 1 | { |
1336 | jpye | 1520 | -437, 1006, -437, -437, 88, -83, -54, -52, 18, 17, |
1337 | 81, 79, -437, -437, -437, -437, -437, -437, -437, -437, | ||
1338 | 43, -437, -437, -437, -437, -437, -437, -437, -437, -437, | ||
1339 | 1, -437, -437, -437, 64, 120, 167, -437, -437, 164, | ||
1340 | 106, 195, -437, 134, 31, 214, 140, 47, -13, 166, | ||
1341 | -22, 248, 228, 248, 230, 531, 182, 183, 184, -437, | ||
1342 | 222, -437, -437, 170, 230, -437, -12, 188, 248, 186, | ||
1343 | -437, 190, -437, -437, 191, 681, -11, -437, -437, 998, | ||
1344 | 187, -437, -437, 166, 194, 77, -437, 9, 166, 180, | ||
1345 | 181, 198, -437, 185, 189, -437, 248, 193, -437, 681, | ||
1346 | -437, 202, 92, 103, -437, -437, 203, -437, -437, 166, | ||
1347 | 204, 166, 681, 125, 681, -437, -437, 681, 681, 43, | ||
1348 | 130, -437, 166, 197, -81, 206, 131, -78, -437, 132, | ||
1349 | -53, 681, 166, 210, 216, 205, -437, 681, 681, 681, | ||
1350 | 681, -437, 208, -437, -437, -437, -437, -437, -437, -437, | ||
1351 | ben.allan | 411 | -437, -437, -437, -437, -437, -437, -437, -437, -437, -437, |
1352 | -437, -437, -437, -437, -437, -437, -437, -437, -437, -437, | ||
1353 | jpye | 1520 | -437, -437, -437, 21, 50, -437, 889, -437, 255, -437, |
1354 | 230, 220, 230, -437, 241, 248, 272, 213, 283, 224, | ||
1355 | 225, 229, -437, -437, 231, 240, 737, 300, 239, -437, | ||
1356 | ben.allan | 411 | -437, -437, -437, -437, -437, -437, -437, -437, -437, -437, |
1357 | jpye | 1520 | -437, -437, 256, 257, -437, 166, -437, -437, -437, 166, |
1358 | -437, -437, -437, -437, -437, -437, 243, -437, 889, 247, | ||
1359 | -437, 681, 681, 681, 681, 248, 249, -437, 316, -437, | ||
1360 | 748, 681, 681, 889, 889, -437, -22, 681, 681, 271, | ||
1361 | 166, 166, 0, -437, -437, 681, 681, 166, 13, 681, | ||
1362 | 681, 166, 14, 777, -437, -437, -437, -437, 681, 250, | ||
1363 | 250, 270, 245, -437, 25, -437, -437, 268, 273, 268, | ||
1364 | 268, -437, -437, 681, 681, 611, 681, -437, -437, 681, | ||
1365 | 681, 681, -437, -437, -437, 681, -437, -437, -437, 681, | ||
1366 | 681, 681, 681, 681, 681, 681, 287, 248, 86, 248, | ||
1367 | 253, 266, -41, 274, 277, -437, 289, 278, -437, -437, | ||
1368 | -437, -437, 681, 681, 279, -437, 280, -437, -437, 248, | ||
1369 | -437, -437, 681, 254, 275, 282, 276, -437, 166, 681, | ||
1370 | -437, 284, 285, -437, 286, 288, 166, -14, 291, 681, | ||
1371 | 293, 248, 27, 296, 294, 299, 681, 301, 248, 32, | ||
1372 | 303, 302, 304, 681, 306, 248, 44, -437, 383, -437, | ||
1373 | -437, 166, -437, 309, 344, 344, -437, 344, 889, 889, | ||
1374 | 58, 310, -437, 126, 126, 126, 900, 900, 76, 76, | ||
1375 | 250, 250, 250, 116, 152, 86, 312, -71, -437, 396, | ||
1376 | 313, -437, -437, 305, -437, -437, -437, -437, -437, 863, | ||
1377 | 889, -437, -437, 314, 315, -437, -437, -437, -437, 317, | ||
1378 | 661, 405, -437, -437, -437, -437, -437, 141, -437, 0, | ||
1379 | 318, -437, -437, 681, 319, -437, -437, 13, 321, -437, | ||
1380 | -437, 681, 323, -437, -437, 14, 324, -437, -437, 681, | ||
1381 | 326, 248, -437, 328, 681, 336, 350, -437, 350, 166, | ||
1382 | 14, 681, 360, -437, -437, -437, -437, 57, -437, 91, | ||
1383 | -17, 333, -437, 332, 334, 681, -437, -437, -437, -437, | ||
1384 | -437, 23, -437, 248, 216, 335, 248, -437, -437, 339, | ||
1385 | -437, 248, -437, -437, 341, -437, 248, -437, -437, 342, | ||
1386 | -437, -437, 370, 337, -437, 681, -437, -437, 345, 248, | ||
1387 | 349, 149, 24, 39, 363, 78, 57, 57, 160, -437, | ||
1388 | -437, -437, -437, -437, 174, -437, -437, -437, 352, 889, | ||
1389 | ben.allan | 411 | -437, -437, -437, -437, -437, -437, -437, -437, -437, -437, |
1390 | jpye | 1520 | -437, -437, -437, -437, -437, -437, -437, -437, -437, -437, |
1391 | 166, -437, 889, 14, -437, 166, 371, 430, -437, -437, | ||
1392 | -437, 174, 357, -437, 362, 362, -437, -56, 216, -437, | ||
1393 | -437, 361, -437, 248, -437, -437, -437, 433, 248, 365, | ||
1394 | 364, 366, -437, -437, -437, -437, 386, -437, -437, -437, | ||
1395 | 382, -437, 166, 368, 427, 456, 389, 446, 388, -437, | ||
1396 | -437, 166, -437, 406, 410, 491, -437, 395, 417, -437, | ||
1397 | -437, 398, -437, 681, 399, -437 | ||
1398 | ben.allan | 411 | }; |
1399 | aw0a | 1 | |
1400 | johnpye | 506 | /* YYPGOTO[NTERM-NUM]. */ |
1401 | jpye | 1523 | static const yytype_int16 yypgoto[] = |
1402 | aw0a | 1 | { |
1403 | ben.allan | 411 | -437, -437, -437, -437, -437, -437, -437, -437, -437, -437, |
1404 | -437, -437, -437, -437, -437, -437, -437, -437, -437, -437, | ||
1405 | -437, -437, -437, -437, -437, -437, -437, -437, -437, -437, | ||
1406 | jpye | 1520 | -437, -437, 467, -437, -437, -57, -437, -20, -437, -437, |
1407 | -437, -24, -437, -437, -437, -437, -437, -437, -437, -437, | ||
1408 | -437, -1, -437, -201, 65, -437, -437, -437, -437, -437, | ||
1409 | -437, 242, -437, -437, -437, -437, -437, -437, -437, -437, | ||
1410 | ben.allan | 411 | -437, -437, -437, -437, -437, -437, -437, -437, -437, -437, |
1411 | jpye | 1520 | -437, -436, -437, -437, -437, -437, 99, -437, -437, 94, |
1412 | -437, -437, -437, 414, 441, -42, -437, -49, 207, -48, | ||
1413 | -437, 20, -129, -437, -26, -426, -437, 143, -437, -430, | ||
1414 | -437, -437, -338, 51, -437, -437 | ||
1415 | ben.allan | 411 | }; |
1416 | aw0a | 1 | |
1417 | johnpye | 506 | /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If |
1418 | ben.allan | 411 | positive, shift that token. If negative, reduce the rule which |
1419 | johnpye | 506 | number is the opposite. If zero, do what YYDEFACT says. |
1420 | If YYTABLE_NINF, syntax error. */ | ||
1421 | #define YYTABLE_NINF -206 | ||
1422 | jpye | 1523 | static const yytype_int16 yytable[] = |
1423 | aw0a | 1 | { |
1424 | jpye | 1520 | 86, 485, 89, 90, 53, 94, 174, 185, 64, 496, |
1425 | 79, 272, 56, 173, 68, 186, 197, 349, 519, 79, | ||
1426 | 189, 37, 57, 42, 509, 274, 42, 403, 275, 276, | ||
1427 | 356, 363, 464, 465, 86, 180, 216, 515, 182, 86, | ||
1428 | 251, 213, 530, 257, 433, 466, 531, 585, 226, 441, | ||
1429 | 467, 42, 39, 532, -205, 40, 533, -205, -205, 58, | ||
1430 | 86, 449, 86, 350, 520, 586, 38, 237, 261, 239, | ||
1431 | 277, 278, 279, 249, 558, 86, 357, 364, 86, 404, | ||
1432 | 235, 86, 252, 264, 88, 258, 564, 565, 262, 521, | ||
1433 | 434, 80, 187, 198, 427, 442, 522, 523, 570, -205, | ||
1434 | -205, -205, 333, 334, 335, 336, 176, 450, 428, 280, | ||
1435 | 281, 282, 341, 342, 397, 398, 217, 578, 344, 345, | ||
1436 | 559, 42, 41, 307, 43, 309, 353, 354, -205, 42, | ||
1437 | 360, 361, -205, 74, 75, 570, 45, 313, -205, -205, | ||
1438 | -205, 283, 284, 35, -205, 560, 371, -205, 36, 49, | ||
1439 | 228, 73, 522, 523, -205, 74, 75, 286, -205, 310, | ||
1440 | 464, 465, 42, 240, 66, 243, 328, 78, 244, 245, | ||
1441 | 86, 74, 75, 285, 457, 561, 458, 213, 467, 459, | ||
1442 | 567, 42, 263, 42, 65, 215, 46, 337, 269, 270, | ||
1443 | 271, 301, 302, 516, 517, 303, 289, 518, 343, 329, | ||
1444 | 563, 347, 86, 414, 69, 330, 516, 517, 86, 348, | ||
1445 | 518, 67, 86, 231, 290, 355, 44, 232, 47, 362, | ||
1446 | 430, 292, 293, 294, 233, 372, 70, 438, 234, 299, | ||
1447 | 300, 301, 302, 71, 446, 303, 296, 297, 298, 299, | ||
1448 | 300, 301, 302, 133, 484, 303, 241, 292, 293, 294, | ||
1449 | 242, 247, 255, 259, 72, 248, 256, 260, 76, 396, | ||
1450 | 77, 400, 296, 297, 298, 299, 300, 301, 302, 556, | ||
1451 | 42, 303, 557, 522, 523, 286, 133, 568, 376, 377, | ||
1452 | 79, 413, 287, 288, 91, 95, 177, 178, 179, 86, | ||
1453 | 181, 183, 188, 190, 191, 192, 419, 426, 212, 214, | ||
1454 | 220, 221, 222, 432, 489, 223, 229, 236, 238, 224, | ||
1455 | 440, 253, 494, 227, 289, 265, 421, 448, 250, 368, | ||
1456 | 499, 267, 86, 306, 308, 503, 268, 311, 273, 453, | ||
1457 | 314, 86, 290, 315, 378, 379, 176, 383, 460, 316, | ||
1458 | 384, 385, 386, 451, 318, 319, 387, 291, 322, 320, | ||
1459 | 388, 389, 390, 391, 392, 393, 394, 321, 324, 325, | ||
1460 | 339, 326, 327, 331, 346, 292, 293, 294, 332, 303, | ||
1461 | 338, 370, 373, 409, 410, 401, 415, 375, 473, 295, | ||
1462 | 296, 297, 298, 299, 300, 301, 302, 402, 286, 303, | ||
1463 | 420, 395, 369, 407, 405, 287, 288, 406, 408, 411, | ||
1464 | 412, 416, 418, 501, 417, 455, 422, 488, 424, 474, | ||
1465 | 86, 423, 512, 429, 425, 493, 431, 508, 435, 511, | ||
1466 | 436, 437, 470, 498, 439, 443, 445, 289, 444, 447, | ||
1467 | 454, 461, 463, 472, 476, 536, 482, 477, 538, 478, | ||
1468 | 504, 487, 490, 542, 492, 290, 495, 497, 546, 500, | ||
1469 | 502, 505, 513, 525, 526, 527, 550, 537, 535, 551, | ||
1470 | 291, 554, 540, 539, 544, 548, 541, 553, 543, 555, | ||
1471 | 217, 545, 572, 547, 581, 582, 549, 584, 292, 293, | ||
1472 | 294, 518, 590, 588, 614, 592, 597, 594, 595, 596, | ||
1473 | 599, 600, 295, 296, 297, 298, 299, 300, 301, 302, | ||
1474 | 601, 86, 303, 571, 603, 452, 86, 604, 577, 607, | ||
1475 | 573, 605, 368, 580, 608, 609, 574, 610, 611, 613, | ||
1476 | 575, 615, 141, 507, 576, 589, 529, 382, 486, 219, | ||
1477 | 591, 491, 97, 246, 562, 583, 0, 98, 462, 0, | ||
1478 | 0, 99, 0, 598, 0, 100, 101, 102, -79, 103, | ||
1479 | 0, 104, 606, 105, 0, 0, 552, 0, 0, 0, | ||
1480 | 0, 0, -79, -79, 0, 106, 107, 108, 109, 110, | ||
1481 | 111, 0, 0, 112, 0, 0, 0, 0, 0, 113, | ||
1482 | 0, 0, 0, 114, 115, 116, -79, 0, 117, 0, | ||
1483 | 118, 119, 0, 0, -79, 0, 0, 120, 0, 0, | ||
1484 | 0, 0, 121, 122, 123, 124, 0, 125, 0, 126, | ||
1485 | 127, 0, 128, 129, 12, 0, 130, 98, 131, 0, | ||
1486 | 0, 0, 0, 0, 0, 132, 0, 102, 0, 103, | ||
1487 | 0, 0, 0, 133, 134, 135, 0, 136, 0, 0, | ||
1488 | 0, 0, 0, 0, 137, 138, 107, 0, 0, 0, | ||
1489 | 0, 0, 139, -79, 0, 0, 140, 0, 0, 113, | ||
1490 | 0, 0, 0, 114, 115, 116, 286, 0, 117, 0, | ||
1491 | 118, 0, 0, 287, 288, 0, 0, 120, 0, 0, | ||
1492 | 0, 0, 0, 0, 123, 0, 479, 98, 0, 126, | ||
1493 | 0, 0, 128, 129, 0, 0, 380, 102, 0, 103, | ||
1494 | 0, 0, 0, 0, 0, 289, 0, 480, 0, 0, | ||
1495 | 0, 0, 0, 133, 134, 381, 107, 136, 0, 0, | ||
1496 | 0, 0, 0, 290, 137, 138, 0, 0, 0, 113, | ||
1497 | 0, 0, 139, 0, 115, 116, 140, 0, 291, 0, | ||
1498 | 118, 0, 286, 0, 0, 0, 0, 120, 0, 287, | ||
1499 | 288, 0, 0, 286, 123, 0, 292, 293, 294, 126, | ||
1500 | 287, 288, 128, 129, 0, 0, 0, 0, 0, 0, | ||
1501 | 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, | ||
1502 | 303, 289, 286, 133, 134, 135, 0, 136, 0, 287, | ||
1503 | 288, 0, 289, 0, 137, 138, 0, 0, 0, 290, | ||
1504 | 0, 0, 139, 0, 0, 0, 140, 367, 0, 0, | ||
1505 | 290, 0, 0, 0, 291, 0, 0, 0, 0, 0, | ||
1506 | 0, 289, 0, 0, 0, 291, 0, 0, 340, 0, | ||
1507 | 0, 0, 292, 293, 294, 323, 0, 0, 0, 290, | ||
1508 | 0, 0, 0, 292, 293, 294, 295, 296, 297, 298, | ||
1509 | 299, 300, 301, 302, 291, 0, 303, 295, 296, 297, | ||
1510 | 298, 299, 300, 301, 302, 0, 0, 303, 286, 0, | ||
1511 | 0, 0, 292, 293, 294, 287, 288, 0, 0, 0, | ||
1512 | 0, 0, 0, 0, 0, 0, 295, 296, 297, 298, | ||
1513 | 299, 300, 301, 302, 286, 0, 303, 0, 0, 0, | ||
1514 | 0, 287, 288, 0, 0, 286, 0, 289, 0, 0, | ||
1515 | 0, 0, 287, 288, 0, 0, 0, 0, 0, 0, | ||
1516 | 0, 0, 0, 0, 0, 290, 0, 0, 0, 0, | ||
1517 | 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, | ||
1518 | 291, 0, 0, 0, 289, 0, 0, 0, 0, 0, | ||
1519 | 0, 290, 0, 0, 0, 0, 0, 0, 292, 293, | ||
1520 | 294, 475, 290, 0, 0, 0, 291, 0, 0, 0, | ||
1521 | 0, 0, 295, 296, 297, 298, 299, 300, 301, 302, | ||
1522 | 0, 0, 303, 0, 292, 293, 294, 0, 0, 0, | ||
1523 | 0, 0, 0, 0, 0, 292, 293, 294, 295, 296, | ||
1524 | 297, 298, 299, 300, 301, 302, 2, 3, 303, 4, | ||
1525 | 296, 297, 298, 299, 300, 301, 302, -62, 199, 303, | ||
1526 | ben.allan | 411 | 0, 0, 0, 0, 0, 0, 0, -62, 0, 0, |
1527 | jpye | 1520 | 0, 0, 0, 5, 0, 0, 200, 0, 0, 201, |
1528 | 202, 0, 0, 0, 0, 203, 0, 6, 0, 7, | ||
1529 | 0, 0, 0, 204, 0, 0, 0, 0, 205, 0, | ||
1530 | ben.allan | 411 | 0, 0, 0, 0, -62, 0, 0, 0, 0, 0, |
1531 | jpye | 1520 | 0, 8, 206, 9, 0, 10, 11, 207, 0, 0, |
1532 | 0, 208, 0, 209, 0, 210, 0, 0, 0, 12, | ||
1533 | 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
1534 | 0, 0, 211 | ||
1535 | ben.allan | 411 | }; |
1536 | aw0a | 1 | |
1537 | jpye | 1523 | static const yytype_int16 yycheck[] = |
1538 | aw0a | 1 | { |
1539 | jpye | 1520 | 49, 427, 50, 51, 24, 53, 55, 64, 32, 445, |
1540 | 32, 140, 11, 55, 38, 27, 27, 17, 35, 32, | ||
1541 | 68, 104, 21, 104, 460, 4, 104, 68, 7, 8, | ||
1542 | 17, 17, 103, 104, 83, 59, 85, 467, 62, 88, | ||
1543 | 121, 83, 19, 121, 17, 116, 23, 103, 96, 17, | ||
1544 | 121, 104, 104, 30, 4, 107, 33, 7, 8, 58, | ||
1545 | 109, 17, 111, 63, 81, 121, 120, 109, 121, 111, | ||
1546 | 49, 50, 51, 122, 35, 124, 63, 63, 127, 120, | ||
1547 | 104, 130, 124, 132, 106, 127, 516, 517, 130, 106, | ||
1548 | 63, 104, 104, 104, 108, 63, 113, 114, 524, 49, | ||
1549 | 50, 51, 231, 232, 233, 234, 55, 63, 122, 88, | ||
1550 | 89, 90, 241, 242, 28, 29, 107, 553, 247, 248, | ||
1551 | 81, 104, 104, 180, 107, 182, 255, 256, 104, 104, | ||
1552 | 259, 260, 108, 124, 125, 561, 55, 185, 88, 89, | ||
1553 | 90, 91, 92, 55, 120, 106, 121, 123, 60, 106, | ||
1554 | 99, 120, 113, 114, 104, 124, 125, 5, 108, 183, | ||
1555 | 103, 104, 104, 112, 44, 114, 215, 120, 117, 118, | ||
1556 | 219, 124, 125, 123, 375, 513, 377, 219, 121, 121, | ||
1557 | 518, 104, 131, 104, 120, 108, 107, 235, 137, 138, | ||
1558 | 139, 115, 116, 115, 116, 119, 44, 119, 246, 223, | ||
1559 | 122, 250, 251, 332, 40, 225, 115, 116, 257, 251, | ||
1560 | 119, 44, 261, 121, 62, 257, 9, 125, 11, 261, | ||
1561 | 349, 95, 96, 97, 121, 274, 120, 356, 125, 113, | ||
1562 | 114, 115, 116, 38, 363, 119, 110, 111, 112, 113, | ||
1563 | 114, 115, 116, 102, 103, 119, 121, 95, 96, 97, | ||
1564 | 125, 121, 121, 121, 120, 125, 125, 125, 44, 307, | ||
1565 | 120, 309, 110, 111, 112, 113, 114, 115, 116, 120, | ||
1566 | 104, 119, 123, 113, 114, 5, 102, 103, 279, 280, | ||
1567 | 32, 329, 12, 13, 56, 55, 104, 104, 104, 338, | ||
1568 | 68, 121, 104, 107, 104, 104, 338, 346, 111, 105, | ||
1569 | 120, 120, 104, 351, 433, 120, 104, 104, 104, 120, | ||
1570 | 358, 105, 441, 120, 44, 105, 340, 365, 121, 268, | ||
1571 | 449, 105, 371, 68, 104, 454, 121, 86, 120, 371, | ||
1572 | 58, 380, 62, 120, 283, 284, 285, 286, 380, 56, | ||
1573 | 289, 290, 291, 367, 120, 120, 295, 77, 108, 120, | ||
1574 | 299, 300, 301, 302, 303, 304, 305, 126, 58, 120, | ||
1575 | 44, 105, 105, 120, 93, 95, 96, 97, 121, 119, | ||
1576 | 121, 126, 104, 322, 323, 122, 122, 104, 402, 109, | ||
1577 | 110, 111, 112, 113, 114, 115, 116, 121, 5, 119, | ||
1578 | 339, 104, 122, 104, 120, 12, 13, 120, 120, 120, | ||
1579 | 120, 126, 126, 451, 122, 61, 122, 431, 122, 104, | ||
1580 | 459, 126, 461, 122, 126, 439, 123, 459, 122, 461, | ||
1581 | 126, 122, 26, 447, 123, 122, 122, 44, 126, 123, | ||
1582 | 121, 121, 120, 120, 120, 483, 31, 122, 486, 122, | ||
1583 | 104, 123, 123, 491, 123, 62, 123, 123, 496, 123, | ||
1584 | 122, 101, 92, 120, 122, 121, 86, 122, 482, 122, | ||
1585 | 77, 509, 123, 487, 123, 123, 490, 122, 492, 120, | ||
1586 | 107, 495, 120, 497, 103, 45, 500, 120, 95, 96, | ||
1587 | 97, 119, 49, 122, 613, 120, 104, 123, 122, 103, | ||
1588 | 122, 64, 109, 110, 111, 112, 113, 114, 115, 116, | ||
1589 | 44, 550, 119, 527, 115, 122, 555, 61, 550, 103, | ||
1590 | 534, 123, 461, 555, 104, 24, 540, 122, 101, 121, | ||
1591 | 544, 122, 55, 458, 548, 573, 475, 285, 429, 88, | ||
1592 | 578, 437, 1, 119, 514, 561, -1, 6, 395, -1, | ||
1593 | -1, 10, -1, 592, -1, 14, 15, 16, 17, 18, | ||
1594 | -1, 20, 601, 22, -1, -1, 505, -1, -1, -1, | ||
1595 | -1, -1, 31, 32, -1, 34, 35, 36, 37, 38, | ||
1596 | 39, -1, -1, 42, -1, -1, -1, -1, -1, 48, | ||
1597 | -1, -1, -1, 52, 53, 54, 55, -1, 57, -1, | ||
1598 | 59, 60, -1, -1, 63, -1, -1, 66, -1, -1, | ||
1599 | -1, -1, 71, 72, 73, 74, -1, 76, -1, 78, | ||
1600 | 79, -1, 81, 82, 83, -1, 85, 6, 87, -1, | ||
1601 | -1, -1, -1, -1, -1, 94, -1, 16, -1, 18, | ||
1602 | -1, -1, -1, 102, 103, 104, -1, 106, -1, -1, | ||
1603 | -1, -1, -1, -1, 113, 114, 35, -1, -1, -1, | ||
1604 | -1, -1, 121, 122, -1, -1, 125, -1, -1, 48, | ||
1605 | -1, -1, -1, 52, 53, 54, 5, -1, 57, -1, | ||
1606 | 59, -1, -1, 12, 13, -1, -1, 66, -1, -1, | ||
1607 | -1, -1, -1, -1, 73, -1, 25, 6, -1, 78, | ||
1608 | -1, -1, 81, 82, -1, -1, 85, 16, -1, 18, | ||
1609 | -1, -1, -1, -1, -1, 44, -1, 46, -1, -1, | ||
1610 | -1, -1, -1, 102, 103, 104, 35, 106, -1, -1, | ||
1611 | -1, -1, -1, 62, 113, 114, -1, -1, -1, 48, | ||
1612 | -1, -1, 121, -1, 53, 54, 125, -1, 77, -1, | ||
1613 | 59, -1, 5, -1, -1, -1, -1, 66, -1, 12, | ||
1614 | 13, -1, -1, 5, 73, -1, 95, 96, 97, 78, | ||
1615 | 12, 13, 81, 82, -1, -1, -1, -1, -1, -1, | ||
1616 | 109, 110, 111, 112, 113, 114, 115, 116, -1, -1, | ||
1617 | 119, 44, 5, 102, 103, 104, -1, 106, -1, 12, | ||
1618 | 13, -1, 44, -1, 113, 114, -1, -1, -1, 62, | ||
1619 | -1, -1, 121, -1, -1, -1, 125, 30, -1, -1, | ||
1620 | 62, -1, -1, -1, 77, -1, -1, -1, -1, -1, | ||
1621 | -1, 44, -1, -1, -1, 77, -1, -1, 80, -1, | ||
1622 | -1, -1, 95, 96, 97, 98, -1, -1, -1, 62, | ||
1623 | -1, -1, -1, 95, 96, 97, 109, 110, 111, 112, | ||
1624 | 113, 114, 115, 116, 77, -1, 119, 109, 110, 111, | ||
1625 | 112, 113, 114, 115, 116, -1, -1, 119, 5, -1, | ||
1626 | -1, -1, 95, 96, 97, 12, 13, -1, -1, -1, | ||
1627 | -1, -1, -1, -1, -1, -1, 109, 110, 111, 112, | ||
1628 | 113, 114, 115, 116, 5, -1, 119, -1, -1, -1, | ||
1629 | -1, 12, 13, -1, -1, 5, -1, 44, -1, -1, | ||
1630 | -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, | ||
1631 | -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, | ||
1632 | -1, -1, -1, 44, -1, -1, -1, -1, -1, -1, | ||
1633 | 77, -1, -1, -1, 44, -1, -1, -1, -1, -1, | ||
1634 | -1, 62, -1, -1, -1, -1, -1, -1, 95, 96, | ||
1635 | 97, 98, 62, -1, -1, -1, 77, -1, -1, -1, | ||
1636 | -1, -1, 109, 110, 111, 112, 113, 114, 115, 116, | ||
1637 | -1, -1, 119, -1, 95, 96, 97, -1, -1, -1, | ||
1638 | -1, -1, -1, -1, -1, 95, 96, 97, 109, 110, | ||
1639 | 111, 112, 113, 114, 115, 116, 0, 1, 119, 3, | ||
1640 | 110, 111, 112, 113, 114, 115, 116, 11, 20, 119, | ||
1641 | ben.allan | 411 | -1, -1, -1, -1, -1, -1, -1, 21, -1, -1, |
1642 | jpye | 1520 | -1, -1, -1, 27, -1, -1, 38, -1, -1, 41, |
1643 | 42, -1, -1, -1, -1, 47, -1, 41, -1, 43, | ||
1644 | -1, -1, -1, 55, -1, -1, -1, -1, 60, -1, | ||
1645 | ben.allan | 411 | -1, -1, -1, -1, 58, -1, -1, -1, -1, -1, |
1646 | jpye | 1520 | -1, 65, 74, 67, -1, 69, 70, 79, -1, -1, |
1647 | -1, 83, -1, 85, -1, 87, -1, -1, -1, 83, | ||
1648 | 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, | ||
1649 | -1, -1, 104 | ||
1650 | ben.allan | 411 | }; |
1651 | aw0a | 1 | |
1652 | johnpye | 506 | /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing |
1653 | ben.allan | 411 | symbol of state STATE-NUM. */ |
1654 | jpye | 1523 | static const yytype_uint8 yystos[] = |
1655 | ben.allan | 411 | { |
1656 | 0, 128, 0, 1, 3, 27, 41, 43, 65, 67, | ||
1657 | 69, 70, 83, 84, 129, 130, 131, 132, 133, 134, | ||
1658 | 135, 136, 137, 138, 139, 140, 144, 147, 153, 154, | ||
1659 | 155, 156, 157, 158, 159, 55, 60, 104, 120, 104, | ||
1660 | jpye | 1520 | 107, 104, 104, 107, 225, 55, 107, 225, 160, 106, |
1661 | 220, 164, 165, 164, 168, 169, 11, 21, 58, 141, | ||
1662 | 142, 145, 148, 149, 168, 120, 44, 44, 168, 40, | ||
1663 | 120, 38, 120, 120, 124, 125, 44, 120, 120, 32, | ||
1664 | 104, 161, 226, 221, 222, 223, 224, 225, 106, 226, | ||
1665 | 226, 56, 166, 167, 226, 55, 162, 1, 6, 10, | ||
1666 | 14, 15, 16, 18, 20, 22, 34, 35, 36, 37, | ||
1667 | 38, 39, 42, 48, 52, 53, 54, 57, 59, 60, | ||
1668 | 66, 71, 72, 73, 74, 76, 78, 79, 81, 82, | ||
1669 | 85, 87, 94, 102, 103, 104, 106, 113, 114, 121, | ||
1670 | 125, 159, 170, 171, 172, 173, 175, 176, 182, 183, | ||
1671 | 184, 185, 186, 187, 188, 189, 193, 195, 198, 199, | ||
1672 | 200, 201, 202, 203, 204, 205, 207, 210, 211, 212, | ||
1673 | 215, 218, 219, 222, 224, 232, 240, 104, 104, 104, | ||
1674 | 168, 68, 168, 121, 150, 162, 27, 104, 104, 226, | ||
1675 | 107, 104, 104, 224, 229, 230, 240, 27, 104, 20, | ||
1676 | 38, 41, 42, 47, 55, 60, 74, 79, 83, 85, | ||
1677 | 87, 104, 111, 222, 105, 108, 224, 107, 228, 221, | ||
1678 | 120, 120, 104, 120, 120, 163, 226, 120, 240, 104, | ||
1679 | 177, 121, 125, 121, 125, 168, 104, 222, 104, 222, | ||
1680 | 240, 121, 125, 240, 240, 240, 220, 121, 125, 224, | ||
1681 | 121, 121, 222, 105, 227, 121, 125, 121, 222, 121, | ||
1682 | 125, 121, 222, 240, 224, 105, 233, 105, 121, 240, | ||
1683 | 240, 240, 229, 120, 4, 7, 8, 49, 50, 51, | ||
1684 | 88, 89, 90, 91, 92, 123, 5, 12, 13, 44, | ||
1685 | 62, 77, 95, 96, 97, 109, 110, 111, 112, 113, | ||
1686 | 114, 115, 116, 119, 241, 242, 68, 162, 104, |