/[ascend]/trunk/base/generic/compiler/ascParse_no_yacc.c
ViewVC logotype

Annotation of /trunk/base/generic/compiler/ascParse_no_yacc.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1523 - (hide annotations) (download) (as text)
Sat Jun 30 14:55:05 2007 UTC (17 years, 5 months ago) by jpye
File MIME type: text/x-csrc
File size: 184540 byte(s)
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,