13e794565SJung-uk Kim /* original parser id follows */
23e794565SJung-uk Kim /* yysccsid[] = "@(#)yaccpar	1.9 (Berkeley) 02/21/93" */
33e794565SJung-uk Kim /* (use YYMAJOR/YYMINOR for ifdefs dependent on parser version) */
43e794565SJung-uk Kim 
53e794565SJung-uk Kim #define YYBYACC 1
68e022d3cSDag-Erling Smørgrav #define YYMAJOR 2
78e022d3cSDag-Erling Smørgrav #define YYMINOR 0
83e794565SJung-uk Kim #define YYCHECK "yyyymmdd"
93e794565SJung-uk Kim 
103e794565SJung-uk Kim #define YYEMPTY        (-1)
113e794565SJung-uk Kim #define yyclearin      (yychar = YYEMPTY)
123e794565SJung-uk Kim #define yyerrok        (yyerrflag = 0)
133e794565SJung-uk Kim #define YYRECOVERING() (yyerrflag != 0)
143e794565SJung-uk Kim #define YYENOMEM       (-2)
153e794565SJung-uk Kim #define YYEOF          0
163e794565SJung-uk Kim #undef YYBTYACC
173e794565SJung-uk Kim #define YYBTYACC 0
183e794565SJung-uk Kim #define YYDEBUGSTR YYPREFIX "debug"
193e794565SJung-uk Kim 
203e794565SJung-uk Kim #ifndef yyparse
218e022d3cSDag-Erling Smørgrav #define yyparse    expr_oxout_parse
223e794565SJung-uk Kim #endif /* yyparse */
233e794565SJung-uk Kim 
243e794565SJung-uk Kim #ifndef yylex
258e022d3cSDag-Erling Smørgrav #define yylex      expr_oxout_lex
263e794565SJung-uk Kim #endif /* yylex */
273e794565SJung-uk Kim 
283e794565SJung-uk Kim #ifndef yyerror
298e022d3cSDag-Erling Smørgrav #define yyerror    expr_oxout_error
303e794565SJung-uk Kim #endif /* yyerror */
313e794565SJung-uk Kim 
323e794565SJung-uk Kim #ifndef yychar
338e022d3cSDag-Erling Smørgrav #define yychar     expr_oxout_char
343e794565SJung-uk Kim #endif /* yychar */
353e794565SJung-uk Kim 
363e794565SJung-uk Kim #ifndef yyval
378e022d3cSDag-Erling Smørgrav #define yyval      expr_oxout_val
383e794565SJung-uk Kim #endif /* yyval */
393e794565SJung-uk Kim 
403e794565SJung-uk Kim #ifndef yylval
418e022d3cSDag-Erling Smørgrav #define yylval     expr_oxout_lval
423e794565SJung-uk Kim #endif /* yylval */
433e794565SJung-uk Kim 
443e794565SJung-uk Kim #ifndef yydebug
458e022d3cSDag-Erling Smørgrav #define yydebug    expr_oxout_debug
463e794565SJung-uk Kim #endif /* yydebug */
473e794565SJung-uk Kim 
483e794565SJung-uk Kim #ifndef yynerrs
498e022d3cSDag-Erling Smørgrav #define yynerrs    expr_oxout_nerrs
503e794565SJung-uk Kim #endif /* yynerrs */
513e794565SJung-uk Kim 
523e794565SJung-uk Kim #ifndef yyerrflag
538e022d3cSDag-Erling Smørgrav #define yyerrflag  expr_oxout_errflag
543e794565SJung-uk Kim #endif /* yyerrflag */
553e794565SJung-uk Kim 
563e794565SJung-uk Kim #ifndef yylhs
578e022d3cSDag-Erling Smørgrav #define yylhs      expr_oxout_lhs
583e794565SJung-uk Kim #endif /* yylhs */
593e794565SJung-uk Kim 
603e794565SJung-uk Kim #ifndef yylen
618e022d3cSDag-Erling Smørgrav #define yylen      expr_oxout_len
623e794565SJung-uk Kim #endif /* yylen */
633e794565SJung-uk Kim 
643e794565SJung-uk Kim #ifndef yydefred
658e022d3cSDag-Erling Smørgrav #define yydefred   expr_oxout_defred
663e794565SJung-uk Kim #endif /* yydefred */
673e794565SJung-uk Kim 
683e794565SJung-uk Kim #ifndef yystos
698e022d3cSDag-Erling Smørgrav #define yystos     expr_oxout_stos
703e794565SJung-uk Kim #endif /* yystos */
713e794565SJung-uk Kim 
723e794565SJung-uk Kim #ifndef yydgoto
738e022d3cSDag-Erling Smørgrav #define yydgoto    expr_oxout_dgoto
743e794565SJung-uk Kim #endif /* yydgoto */
753e794565SJung-uk Kim 
763e794565SJung-uk Kim #ifndef yysindex
778e022d3cSDag-Erling Smørgrav #define yysindex   expr_oxout_sindex
783e794565SJung-uk Kim #endif /* yysindex */
793e794565SJung-uk Kim 
803e794565SJung-uk Kim #ifndef yyrindex
818e022d3cSDag-Erling Smørgrav #define yyrindex   expr_oxout_rindex
823e794565SJung-uk Kim #endif /* yyrindex */
833e794565SJung-uk Kim 
843e794565SJung-uk Kim #ifndef yygindex
858e022d3cSDag-Erling Smørgrav #define yygindex   expr_oxout_gindex
863e794565SJung-uk Kim #endif /* yygindex */
873e794565SJung-uk Kim 
883e794565SJung-uk Kim #ifndef yytable
898e022d3cSDag-Erling Smørgrav #define yytable    expr_oxout_table
903e794565SJung-uk Kim #endif /* yytable */
913e794565SJung-uk Kim 
923e794565SJung-uk Kim #ifndef yycheck
938e022d3cSDag-Erling Smørgrav #define yycheck    expr_oxout_check
943e794565SJung-uk Kim #endif /* yycheck */
953e794565SJung-uk Kim 
963e794565SJung-uk Kim #ifndef yyname
978e022d3cSDag-Erling Smørgrav #define yyname     expr_oxout_name
983e794565SJung-uk Kim #endif /* yyname */
993e794565SJung-uk Kim 
1003e794565SJung-uk Kim #ifndef yyrule
1018e022d3cSDag-Erling Smørgrav #define yyrule     expr_oxout_rule
1023e794565SJung-uk Kim #endif /* yyrule */
1033e794565SJung-uk Kim 
1043e794565SJung-uk Kim #if YYBTYACC
1053e794565SJung-uk Kim 
1063e794565SJung-uk Kim #ifndef yycindex
1078e022d3cSDag-Erling Smørgrav #define yycindex   expr_oxout_cindex
1083e794565SJung-uk Kim #endif /* yycindex */
1093e794565SJung-uk Kim 
1103e794565SJung-uk Kim #ifndef yyctable
1118e022d3cSDag-Erling Smørgrav #define yyctable   expr_oxout_ctable
1123e794565SJung-uk Kim #endif /* yyctable */
1133e794565SJung-uk Kim 
1143e794565SJung-uk Kim #endif /* YYBTYACC */
1153e794565SJung-uk Kim 
1168e022d3cSDag-Erling Smørgrav #define YYPREFIX "expr_oxout_"
1173e794565SJung-uk Kim 
1183e794565SJung-uk Kim #define YYPURE 0
1193e794565SJung-uk Kim 
1203e794565SJung-uk Kim #line 5 "expr.oxout.y"
1213e794565SJung-uk Kim #include <stdlib.h>
1223e794565SJung-uk Kim #include <string.h>
1233e794565SJung-uk Kim #line 8 "expr.Y"
1243e794565SJung-uk Kim 
1253e794565SJung-uk Kim #include "expr.oxout.h"
1263e794565SJung-uk Kim #include <stdio.h>
1273e794565SJung-uk Kim 
1283e794565SJung-uk Kim extern int yylex(void);
1293e794565SJung-uk Kim extern void yyerror(const char *);
1303e794565SJung-uk Kim #line 27 "expr.oxout.y"
1313e794565SJung-uk Kim #include <limits.h>
1323e794565SJung-uk Kim #define yyyR USHRT_MAX
1333e794565SJung-uk Kim #ifdef YYSTYPE
1343e794565SJung-uk Kim #undef  YYSTYPE_IS_DECLARED
1353e794565SJung-uk Kim #define YYSTYPE_IS_DECLARED 1
1363e794565SJung-uk Kim #endif
1373e794565SJung-uk Kim #ifndef YYSTYPE_IS_DECLARED
1383e794565SJung-uk Kim #define YYSTYPE_IS_DECLARED 1
1393e794565SJung-uk Kim #line 31 "expr.oxout.y"
14030c91a3cSDag-Erling Smørgrav typedef union {
1413e794565SJung-uk Kim struct yyyOxAttrbs {
1423e794565SJung-uk Kim struct yyyStackItem *yyyOxStackItem;
1433e794565SJung-uk Kim } yyyOxAttrbs;
1443e794565SJung-uk Kim } YYSTYPE;
1453e794565SJung-uk Kim #endif /* !YYSTYPE_IS_DECLARED */
1463e794565SJung-uk Kim #line 38 "expr.oxout.y"
1473e794565SJung-uk Kim #include <stdio.h>
1483e794565SJung-uk Kim #include <stdarg.h>
1493e794565SJung-uk Kim 
1503e794565SJung-uk Kim static int yyyYok = 1;
1513e794565SJung-uk Kim 
1523e794565SJung-uk Kim extern yyyFT yyyRCIL[];
1533e794565SJung-uk Kim 
1543e794565SJung-uk Kim void yyyExecuteRRsection(yyyGNT *rootNode);
1553e794565SJung-uk Kim void yyyYoxInit(void);
1563e794565SJung-uk Kim void yyyDecorate(void);
1573e794565SJung-uk Kim struct yyyOxAttrbs; /* hack required to compensate for 'msta' behavior */
1583e794565SJung-uk Kim void yyyGenIntNode(long yyyProdNum, int yyyRHSlength, int yyyNattrbs, struct yyyOxAttrbs *yyval_OxAttrbs, ...);
1593e794565SJung-uk Kim void yyyAdjustINRC(long yyyProdNum, int yyyRHSlength, long startP, long stopP, struct yyyOxAttrbs *yyval_OxAttrbs, ...);
1603e794565SJung-uk Kim void yyyCheckUnsolvedInstTrav(yyyGNT *rootNode,long *nNZrc,long *cycleSum);
1613e794565SJung-uk Kim void yyyUnsolvedInstSearchTrav(yyyGNT *pNode);
1623e794565SJung-uk Kim void yyyUnsolvedInstSearchTravAux(yyyGNT *pNode);
1633e794565SJung-uk Kim void yyyabort(void);
1643e794565SJung-uk Kim 
1653e794565SJung-uk Kim #line 166 "expr.oxout.tab.c"
1663e794565SJung-uk Kim 
1673e794565SJung-uk Kim /* compatibility with bison */
1683e794565SJung-uk Kim #ifdef YYPARSE_PARAM
1693e794565SJung-uk Kim /* compatibility with FreeBSD */
1703e794565SJung-uk Kim # ifdef YYPARSE_PARAM_TYPE
1713e794565SJung-uk Kim #  define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM)
1723e794565SJung-uk Kim # else
1733e794565SJung-uk Kim #  define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM)
1743e794565SJung-uk Kim # endif
1753e794565SJung-uk Kim #else
1763e794565SJung-uk Kim # define YYPARSE_DECL() yyparse(void)
1773e794565SJung-uk Kim #endif
1783e794565SJung-uk Kim 
1793e794565SJung-uk Kim /* Parameters sent to lex. */
1803e794565SJung-uk Kim #ifdef YYLEX_PARAM
1813e794565SJung-uk Kim # define YYLEX_DECL() yylex(void *YYLEX_PARAM)
1823e794565SJung-uk Kim # define YYLEX yylex(YYLEX_PARAM)
1833e794565SJung-uk Kim #else
1843e794565SJung-uk Kim # define YYLEX_DECL() yylex(void)
1853e794565SJung-uk Kim # define YYLEX yylex()
1863e794565SJung-uk Kim #endif
1873e794565SJung-uk Kim 
1883e794565SJung-uk Kim /* Parameters sent to yyerror. */
1893e794565SJung-uk Kim #ifndef YYERROR_DECL
1903e794565SJung-uk Kim #define YYERROR_DECL() yyerror(const char *s)
1913e794565SJung-uk Kim #endif
1923e794565SJung-uk Kim #ifndef YYERROR_CALL
1933e794565SJung-uk Kim #define YYERROR_CALL(msg) yyerror(msg)
1943e794565SJung-uk Kim #endif
1953e794565SJung-uk Kim 
1963e794565SJung-uk Kim extern int YYPARSE_DECL();
1973e794565SJung-uk Kim 
1983e794565SJung-uk Kim #define ID 257
1993e794565SJung-uk Kim #define CONST 258
2003e794565SJung-uk Kim #define YYERRCODE 256
201b53bb29fSJung-uk Kim typedef int YYINT;
2028e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_lhs[] = {                  -1,
2033e794565SJung-uk Kim     2,    0,    1,    3,    3,    3,    3,    3,    3,    3,
2043e794565SJung-uk Kim };
2058e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_len[] = {                   2,
2063e794565SJung-uk Kim     0,    2,    1,    3,    3,    3,    3,    3,    1,    1,
2073e794565SJung-uk Kim };
2088e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_defred[] = {                1,
2093e794565SJung-uk Kim     0,    0,    9,   10,    0,    2,    0,    0,    0,    0,
2103e794565SJung-uk Kim     0,    0,    8,    0,    0,    4,    0,
2113e794565SJung-uk Kim };
2123e794565SJung-uk Kim #if defined(YYDESTRUCT_CALL) || defined(YYSTYPE_TOSTRING)
2138e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_stos[] = {                  0,
2143e794565SJung-uk Kim   260,  262,  257,  258,   40,  261,  263,  263,   43,   45,
2153e794565SJung-uk Kim    42,   47,   41,  263,  263,  263,  263,
2163e794565SJung-uk Kim };
2173e794565SJung-uk Kim #endif /* YYDESTRUCT_CALL || YYSTYPE_TOSTRING */
2188e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_dgoto[] = {                 1,
2193e794565SJung-uk Kim     6,    2,    7,
2203e794565SJung-uk Kim };
2218e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_sindex[] = {                0,
2223e794565SJung-uk Kim     0,  -40,    0,    0,  -40,    0,  -18,  -24,  -40,  -40,
2233e794565SJung-uk Kim   -40,  -40,    0,  -37,  -37,    0,  -39,
2243e794565SJung-uk Kim };
2258e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_rindex[] = {                0,
2263e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    6,    0,    0,    0,
2273e794565SJung-uk Kim     0,    0,    0,    2,    8,    0,    1,
2283e794565SJung-uk Kim };
2293e794565SJung-uk Kim #if YYBTYACC
2308e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_cindex[] = {                0,
2313e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2323e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,
2333e794565SJung-uk Kim };
2343e794565SJung-uk Kim #endif
2358e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_gindex[] = {                0,
2363e794565SJung-uk Kim     0,    0,    4,
2373e794565SJung-uk Kim };
2383e794565SJung-uk Kim #define YYTABLESIZE 218
2398e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_table[] = {                 5,
2403e794565SJung-uk Kim     6,    5,   11,    0,   11,    3,    0,    7,    8,   12,
2413e794565SJung-uk Kim     0,    0,   14,   15,   16,   17,   13,   11,    9,    0,
2423e794565SJung-uk Kim    10,    0,   12,   11,    9,    0,   10,    0,   12,    0,
2433e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2443e794565SJung-uk Kim     0,    6,    5,    6,    5,    6,    5,    6,    7,    0,
2453e794565SJung-uk Kim     7,    0,    7,    0,    0,    0,    0,    0,    0,    0,
2463e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2473e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2483e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2493e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2503e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2513e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2523e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2533e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2543e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2553e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2563e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2573e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2583e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2593e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2603e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2613e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    3,    4,
2623e794565SJung-uk Kim };
2638e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_check[] = {                40,
2643e794565SJung-uk Kim     0,    0,   42,   -1,   42,    0,   -1,    0,    5,   47,
2653e794565SJung-uk Kim    -1,   -1,    9,   10,   11,   12,   41,   42,   43,   -1,
2663e794565SJung-uk Kim    45,   -1,   47,   42,   43,   -1,   45,   -1,   47,   -1,
2673e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2683e794565SJung-uk Kim    -1,   41,   41,   43,   43,   45,   45,   47,   41,   -1,
2693e794565SJung-uk Kim    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2703e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2713e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2723e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2733e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2743e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2753e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2763e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2773e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2783e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2793e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2803e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2813e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2823e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2833e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2843e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2853e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
2863e794565SJung-uk Kim };
2873e794565SJung-uk Kim #if YYBTYACC
2888e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_ctable[] = {               -1,
2893e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2903e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2913e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2923e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2933e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2943e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2953e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2963e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2973e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2983e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2993e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3003e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3013e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3023e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3033e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3043e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3053e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3063e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3073e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3083e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3093e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3103e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,
3113e794565SJung-uk Kim };
3123e794565SJung-uk Kim #endif
3133e794565SJung-uk Kim #define YYFINAL 1
3143e794565SJung-uk Kim #ifndef YYDEBUG
3153e794565SJung-uk Kim #define YYDEBUG 0
3163e794565SJung-uk Kim #endif
3173e794565SJung-uk Kim #define YYMAXTOKEN 258
3183e794565SJung-uk Kim #define YYUNDFTOKEN 264
3193e794565SJung-uk Kim #define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
3203e794565SJung-uk Kim #if YYDEBUG
3218e022d3cSDag-Erling Smørgrav static const char *const expr_oxout_name[] = {
3223e794565SJung-uk Kim 
3233e794565SJung-uk Kim "$end",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
3243e794565SJung-uk Kim 0,0,0,"'('","')'","'*'","'+'",0,"'-'",0,"'/'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
3253e794565SJung-uk Kim 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
3263e794565SJung-uk Kim 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
3273e794565SJung-uk Kim 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
3283e794565SJung-uk Kim 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
3293e794565SJung-uk Kim 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"error","ID",
3303e794565SJung-uk Kim "CONST","$accept","yyyAugNonterm","s","$$1","expr","illegal-symbol",
3313e794565SJung-uk Kim };
3328e022d3cSDag-Erling Smørgrav static const char *const expr_oxout_rule[] = {
3333e794565SJung-uk Kim "$accept : yyyAugNonterm",
3343e794565SJung-uk Kim "$$1 :",
3353e794565SJung-uk Kim "yyyAugNonterm : $$1 s",
3363e794565SJung-uk Kim "s : expr",
3373e794565SJung-uk Kim "expr : expr '*' expr",
3383e794565SJung-uk Kim "expr : expr '+' expr",
3393e794565SJung-uk Kim "expr : expr '/' expr",
3403e794565SJung-uk Kim "expr : expr '-' expr",
3413e794565SJung-uk Kim "expr : '(' expr ')'",
3423e794565SJung-uk Kim "expr : ID",
3433e794565SJung-uk Kim "expr : CONST",
3443e794565SJung-uk Kim 
3453e794565SJung-uk Kim };
3463e794565SJung-uk Kim #endif
3473e794565SJung-uk Kim 
348b53bb29fSJung-uk Kim #if YYDEBUG
3493e794565SJung-uk Kim int      yydebug;
350b53bb29fSJung-uk Kim #endif
3513e794565SJung-uk Kim 
3523e794565SJung-uk Kim int      yyerrflag;
3533e794565SJung-uk Kim int      yychar;
3543e794565SJung-uk Kim YYSTYPE  yyval;
3553e794565SJung-uk Kim YYSTYPE  yylval;
356b53bb29fSJung-uk Kim int      yynerrs;
357b53bb29fSJung-uk Kim 
3583e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
3593e794565SJung-uk Kim YYLTYPE  yyloc; /* position returned by actions */
3603e794565SJung-uk Kim YYLTYPE  yylloc; /* position from the lexer */
3613e794565SJung-uk Kim #endif
3623e794565SJung-uk Kim 
3633e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
3643e794565SJung-uk Kim #ifndef YYLLOC_DEFAULT
3653e794565SJung-uk Kim #define YYLLOC_DEFAULT(loc, rhs, n) \
3663e794565SJung-uk Kim do \
3673e794565SJung-uk Kim { \
3683e794565SJung-uk Kim     if (n == 0) \
3693e794565SJung-uk Kim     { \
370b53bb29fSJung-uk Kim         (loc).first_line   = YYRHSLOC(rhs, 0).last_line; \
371b53bb29fSJung-uk Kim         (loc).first_column = YYRHSLOC(rhs, 0).last_column; \
372b53bb29fSJung-uk Kim         (loc).last_line    = YYRHSLOC(rhs, 0).last_line; \
373b53bb29fSJung-uk Kim         (loc).last_column  = YYRHSLOC(rhs, 0).last_column; \
3743e794565SJung-uk Kim     } \
3753e794565SJung-uk Kim     else \
3763e794565SJung-uk Kim     { \
377b53bb29fSJung-uk Kim         (loc).first_line   = YYRHSLOC(rhs, 1).first_line; \
378b53bb29fSJung-uk Kim         (loc).first_column = YYRHSLOC(rhs, 1).first_column; \
379b53bb29fSJung-uk Kim         (loc).last_line    = YYRHSLOC(rhs, n).last_line; \
380b53bb29fSJung-uk Kim         (loc).last_column  = YYRHSLOC(rhs, n).last_column; \
3813e794565SJung-uk Kim     } \
3823e794565SJung-uk Kim } while (0)
3833e794565SJung-uk Kim #endif /* YYLLOC_DEFAULT */
3843e794565SJung-uk Kim #endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
3853e794565SJung-uk Kim #if YYBTYACC
3863e794565SJung-uk Kim 
3873e794565SJung-uk Kim #ifndef YYLVQUEUEGROWTH
3883e794565SJung-uk Kim #define YYLVQUEUEGROWTH 32
3893e794565SJung-uk Kim #endif
3903e794565SJung-uk Kim #endif /* YYBTYACC */
3913e794565SJung-uk Kim 
3923e794565SJung-uk Kim /* define the initial stack-sizes */
3933e794565SJung-uk Kim #ifdef YYSTACKSIZE
3943e794565SJung-uk Kim #undef YYMAXDEPTH
3953e794565SJung-uk Kim #define YYMAXDEPTH  YYSTACKSIZE
3963e794565SJung-uk Kim #else
3973e794565SJung-uk Kim #ifdef YYMAXDEPTH
3983e794565SJung-uk Kim #define YYSTACKSIZE YYMAXDEPTH
3993e794565SJung-uk Kim #else
4003e794565SJung-uk Kim #define YYSTACKSIZE 10000
4013e794565SJung-uk Kim #define YYMAXDEPTH  10000
4023e794565SJung-uk Kim #endif
4033e794565SJung-uk Kim #endif
4043e794565SJung-uk Kim 
4053e794565SJung-uk Kim #ifndef YYINITSTACKSIZE
4063e794565SJung-uk Kim #define YYINITSTACKSIZE 200
4073e794565SJung-uk Kim #endif
4083e794565SJung-uk Kim 
4093e794565SJung-uk Kim typedef struct {
4103e794565SJung-uk Kim     unsigned stacksize;
4113e794565SJung-uk Kim     YYINT    *s_base;
4123e794565SJung-uk Kim     YYINT    *s_mark;
4133e794565SJung-uk Kim     YYINT    *s_last;
4143e794565SJung-uk Kim     YYSTYPE  *l_base;
4153e794565SJung-uk Kim     YYSTYPE  *l_mark;
4163e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
4173e794565SJung-uk Kim     YYLTYPE  *p_base;
4183e794565SJung-uk Kim     YYLTYPE  *p_mark;
4193e794565SJung-uk Kim #endif
4203e794565SJung-uk Kim } YYSTACKDATA;
4213e794565SJung-uk Kim #if YYBTYACC
4223e794565SJung-uk Kim 
4233e794565SJung-uk Kim struct YYParseState_s
4243e794565SJung-uk Kim {
4253e794565SJung-uk Kim     struct YYParseState_s *save;    /* Previously saved parser state */
4263e794565SJung-uk Kim     YYSTACKDATA            yystack; /* saved parser stack */
4273e794565SJung-uk Kim     int                    state;   /* saved parser state */
4283e794565SJung-uk Kim     int                    errflag; /* saved error recovery status */
4293e794565SJung-uk Kim     int                    lexeme;  /* saved index of the conflict lexeme in the lexical queue */
4303e794565SJung-uk Kim     YYINT                  ctry;    /* saved index in yyctable[] for this conflict */
4313e794565SJung-uk Kim };
4323e794565SJung-uk Kim typedef struct YYParseState_s YYParseState;
4333e794565SJung-uk Kim #endif /* YYBTYACC */
4343e794565SJung-uk Kim /* variables for the parser stack */
4353e794565SJung-uk Kim static YYSTACKDATA yystack;
4363e794565SJung-uk Kim #if YYBTYACC
4373e794565SJung-uk Kim 
4383e794565SJung-uk Kim /* Current parser state */
4393e794565SJung-uk Kim static YYParseState *yyps = 0;
4403e794565SJung-uk Kim 
4413e794565SJung-uk Kim /* yypath != NULL: do the full parse, starting at *yypath parser state. */
4423e794565SJung-uk Kim static YYParseState *yypath = 0;
4433e794565SJung-uk Kim 
4443e794565SJung-uk Kim /* Base of the lexical value queue */
4453e794565SJung-uk Kim static YYSTYPE *yylvals = 0;
4463e794565SJung-uk Kim 
4473e794565SJung-uk Kim /* Current position at lexical value queue */
4483e794565SJung-uk Kim static YYSTYPE *yylvp = 0;
4493e794565SJung-uk Kim 
4503e794565SJung-uk Kim /* End position of lexical value queue */
4513e794565SJung-uk Kim static YYSTYPE *yylve = 0;
4523e794565SJung-uk Kim 
4533e794565SJung-uk Kim /* The last allocated position at the lexical value queue */
4543e794565SJung-uk Kim static YYSTYPE *yylvlim = 0;
4553e794565SJung-uk Kim 
4563e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
4573e794565SJung-uk Kim /* Base of the lexical position queue */
4583e794565SJung-uk Kim static YYLTYPE *yylpsns = 0;
4593e794565SJung-uk Kim 
4603e794565SJung-uk Kim /* Current position at lexical position queue */
4613e794565SJung-uk Kim static YYLTYPE *yylpp = 0;
4623e794565SJung-uk Kim 
4633e794565SJung-uk Kim /* End position of lexical position queue */
4643e794565SJung-uk Kim static YYLTYPE *yylpe = 0;
4653e794565SJung-uk Kim 
4663e794565SJung-uk Kim /* The last allocated position at the lexical position queue */
4673e794565SJung-uk Kim static YYLTYPE *yylplim = 0;
4683e794565SJung-uk Kim #endif
4693e794565SJung-uk Kim 
4703e794565SJung-uk Kim /* Current position at lexical token queue */
4713e794565SJung-uk Kim static YYINT  *yylexp = 0;
4723e794565SJung-uk Kim 
4733e794565SJung-uk Kim static YYINT  *yylexemes = 0;
4743e794565SJung-uk Kim #endif /* YYBTYACC */
4753e794565SJung-uk Kim #line 53 "expr.Y"
4763e794565SJung-uk Kim 
4773e794565SJung-uk Kim 
4783e794565SJung-uk Kim int yyparse(void);
4793e794565SJung-uk Kim 
main()4803e794565SJung-uk Kim int main()
4813e794565SJung-uk Kim   {yyparse();
4823e794565SJung-uk Kim   }
4833e794565SJung-uk Kim 
4843e794565SJung-uk Kim 
4853e794565SJung-uk Kim 
4863e794565SJung-uk Kim #line 138 "expr.oxout.y"
4873e794565SJung-uk Kim long yyySSALspaceSize =    20000;
4883e794565SJung-uk Kim long yyyRSmaxSize =        1000;
4893e794565SJung-uk Kim long yyyTravStackMaxSize = 2000;
4903e794565SJung-uk Kim 
4913e794565SJung-uk Kim struct yyySolvedSAlistCell {yyyWAT attrbNum;
4923e794565SJung-uk Kim                             long next;
4933e794565SJung-uk Kim                            };
4943e794565SJung-uk Kim 
4953e794565SJung-uk Kim #define yyyLambdaSSAL 0
4963e794565SJung-uk Kim long yyySSALCfreeList = yyyLambdaSSAL;
4973e794565SJung-uk Kim long yyyNewSSALC = 1;
4983e794565SJung-uk Kim 
4993e794565SJung-uk Kim struct yyySolvedSAlistCell *yyySSALspace;
5003e794565SJung-uk Kim 
5013e794565SJung-uk Kim long yyyNbytesStackStg;
5023e794565SJung-uk Kim 
5033e794565SJung-uk Kim 
5043e794565SJung-uk Kim 
5053e794565SJung-uk Kim yyyFT yyyRCIL[1];
5063e794565SJung-uk Kim 
5073e794565SJung-uk Kim short yyyIIIEL[] = {0,
5083e794565SJung-uk Kim 0,2,6,10,14,18,22,24,
5093e794565SJung-uk Kim };
5103e794565SJung-uk Kim 
5113e794565SJung-uk Kim long yyyIIEL[] = {
5123e794565SJung-uk Kim 0,0,0,0,0,0,0,0,0,0,0,0,
5133e794565SJung-uk Kim 0,0,0,0,0,0,0,0,0,0,0,0,
5143e794565SJung-uk Kim 1,1,
5153e794565SJung-uk Kim };
5163e794565SJung-uk Kim 
5173e794565SJung-uk Kim long yyyIEL[] = {
5183e794565SJung-uk Kim 0,0,0,
5193e794565SJung-uk Kim };
5203e794565SJung-uk Kim 
5213e794565SJung-uk Kim yyyFT yyyEntL[1];
5223e794565SJung-uk Kim 
yyyfatal(char * msg)5233e794565SJung-uk Kim void yyyfatal(char *msg)
5243e794565SJung-uk Kim {fputs(msg,stderr);exit(-1);}
5253e794565SJung-uk Kim 
5263e794565SJung-uk Kim 
5273e794565SJung-uk Kim 
5283e794565SJung-uk Kim #define yyySSALof 'S'
5293e794565SJung-uk Kim #define yyyRSof   'q'
5303e794565SJung-uk Kim #define yyyTSof   't'
5313e794565SJung-uk Kim 
5323e794565SJung-uk Kim 
5333e794565SJung-uk Kim 
yyyHandleOverflow(char which)5343e794565SJung-uk Kim void yyyHandleOverflow(char which)
5358e022d3cSDag-Erling Smørgrav   {char *msg1 = "?", *msg2;
5368e022d3cSDag-Erling Smørgrav    long  oldSize = 0, newSize;
5373e794565SJung-uk Kim    switch(which)
5383e794565SJung-uk Kim      {
5393e794565SJung-uk Kim       case yyySSALof :
5403e794565SJung-uk Kim            msg1 = "SSAL overflow: ";
5413e794565SJung-uk Kim            oldSize = yyySSALspaceSize;
5423e794565SJung-uk Kim            break;
5433e794565SJung-uk Kim       case yyyRSof   :
5443e794565SJung-uk Kim            msg1 = "ready set overflow: ";
5453e794565SJung-uk Kim            oldSize = yyyRSmaxSize;
5463e794565SJung-uk Kim            break;
5473e794565SJung-uk Kim       case yyyTSof   :
5483e794565SJung-uk Kim            msg1 = "traversal stack overflow: ";
5493e794565SJung-uk Kim            oldSize = yyyTravStackMaxSize;
5503e794565SJung-uk Kim            break;
5513e794565SJung-uk Kim       default        :;
5523e794565SJung-uk Kim      }
5533e794565SJung-uk Kim    newSize = (3*oldSize)/2;
5543e794565SJung-uk Kim    if (newSize < 100) newSize = 100;
5553e794565SJung-uk Kim    fputs(msg1,stderr);
5563e794565SJung-uk Kim    fprintf(stderr,"size was %ld.\n",oldSize);
5573e794565SJung-uk Kim    msg2 = "     Have to modify evaluator:  -Y%c%ld.\n";
5583e794565SJung-uk Kim    fprintf(stderr,msg2,which,newSize);
5593e794565SJung-uk Kim    exit(-1);
5603e794565SJung-uk Kim   }
5613e794565SJung-uk Kim 
5623e794565SJung-uk Kim 
5633e794565SJung-uk Kim 
yyySignalEnts(yyyGNT * node,long startP,long stopP)5643e794565SJung-uk Kim void yyySignalEnts(yyyGNT *node,long startP,long stopP)
5653e794565SJung-uk Kim   {yyyGNT *dumNode;
5663e794565SJung-uk Kim 
5673e794565SJung-uk Kim    while (startP < stopP)
5683e794565SJung-uk Kim      {
5693e794565SJung-uk Kim       if (!yyyEntL[startP]) dumNode = node;
5703e794565SJung-uk Kim          else dumNode = (node->cL)[yyyEntL[startP]-1];
5713e794565SJung-uk Kim       if (!(--((dumNode->refCountList)[yyyEntL[startP+1]]
5723e794565SJung-uk Kim               )
5733e794565SJung-uk Kim            )
5743e794565SJung-uk Kim          )
5753e794565SJung-uk Kim          {
5763e794565SJung-uk Kim           if (++yyyRSTop == yyyAfterRS)
5773e794565SJung-uk Kim              {yyyHandleOverflow(yyyRSof);
5783e794565SJung-uk Kim               break;
5793e794565SJung-uk Kim              }
5803e794565SJung-uk Kim           yyyRSTop->node = dumNode;
5813e794565SJung-uk Kim           yyyRSTop->whichSym = yyyEntL[startP];
5823e794565SJung-uk Kim           yyyRSTop->wa = yyyEntL[startP+1];
5833e794565SJung-uk Kim          }
5843e794565SJung-uk Kim       startP += 2;
5853e794565SJung-uk Kim      }
5863e794565SJung-uk Kim   }
5873e794565SJung-uk Kim 
5883e794565SJung-uk Kim 
5893e794565SJung-uk Kim 
5903e794565SJung-uk Kim 
5913e794565SJung-uk Kim 
5923e794565SJung-uk Kim 
yyySolveAndSignal()5933e794565SJung-uk Kim void yyySolveAndSignal() {
5943e794565SJung-uk Kim long yyyiDum,*yyypL;
5953e794565SJung-uk Kim int yyyws,yyywa;
5963e794565SJung-uk Kim yyyGNT *yyyRSTopN,*yyyRefN;
5973e794565SJung-uk Kim yyyParent yyyRSTopNp;
5983e794565SJung-uk Kim 
5993e794565SJung-uk Kim 
6003e794565SJung-uk Kim yyyRSTopNp = (yyyRSTopN = yyyRSTop->node)->parent;
6013e794565SJung-uk Kim yyyRefN= (yyyws = (yyyRSTop->whichSym))?yyyRSTopNp.noderef:yyyRSTopN;
6023e794565SJung-uk Kim yyywa = yyyRSTop->wa;
6033e794565SJung-uk Kim yyyRSTop--;
6043e794565SJung-uk Kim switch(yyyRefN->prodNum) {
6053e794565SJung-uk Kim case 1:  /***yacc rule 1***/
6063e794565SJung-uk Kim   switch (yyyws) {
6073e794565SJung-uk Kim   }
6083e794565SJung-uk Kim break;
6093e794565SJung-uk Kim case 2:  /***yacc rule 2***/
6103e794565SJung-uk Kim   switch (yyyws) {
6113e794565SJung-uk Kim   }
6123e794565SJung-uk Kim break;
6133e794565SJung-uk Kim case 3:  /***yacc rule 3***/
6143e794565SJung-uk Kim   switch (yyyws) {
6153e794565SJung-uk Kim   }
6163e794565SJung-uk Kim break;
6173e794565SJung-uk Kim case 4:  /***yacc rule 4***/
6183e794565SJung-uk Kim   switch (yyyws) {
6193e794565SJung-uk Kim   }
6203e794565SJung-uk Kim break;
6213e794565SJung-uk Kim case 5:  /***yacc rule 5***/
6223e794565SJung-uk Kim   switch (yyyws) {
6233e794565SJung-uk Kim   }
6243e794565SJung-uk Kim break;
6253e794565SJung-uk Kim case 6:  /***yacc rule 6***/
6263e794565SJung-uk Kim   switch (yyyws) {
6273e794565SJung-uk Kim   }
6283e794565SJung-uk Kim break;
6293e794565SJung-uk Kim case 7:  /***yacc rule 7***/
6303e794565SJung-uk Kim   switch (yyyws) {
6313e794565SJung-uk Kim   case 1:  /**/
6323e794565SJung-uk Kim     switch (yyywa) {
6333e794565SJung-uk Kim     }
6343e794565SJung-uk Kim   break;
6353e794565SJung-uk Kim   }
6363e794565SJung-uk Kim break;
6373e794565SJung-uk Kim case 8:  /***yacc rule 8***/
6383e794565SJung-uk Kim   switch (yyyws) {
6393e794565SJung-uk Kim   case 1:  /**/
6403e794565SJung-uk Kim     switch (yyywa) {
6413e794565SJung-uk Kim     }
6423e794565SJung-uk Kim   break;
6433e794565SJung-uk Kim   }
6443e794565SJung-uk Kim break;
6453e794565SJung-uk Kim } /* switch */
6463e794565SJung-uk Kim 
6473e794565SJung-uk Kim if (yyyws)  /* the just-solved instance was inherited. */
6483e794565SJung-uk Kim    {if (yyyRSTopN->prodNum)
6493e794565SJung-uk Kim        {yyyiDum = yyyIIEL[yyyIIIEL[yyyRSTopN->prodNum]] + yyywa;
6503e794565SJung-uk Kim         yyySignalEnts(yyyRSTopN,yyyIEL[yyyiDum],
6513e794565SJung-uk Kim                                 yyyIEL[yyyiDum+1]
6523e794565SJung-uk Kim                      );
6533e794565SJung-uk Kim        }
6543e794565SJung-uk Kim    }
6553e794565SJung-uk Kim    else     /* the just-solved instance was synthesized. */
6563e794565SJung-uk Kim    {if (!(yyyRSTopN->parentIsStack)) /* node has a parent. */
6573e794565SJung-uk Kim        {yyyiDum = yyyIIEL[yyyIIIEL[yyyRSTopNp.noderef->prodNum] +
6583e794565SJung-uk Kim                           yyyRSTopN->whichSym
6593e794565SJung-uk Kim                          ] +
6603e794565SJung-uk Kim                   yyywa;
6613e794565SJung-uk Kim         yyySignalEnts(yyyRSTopNp.noderef,
6623e794565SJung-uk Kim                       yyyIEL[yyyiDum],
6633e794565SJung-uk Kim                       yyyIEL[yyyiDum+1]
6643e794565SJung-uk Kim                      );
6653e794565SJung-uk Kim        }
6663e794565SJung-uk Kim        else   /* node is still on the stack--it has no parent yet. */
6673e794565SJung-uk Kim        {yyypL = &(yyyRSTopNp.stackref->solvedSAlist);
6683e794565SJung-uk Kim         if (yyySSALCfreeList == yyyLambdaSSAL)
6693e794565SJung-uk Kim            {yyySSALspace[yyyNewSSALC].next = *yyypL;
6703e794565SJung-uk Kim             if ((*yyypL = yyyNewSSALC++) == yyySSALspaceSize)
6713e794565SJung-uk Kim                yyyHandleOverflow(yyySSALof);
6723e794565SJung-uk Kim            }
6733e794565SJung-uk Kim            else
6743e794565SJung-uk Kim            {yyyiDum = yyySSALCfreeList;
6753e794565SJung-uk Kim             yyySSALCfreeList = yyySSALspace[yyySSALCfreeList].next;
6763e794565SJung-uk Kim             yyySSALspace[yyyiDum].next = *yyypL;
6773e794565SJung-uk Kim             *yyypL = yyyiDum;
6783e794565SJung-uk Kim            }
6793e794565SJung-uk Kim         yyySSALspace[*yyypL].attrbNum = yyywa;
6803e794565SJung-uk Kim        }
6813e794565SJung-uk Kim    }
6823e794565SJung-uk Kim 
6833e794565SJung-uk Kim } /* yyySolveAndSignal */
6843e794565SJung-uk Kim 
6853e794565SJung-uk Kim 
6863e794565SJung-uk Kim 
6873e794565SJung-uk Kim 
6883e794565SJung-uk Kim 
6893e794565SJung-uk Kim 
6903e794565SJung-uk Kim #define condStg unsigned int conds;
6913e794565SJung-uk Kim #define yyyClearConds {yyyTST->conds = 0;}
6923e794565SJung-uk Kim #define yyySetCond(n) {yyyTST->conds += (1<<(n));}
6933e794565SJung-uk Kim #define yyyCond(n) ((yyyTST->conds & (1<<(n)))?1:0)
6943e794565SJung-uk Kim 
6953e794565SJung-uk Kim 
6963e794565SJung-uk Kim 
6973e794565SJung-uk Kim struct yyyTravStackItem {yyyGNT *node;
6983e794565SJung-uk Kim                          char isReady;
6993e794565SJung-uk Kim                          condStg
7003e794565SJung-uk Kim                         };
7013e794565SJung-uk Kim 
7023e794565SJung-uk Kim 
7033e794565SJung-uk Kim 
yyyDoTraversals(yyyGNT * rootNode)7043e794565SJung-uk Kim void yyyDoTraversals(yyyGNT *rootNode)
7053e794565SJung-uk Kim {struct yyyTravStackItem *yyyTravStack,*yyyTST,*yyyAfterTravStack;
7063e794565SJung-uk Kim  yyyGNT *yyyTSTn,**yyyCLptr2;
7073e794565SJung-uk Kim  int yyyi,yyyRL,yyyPass;
7083e794565SJung-uk Kim  int i;
7093e794565SJung-uk Kim 
7103e794565SJung-uk Kim  if (!yyyYok) return;
7113e794565SJung-uk Kim  if ((yyyTravStack =
7123e794565SJung-uk Kim                  ((struct yyyTravStackItem *)
7133e794565SJung-uk Kim                   calloc((size_t)yyyTravStackMaxSize,
7143e794565SJung-uk Kim                          (size_t)sizeof(struct yyyTravStackItem)
7153e794565SJung-uk Kim                         )
7163e794565SJung-uk Kim                  )
7173e794565SJung-uk Kim      )
7183e794565SJung-uk Kim      ==
7193e794565SJung-uk Kim      (struct yyyTravStackItem *)NULL
7203e794565SJung-uk Kim     )
7213e794565SJung-uk Kim     {fputs("malloc error in traversal stack allocation\n",stderr);
7223e794565SJung-uk Kim      exit(-1);
7233e794565SJung-uk Kim     }
7243e794565SJung-uk Kim 
7253e794565SJung-uk Kim yyyAfterTravStack = yyyTravStack + yyyTravStackMaxSize;
7263e794565SJung-uk Kim yyyTravStack++;
7273e794565SJung-uk Kim 
7283e794565SJung-uk Kim 
7293e794565SJung-uk Kim for (yyyi=0; yyyi<2; yyyi++) {
7303e794565SJung-uk Kim yyyTST = yyyTravStack;
7313e794565SJung-uk Kim yyyTST->node = rootNode;
7323e794565SJung-uk Kim yyyTST->isReady = 0;
7333e794565SJung-uk Kim yyyClearConds
7343e794565SJung-uk Kim 
7353e794565SJung-uk Kim while(yyyTST >= yyyTravStack)
7363e794565SJung-uk Kim   {yyyTSTn = yyyTST->node;
7373e794565SJung-uk Kim    if (yyyTST->isReady)
7383e794565SJung-uk Kim       {yyyPass = 1;
7393e794565SJung-uk Kim        goto yyyTravSwitch;
7403e794565SJung-uk Kim yyyTpop:
7413e794565SJung-uk Kim        yyyTST--;
7423e794565SJung-uk Kim       }
7433e794565SJung-uk Kim       else
7443e794565SJung-uk Kim       {yyyPass = 0;
7453e794565SJung-uk Kim        goto yyyTravSwitch;
7463e794565SJung-uk Kim yyyTpush:
7473e794565SJung-uk Kim        yyyTST->isReady = 1;
7483e794565SJung-uk Kim        if (yyyTSTn->prodNum)
7493e794565SJung-uk Kim           {if (yyyRL)
7503e794565SJung-uk Kim              {yyyCLptr2 = yyyTSTn->cL;
7513e794565SJung-uk Kim               i = yyyTSTn->cLlen;
7523e794565SJung-uk Kim               while (i--)
7533e794565SJung-uk Kim                 {if (++yyyTST == yyyAfterTravStack)
7543e794565SJung-uk Kim                     yyyHandleOverflow(yyyTSof);
7553e794565SJung-uk Kim                     else
7563e794565SJung-uk Kim                     {yyyTST->node = *yyyCLptr2;
7573e794565SJung-uk Kim                      yyyTST->isReady = 0;
7583e794565SJung-uk Kim                      yyyClearConds
7593e794565SJung-uk Kim                     }
7603e794565SJung-uk Kim                  yyyCLptr2++;
7613e794565SJung-uk Kim                 }
7623e794565SJung-uk Kim              } /* right to left */
7633e794565SJung-uk Kim              else  /* left to right */
7643e794565SJung-uk Kim              {i = yyyTSTn->cLlen;
7653e794565SJung-uk Kim               yyyCLptr2 = yyyTSTn->cL + i;
7663e794565SJung-uk Kim               while (i--)
7673e794565SJung-uk Kim                 {yyyCLptr2--;
7683e794565SJung-uk Kim                  if (++yyyTST == yyyAfterTravStack)
7693e794565SJung-uk Kim                     yyyHandleOverflow(yyyTSof);
7703e794565SJung-uk Kim                     else
7713e794565SJung-uk Kim                     {yyyTST->node = *yyyCLptr2;
7723e794565SJung-uk Kim                      yyyTST->isReady = 0;
7733e794565SJung-uk Kim                      yyyClearConds
7743e794565SJung-uk Kim                     }
7753e794565SJung-uk Kim                 }
7763e794565SJung-uk Kim              } /* left to right */
7773e794565SJung-uk Kim           }
7783e794565SJung-uk Kim       } /* else */
7793e794565SJung-uk Kim    continue;
7803e794565SJung-uk Kim yyyTravSwitch:
7813e794565SJung-uk Kim 				switch(yyyTSTn->prodNum)	{
7823e794565SJung-uk Kim case 1:
7833e794565SJung-uk Kim 	switch(yyyi)	{
7843e794565SJung-uk Kim 		case 0:
7853e794565SJung-uk Kim 			switch(yyyPass)	{
7863e794565SJung-uk Kim 				case 0:
7873e794565SJung-uk Kim yyyRL = 0;yyySetCond(0)
7883e794565SJung-uk Kim 
7893e794565SJung-uk Kim if (!
7903e794565SJung-uk Kim #line 24 "expr.Y"
7913e794565SJung-uk Kim   (1)
7923e794565SJung-uk Kim #line 444 "expr.oxout.y"
7933e794565SJung-uk Kim ) yyySetCond(1)
7943e794565SJung-uk Kim yyySetCond(2)
7953e794565SJung-uk Kim 
7963e794565SJung-uk Kim 				case 1:
7973e794565SJung-uk Kim 
7983e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
7993e794565SJung-uk Kim #line 24 "expr.Y"
8003e794565SJung-uk Kim 
8013e794565SJung-uk Kim #line 453 "expr.oxout.y"
8023e794565SJung-uk Kim }
8033e794565SJung-uk Kim if (yyyCond(1) != yyyPass) {
8043e794565SJung-uk Kim #line 24 "expr.Y"
8053e794565SJung-uk Kim  printf("\n");
8063e794565SJung-uk Kim 
8073e794565SJung-uk Kim #line 459 "expr.oxout.y"
8083e794565SJung-uk Kim }
8093e794565SJung-uk Kim if (yyyCond(2) != yyyPass) {
8103e794565SJung-uk Kim #line 25 "expr.Y"
8113e794565SJung-uk Kim   printf("prefix:   ");
8123e794565SJung-uk Kim 
8133e794565SJung-uk Kim #line 465 "expr.oxout.y"
8143e794565SJung-uk Kim }
8153e794565SJung-uk Kim 				break;
8163e794565SJung-uk Kim 					}
8173e794565SJung-uk Kim 		break;
8183e794565SJung-uk Kim 		case 1:
8193e794565SJung-uk Kim 			switch(yyyPass)	{
8203e794565SJung-uk Kim 				case 0:
8213e794565SJung-uk Kim yyyRL = 0;
8223e794565SJung-uk Kim if (
8233e794565SJung-uk Kim #line 23 "expr.Y"
8243e794565SJung-uk Kim   (1)
8253e794565SJung-uk Kim #line 477 "expr.oxout.y"
8263e794565SJung-uk Kim ) yyySetCond(2)
8273e794565SJung-uk Kim 
8283e794565SJung-uk Kim 				case 1:
8293e794565SJung-uk Kim 
8303e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
8313e794565SJung-uk Kim #line 22 "expr.Y"
8323e794565SJung-uk Kim  printf("\n");
8333e794565SJung-uk Kim 
8343e794565SJung-uk Kim #line 486 "expr.oxout.y"
8353e794565SJung-uk Kim }
8363e794565SJung-uk Kim if (yyyCond(1) != yyyPass) {
8373e794565SJung-uk Kim #line 23 "expr.Y"
8383e794565SJung-uk Kim 
8393e794565SJung-uk Kim #line 491 "expr.oxout.y"
8403e794565SJung-uk Kim }
8413e794565SJung-uk Kim if (yyyCond(2) != yyyPass) {
8423e794565SJung-uk Kim #line 23 "expr.Y"
8438e022d3cSDag-Erling Smørgrav  printf("postfix:  ");
8443e794565SJung-uk Kim 
8453e794565SJung-uk Kim #line 497 "expr.oxout.y"
8463e794565SJung-uk Kim }
8473e794565SJung-uk Kim 				break;
8483e794565SJung-uk Kim 					}
8493e794565SJung-uk Kim 		break;
8503e794565SJung-uk Kim 			}
8513e794565SJung-uk Kim 
8523e794565SJung-uk Kim break;
8533e794565SJung-uk Kim case 2:
8543e794565SJung-uk Kim 	switch(yyyi)	{
8553e794565SJung-uk Kim 		case 0:
8563e794565SJung-uk Kim 			switch(yyyPass)	{
8573e794565SJung-uk Kim 				case 0:
8583e794565SJung-uk Kim yyyRL = 0;yyySetCond(0)
8593e794565SJung-uk Kim 
8603e794565SJung-uk Kim 				case 1:
8613e794565SJung-uk Kim 
8623e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
8633e794565SJung-uk Kim #line 29 "expr.Y"
8643e794565SJung-uk Kim   printf(" * ");
8653e794565SJung-uk Kim 
8663e794565SJung-uk Kim #line 518 "expr.oxout.y"
8673e794565SJung-uk Kim }
8683e794565SJung-uk Kim 				break;
8693e794565SJung-uk Kim 					}
8703e794565SJung-uk Kim 		break;
8713e794565SJung-uk Kim 		case 1:
8723e794565SJung-uk Kim 			switch(yyyPass)	{
8733e794565SJung-uk Kim 				case 0:
8743e794565SJung-uk Kim yyyRL = 0;
8753e794565SJung-uk Kim 				case 1:
8763e794565SJung-uk Kim 
8773e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
8783e794565SJung-uk Kim #line 28 "expr.Y"
8793e794565SJung-uk Kim  printf(" * ");
8803e794565SJung-uk Kim 
8813e794565SJung-uk Kim #line 533 "expr.oxout.y"
8823e794565SJung-uk Kim }
8833e794565SJung-uk Kim 				break;
8843e794565SJung-uk Kim 					}
8853e794565SJung-uk Kim 		break;
8863e794565SJung-uk Kim 			}
8873e794565SJung-uk Kim 
8883e794565SJung-uk Kim break;
8893e794565SJung-uk Kim case 3:
8903e794565SJung-uk Kim 	switch(yyyi)	{
8913e794565SJung-uk Kim 		case 0:
8923e794565SJung-uk Kim 			switch(yyyPass)	{
8933e794565SJung-uk Kim 				case 0:
8943e794565SJung-uk Kim yyyRL = 0;yyySetCond(0)
8953e794565SJung-uk Kim 
8963e794565SJung-uk Kim 				case 1:
8973e794565SJung-uk Kim 
8983e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
8993e794565SJung-uk Kim #line 32 "expr.Y"
9003e794565SJung-uk Kim   printf(" + ");
9013e794565SJung-uk Kim 
9023e794565SJung-uk Kim #line 554 "expr.oxout.y"
9033e794565SJung-uk Kim }
9043e794565SJung-uk Kim 				break;
9053e794565SJung-uk Kim 					}
9063e794565SJung-uk Kim 		break;
9073e794565SJung-uk Kim 		case 1:
9083e794565SJung-uk Kim 			switch(yyyPass)	{
9093e794565SJung-uk Kim 				case 0:
9103e794565SJung-uk Kim yyyRL = 0;
9113e794565SJung-uk Kim 				case 1:
9123e794565SJung-uk Kim 
9133e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
9143e794565SJung-uk Kim #line 33 "expr.Y"
9153e794565SJung-uk Kim  printf(" + ");
9163e794565SJung-uk Kim 
9173e794565SJung-uk Kim #line 569 "expr.oxout.y"
9183e794565SJung-uk Kim }
9193e794565SJung-uk Kim 				break;
9203e794565SJung-uk Kim 					}
9213e794565SJung-uk Kim 		break;
9223e794565SJung-uk Kim 			}
9233e794565SJung-uk Kim 
9243e794565SJung-uk Kim break;
9253e794565SJung-uk Kim case 4:
9263e794565SJung-uk Kim 	switch(yyyi)	{
9273e794565SJung-uk Kim 		case 0:
9283e794565SJung-uk Kim 			switch(yyyPass)	{
9293e794565SJung-uk Kim 				case 0:
9303e794565SJung-uk Kim yyyRL = 0;yyySetCond(0)
9313e794565SJung-uk Kim 
9323e794565SJung-uk Kim 				case 1:
9333e794565SJung-uk Kim 
9343e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
9353e794565SJung-uk Kim #line 37 "expr.Y"
9363e794565SJung-uk Kim   printf(" / ");
9373e794565SJung-uk Kim 
9383e794565SJung-uk Kim #line 590 "expr.oxout.y"
9393e794565SJung-uk Kim }
9403e794565SJung-uk Kim 				break;
9413e794565SJung-uk Kim 					}
9423e794565SJung-uk Kim 		break;
9433e794565SJung-uk Kim 		case 1:
9443e794565SJung-uk Kim 			switch(yyyPass)	{
9453e794565SJung-uk Kim 				case 0:
9463e794565SJung-uk Kim yyyRL = 0;
9473e794565SJung-uk Kim 				case 1:
9483e794565SJung-uk Kim 
9493e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
9503e794565SJung-uk Kim #line 36 "expr.Y"
9513e794565SJung-uk Kim  printf(" / ");
9523e794565SJung-uk Kim 
9533e794565SJung-uk Kim #line 605 "expr.oxout.y"
9543e794565SJung-uk Kim }
9553e794565SJung-uk Kim 				break;
9563e794565SJung-uk Kim 					}
9573e794565SJung-uk Kim 		break;
9583e794565SJung-uk Kim 			}
9593e794565SJung-uk Kim 
9603e794565SJung-uk Kim break;
9613e794565SJung-uk Kim case 5:
9623e794565SJung-uk Kim 	switch(yyyi)	{
9633e794565SJung-uk Kim 		case 0:
9643e794565SJung-uk Kim 			switch(yyyPass)	{
9653e794565SJung-uk Kim 				case 0:
9663e794565SJung-uk Kim yyyRL = 0;yyySetCond(0)
9673e794565SJung-uk Kim 
9683e794565SJung-uk Kim 				case 1:
9693e794565SJung-uk Kim 
9703e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
9713e794565SJung-uk Kim #line 41 "expr.Y"
9723e794565SJung-uk Kim   printf(" - ");
9733e794565SJung-uk Kim 
9743e794565SJung-uk Kim #line 626 "expr.oxout.y"
9753e794565SJung-uk Kim }
9763e794565SJung-uk Kim 				break;
9773e794565SJung-uk Kim 					}
9783e794565SJung-uk Kim 		break;
9793e794565SJung-uk Kim 		case 1:
9803e794565SJung-uk Kim 			switch(yyyPass)	{
9813e794565SJung-uk Kim 				case 0:
9823e794565SJung-uk Kim yyyRL = 0;
9833e794565SJung-uk Kim 				case 1:
9843e794565SJung-uk Kim 
9853e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
9863e794565SJung-uk Kim #line 40 "expr.Y"
9873e794565SJung-uk Kim  printf(" - ");
9883e794565SJung-uk Kim 
9893e794565SJung-uk Kim #line 641 "expr.oxout.y"
9903e794565SJung-uk Kim }
9913e794565SJung-uk Kim 				break;
9923e794565SJung-uk Kim 					}
9933e794565SJung-uk Kim 		break;
9943e794565SJung-uk Kim 			}
9953e794565SJung-uk Kim 
9963e794565SJung-uk Kim break;
9973e794565SJung-uk Kim case 6:
9983e794565SJung-uk Kim 	switch(yyyi)	{
9993e794565SJung-uk Kim 		case 0:
10003e794565SJung-uk Kim 			switch(yyyPass)	{
10013e794565SJung-uk Kim 				case 0:
10023e794565SJung-uk Kim yyyRL = 0;
10033e794565SJung-uk Kim 				case 1:
10043e794565SJung-uk Kim 
10053e794565SJung-uk Kim 				break;
10063e794565SJung-uk Kim 					}
10073e794565SJung-uk Kim 		break;
10083e794565SJung-uk Kim 		case 1:
10093e794565SJung-uk Kim 			switch(yyyPass)	{
10103e794565SJung-uk Kim 				case 0:
10113e794565SJung-uk Kim yyyRL = 0;
10123e794565SJung-uk Kim 				case 1:
10133e794565SJung-uk Kim 
10143e794565SJung-uk Kim 				break;
10153e794565SJung-uk Kim 					}
10163e794565SJung-uk Kim 		break;
10173e794565SJung-uk Kim 			}
10183e794565SJung-uk Kim 
10193e794565SJung-uk Kim break;
10203e794565SJung-uk Kim case 7:
10213e794565SJung-uk Kim 	switch(yyyi)	{
10223e794565SJung-uk Kim 		case 0:
10233e794565SJung-uk Kim 			switch(yyyPass)	{
10243e794565SJung-uk Kim 				case 0:
10253e794565SJung-uk Kim yyyRL = 0;yyySetCond(0)
10263e794565SJung-uk Kim 
10273e794565SJung-uk Kim 				case 1:
10283e794565SJung-uk Kim 
10293e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
10303e794565SJung-uk Kim #line 46 "expr.Y"
10313e794565SJung-uk Kim   printf(" %s ",yyyTSTn->cL[0]->yyyAttrbs.yyyAttrb1.lexeme);
10323e794565SJung-uk Kim 
10333e794565SJung-uk Kim #line 685 "expr.oxout.y"
10343e794565SJung-uk Kim }
10353e794565SJung-uk Kim 				break;
10363e794565SJung-uk Kim 					}
10373e794565SJung-uk Kim 		break;
10383e794565SJung-uk Kim 		case 1:
10393e794565SJung-uk Kim 			switch(yyyPass)	{
10403e794565SJung-uk Kim 				case 0:
10413e794565SJung-uk Kim yyyRL = 0;
10423e794565SJung-uk Kim 				case 1:
10433e794565SJung-uk Kim 
10443e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
10453e794565SJung-uk Kim #line 45 "expr.Y"
10463e794565SJung-uk Kim  printf(" %s ",yyyTSTn->cL[0]->yyyAttrbs.yyyAttrb1.lexeme);
10473e794565SJung-uk Kim 
10483e794565SJung-uk Kim #line 700 "expr.oxout.y"
10493e794565SJung-uk Kim }
10503e794565SJung-uk Kim 				break;
10513e794565SJung-uk Kim 					}
10523e794565SJung-uk Kim 		break;
10533e794565SJung-uk Kim 			}
10543e794565SJung-uk Kim 
10553e794565SJung-uk Kim break;
10563e794565SJung-uk Kim case 8:
10573e794565SJung-uk Kim 	switch(yyyi)	{
10583e794565SJung-uk Kim 		case 0:
10593e794565SJung-uk Kim 			switch(yyyPass)	{
10603e794565SJung-uk Kim 				case 0:
10613e794565SJung-uk Kim yyyRL = 0;yyySetCond(0)
10623e794565SJung-uk Kim 
10633e794565SJung-uk Kim 				case 1:
10643e794565SJung-uk Kim 
10653e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
10663e794565SJung-uk Kim #line 50 "expr.Y"
10673e794565SJung-uk Kim   printf(" %s ",yyyTSTn->cL[0]->yyyAttrbs.yyyAttrb1.lexeme);
10683e794565SJung-uk Kim 
10693e794565SJung-uk Kim #line 721 "expr.oxout.y"
10703e794565SJung-uk Kim }
10713e794565SJung-uk Kim 				break;
10723e794565SJung-uk Kim 					}
10733e794565SJung-uk Kim 		break;
10743e794565SJung-uk Kim 		case 1:
10753e794565SJung-uk Kim 			switch(yyyPass)	{
10763e794565SJung-uk Kim 				case 0:
10773e794565SJung-uk Kim yyyRL = 0;
10783e794565SJung-uk Kim 				case 1:
10793e794565SJung-uk Kim 
10803e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
10813e794565SJung-uk Kim #line 49 "expr.Y"
10823e794565SJung-uk Kim  printf(" %s ",yyyTSTn->cL[0]->yyyAttrbs.yyyAttrb1.lexeme);
10833e794565SJung-uk Kim 
10843e794565SJung-uk Kim #line 736 "expr.oxout.y"
10853e794565SJung-uk Kim }
10863e794565SJung-uk Kim 				break;
10873e794565SJung-uk Kim 					}
10883e794565SJung-uk Kim 		break;
10893e794565SJung-uk Kim 			}
10903e794565SJung-uk Kim 
10913e794565SJung-uk Kim break;
10923e794565SJung-uk Kim 								} /* switch */
10933e794565SJung-uk Kim    if (yyyPass) goto yyyTpop; else goto yyyTpush;
10943e794565SJung-uk Kim   } /* while */
10953e794565SJung-uk Kim  } /* for */
10963e794565SJung-uk Kim } /* yyyDoTraversals */
10973e794565SJung-uk Kim 
yyyExecuteRRsection(yyyGNT * rootNode)10983e794565SJung-uk Kim void yyyExecuteRRsection(yyyGNT *rootNode)  {
10993e794565SJung-uk Kim    int yyyi;
11003e794565SJung-uk Kim    long cycleSum = 0;
11013e794565SJung-uk Kim    long nNZrc = 0;
11023e794565SJung-uk Kim 
11033e794565SJung-uk Kim    if (!yyyYok) return;
11043e794565SJung-uk Kim    yyyCheckUnsolvedInstTrav(rootNode,&nNZrc,&cycleSum);
11053e794565SJung-uk Kim    if (nNZrc)
11063e794565SJung-uk Kim       {
11073e794565SJung-uk Kim        fputs("\n\n\n**********\n",stderr);
11083e794565SJung-uk Kim        fputs("cycle detected in completed parse tree",stderr);
11093e794565SJung-uk Kim        fputs(" after decoration.\n",stderr);
11103e794565SJung-uk Kim #if CYCLE_VERBOSE
11113e794565SJung-uk Kim        fprintf(stderr,
11123e794565SJung-uk Kim                "number of unsolved attribute instances == %ld.\n",
11133e794565SJung-uk Kim                nNZrc
11143e794565SJung-uk Kim               );
11153e794565SJung-uk Kim        fprintf(stderr,
11163e794565SJung-uk Kim                "total number of remaining dependencies == %ld.\n",
11173e794565SJung-uk Kim                cycleSum
11183e794565SJung-uk Kim               );
11193e794565SJung-uk Kim        fputs("average number of remaining dependencies\n",stderr);
11203e794565SJung-uk Kim        fprintf(stderr,"  per unsolved instance == %f.\n",
11213e794565SJung-uk Kim                ((float)(cycleSum)/(float)(nNZrc))
11223e794565SJung-uk Kim               );
11233e794565SJung-uk Kim #endif
11243e794565SJung-uk Kim        fprintf(stderr,
11253e794565SJung-uk Kim          "searching parse tree for %ld unsolved instances:\n",
11263e794565SJung-uk Kim                nNZrc
11273e794565SJung-uk Kim               );
11283e794565SJung-uk Kim        yyyUnsolvedInstSearchTravAux(rootNode);
11293e794565SJung-uk Kim       }
11303e794565SJung-uk Kim    yyyDoTraversals(rootNode);
11313e794565SJung-uk Kim } /* yyyExecuteRRsection */
11323e794565SJung-uk Kim 
11333e794565SJung-uk Kim 
11343e794565SJung-uk Kim 
11353e794565SJung-uk Kim yyyWAT yyyLRCIL[2] = {0,0,
11363e794565SJung-uk Kim };
11373e794565SJung-uk Kim 
11383e794565SJung-uk Kim 
11393e794565SJung-uk Kim 
yyyYoxInit(void)11403e794565SJung-uk Kim void yyyYoxInit(void)
11413e794565SJung-uk Kim   {
11423e794565SJung-uk Kim    static int yyyInitDone = 0;
11433e794565SJung-uk Kim    if (yyyInitDone) return;
11443e794565SJung-uk Kim 
11458e022d3cSDag-Erling Smørgrav    if ((yyyRS = (yyyRSitem *)
11468e022d3cSDag-Erling Smørgrav          calloc((size_t)(yyyRSmaxSize+1), (size_t)sizeof(yyyRSitem))
11473e794565SJung-uk Kim        )
11483e794565SJung-uk Kim        ==
11498e022d3cSDag-Erling Smørgrav        ((yyyRSitem *) NULL)
11503e794565SJung-uk Kim       )
11513e794565SJung-uk Kim       yyyfatal("malloc error in ox ready set space allocation\n");
11523e794565SJung-uk Kim    yyyRS++;
11533e794565SJung-uk Kim    yyyAfterRS = yyyRS + yyyRSmaxSize;
11543e794565SJung-uk Kim 
11553e794565SJung-uk Kim 
11563e794565SJung-uk Kim    if ((yyySSALspace = (struct yyySolvedSAlistCell *)
11573e794565SJung-uk Kim           calloc((size_t)(yyySSALspaceSize+1), (size_t)sizeof(struct yyySolvedSAlistCell))
11583e794565SJung-uk Kim        )
11593e794565SJung-uk Kim        ==
11603e794565SJung-uk Kim        ((struct yyySolvedSAlistCell *) NULL)
11613e794565SJung-uk Kim       )
11623e794565SJung-uk Kim       yyyfatal("malloc error in stack solved list space allocation\n");
11633e794565SJung-uk Kim    yyyInitDone = 1;
11643e794565SJung-uk Kim 
11653e794565SJung-uk Kim    yyyRSTop = yyyRS - 1;
11663e794565SJung-uk Kim   } /* yyyYoxInit */
11673e794565SJung-uk Kim 
11683e794565SJung-uk Kim 
11693e794565SJung-uk Kim 
yyyDecorate(void)11703e794565SJung-uk Kim void yyyDecorate(void)
11713e794565SJung-uk Kim   {
11723e794565SJung-uk Kim    while (yyyRSTop >= yyyRS)
11733e794565SJung-uk Kim       yyySolveAndSignal();
11743e794565SJung-uk Kim   }
11753e794565SJung-uk Kim 
11763e794565SJung-uk Kim 
11773e794565SJung-uk Kim 
yyyGenIntNode(long yyyProdNum,int yyyRHSlength,int yyyNattrbs,struct yyyOxAttrbs * yyval_OxAttrbs,...)11783e794565SJung-uk Kim void yyyGenIntNode(long yyyProdNum, int yyyRHSlength, int yyyNattrbs, struct yyyOxAttrbs *yyval_OxAttrbs, ...)
11793e794565SJung-uk Kim   {yyyWST i;
11803e794565SJung-uk Kim    yyySIT **yyyOxStackItem = &yyval_OxAttrbs->yyyOxStackItem;
11813e794565SJung-uk Kim    yyyGNT *gnpDum;
11823e794565SJung-uk Kim    va_list ap;
11833e794565SJung-uk Kim 
11843e794565SJung-uk Kim    *yyyOxStackItem = (yyySIT *) malloc((size_t)sizeof(yyySIT));
11853e794565SJung-uk Kim    if (*yyyOxStackItem == (yyySIT *) NULL)
11863e794565SJung-uk Kim       yyyfatal("malloc error in ox yacc semantic stack space allocation\n");
11873e794565SJung-uk Kim    (*yyyOxStackItem)->node =
11883e794565SJung-uk Kim                                 (yyyGNT *) malloc((size_t)sizeof(yyyGNT));
11893e794565SJung-uk Kim    if ((*yyyOxStackItem)->node == (yyyGNT *) NULL)
11903e794565SJung-uk Kim       yyyfatal("malloc error in ox node space allocation\n");
11913e794565SJung-uk Kim    (*yyyOxStackItem)->solvedSAlist = yyyLambdaSSAL;
11923e794565SJung-uk Kim    (*yyyOxStackItem)->node->parent.stackref = *yyyOxStackItem;
11933e794565SJung-uk Kim    (*yyyOxStackItem)->node->parentIsStack = 1;
11943e794565SJung-uk Kim    (*yyyOxStackItem)->node->cLlen  = yyyRHSlength;
11953e794565SJung-uk Kim    (*yyyOxStackItem)->node->cL =
11963e794565SJung-uk Kim             (yyyGNT **) calloc((size_t)yyyRHSlength, (size_t)sizeof(yyyGNT *));
11973e794565SJung-uk Kim    if ((*yyyOxStackItem)->node->cL == (yyyGNT **) NULL)
11983e794565SJung-uk Kim       yyyfatal("malloc error in ox child list space allocation\n");
11993e794565SJung-uk Kim    (*yyyOxStackItem)->node->refCountListLen = yyyNattrbs;
12003e794565SJung-uk Kim    (*yyyOxStackItem)->node->refCountList =
12013e794565SJung-uk Kim             (yyyRCT *) calloc((size_t)yyyNattrbs, (size_t)sizeof(yyyRCT));
12023e794565SJung-uk Kim    if ((*yyyOxStackItem)->node->refCountList == (yyyRCT *) NULL)
12033e794565SJung-uk Kim       yyyfatal("malloc error in ox reference count list space allocation\n");
12048e022d3cSDag-Erling Smørgrav    (*yyyOxStackItem)->node->prodNum = (int) yyyProdNum;
12053e794565SJung-uk Kim    va_start(ap, yyval_OxAttrbs);
12063e794565SJung-uk Kim    for (i=1;i<=yyyRHSlength;i++)
12073e794565SJung-uk Kim      {yyySIT *yaccStDum = va_arg(ap,struct yyyOxAttrbs *)->yyyOxStackItem;
12083e794565SJung-uk Kim       gnpDum = (*yyyOxStackItem)->node->cL[i-1] = yaccStDum->node;
12093e794565SJung-uk Kim       gnpDum->whichSym = i;
12103e794565SJung-uk Kim       gnpDum->parent.noderef = (*yyyOxStackItem)->node;
12113e794565SJung-uk Kim       gnpDum->parentIsStack = 0;
12123e794565SJung-uk Kim      }
12133e794565SJung-uk Kim    va_end(ap);
12143e794565SJung-uk Kim   }
12153e794565SJung-uk Kim 
12163e794565SJung-uk Kim 
12173e794565SJung-uk Kim 
12183e794565SJung-uk Kim #define yyyDECORfREQ 50
12193e794565SJung-uk Kim 
12203e794565SJung-uk Kim 
12213e794565SJung-uk Kim 
yyyAdjustINRC(long yyyProdNum,int yyyRHSlength,long startP,long stopP,struct yyyOxAttrbs * yyval_OxAttrbs,...)12223e794565SJung-uk Kim void yyyAdjustINRC(long yyyProdNum, int yyyRHSlength, long startP, long stopP, struct yyyOxAttrbs *yyval_OxAttrbs, ...)
12233e794565SJung-uk Kim   {yyyWST i;
12243e794565SJung-uk Kim    yyySIT *yyyOxStackItem = yyval_OxAttrbs->yyyOxStackItem;
12253e794565SJung-uk Kim    long SSALptr,SSALptrHead,*cPtrPtr;
12263e794565SJung-uk Kim    long *pL;
12273e794565SJung-uk Kim    yyyGNT *gnpDum;
12283e794565SJung-uk Kim    long iTemp;
12293e794565SJung-uk Kim    long nextP;
12303e794565SJung-uk Kim    static unsigned short intNodeCount = yyyDECORfREQ;
12313e794565SJung-uk Kim    va_list ap;
12323e794565SJung-uk Kim 
12333e794565SJung-uk Kim    nextP = startP;
12343e794565SJung-uk Kim    while (nextP < stopP)
12353e794565SJung-uk Kim      {if (yyyRCIL[nextP] == yyyR)
12363e794565SJung-uk Kim          {(yyyOxStackItem->node->refCountList)[yyyRCIL[nextP+1]] = yyyRCIL[nextP+2];
12373e794565SJung-uk Kim          }
12383e794565SJung-uk Kim          else
12393e794565SJung-uk Kim          {(((yyyOxStackItem->node->cL)[yyyRCIL[nextP]])->refCountList)[yyyRCIL[nextP+1]] = yyyRCIL[nextP+2];
12403e794565SJung-uk Kim          }
12413e794565SJung-uk Kim       nextP += 3;
12423e794565SJung-uk Kim      }
12433e794565SJung-uk Kim    pL = yyyIIEL + yyyIIIEL[yyyProdNum];
12443e794565SJung-uk Kim    va_start(ap, yyval_OxAttrbs);
12453e794565SJung-uk Kim    for (i=1;i<=yyyRHSlength;i++)
12463e794565SJung-uk Kim      {yyySIT *yaccStDum = va_arg(ap,struct yyyOxAttrbs *)->yyyOxStackItem;
12473e794565SJung-uk Kim       pL++;
12483e794565SJung-uk Kim       SSALptrHead = SSALptr = *(cPtrPtr = &(yaccStDum->solvedSAlist));
12493e794565SJung-uk Kim       if (SSALptr != yyyLambdaSSAL)
12503e794565SJung-uk Kim          {*cPtrPtr = yyyLambdaSSAL;
12513e794565SJung-uk Kim           do
12523e794565SJung-uk Kim             {
12533e794565SJung-uk Kim              iTemp = (*pL+yyySSALspace[SSALptr].attrbNum);
12543e794565SJung-uk Kim              yyySignalEnts(yyyOxStackItem->node,
12553e794565SJung-uk Kim                            yyyIEL[iTemp],
12563e794565SJung-uk Kim                            yyyIEL[iTemp+1]
12573e794565SJung-uk Kim                           );
12583e794565SJung-uk Kim              SSALptr = *(cPtrPtr = &(yyySSALspace[SSALptr].next));
12593e794565SJung-uk Kim             }
12603e794565SJung-uk Kim             while (SSALptr != yyyLambdaSSAL);
12613e794565SJung-uk Kim           *cPtrPtr = yyySSALCfreeList;
12623e794565SJung-uk Kim           yyySSALCfreeList = SSALptrHead;
12633e794565SJung-uk Kim          }
12643e794565SJung-uk Kim      }
12653e794565SJung-uk Kim    va_end(ap);
12663e794565SJung-uk Kim    nextP = startP + 2;
12673e794565SJung-uk Kim    while (nextP < stopP)
12683e794565SJung-uk Kim      {if (!yyyRCIL[nextP])
12693e794565SJung-uk Kim          {if (yyyRCIL[nextP-2] == yyyR)
12703e794565SJung-uk Kim              {pL = &(yyyOxStackItem->solvedSAlist);
12713e794565SJung-uk Kim               if (yyySSALCfreeList == yyyLambdaSSAL)
12723e794565SJung-uk Kim                  {yyySSALspace[yyyNewSSALC].next = *pL;
12733e794565SJung-uk Kim                   if ((*pL = yyyNewSSALC++) == yyySSALspaceSize)
12743e794565SJung-uk Kim                      yyyHandleOverflow(yyySSALof);
12753e794565SJung-uk Kim                  }
12763e794565SJung-uk Kim                  else
12773e794565SJung-uk Kim                  {iTemp = yyySSALCfreeList;
12783e794565SJung-uk Kim                   yyySSALCfreeList = yyySSALspace[yyySSALCfreeList].next;
12793e794565SJung-uk Kim                   yyySSALspace[iTemp].next = *pL;
12803e794565SJung-uk Kim                   *pL = iTemp;
12813e794565SJung-uk Kim                  }
12823e794565SJung-uk Kim               yyySSALspace[*pL].attrbNum = yyyRCIL[nextP-1];
12833e794565SJung-uk Kim              }
12843e794565SJung-uk Kim              else
12853e794565SJung-uk Kim              {if ((gnpDum = (yyyOxStackItem->node->cL)[yyyRCIL[nextP-2]])->prodNum != 0)
12863e794565SJung-uk Kim                  {
12873e794565SJung-uk Kim                   iTemp = yyyIIEL[yyyIIIEL[gnpDum->prodNum]] + yyyRCIL[nextP-1];
12883e794565SJung-uk Kim                   yyySignalEnts(gnpDum,
12893e794565SJung-uk Kim                                 yyyIEL[iTemp],
12903e794565SJung-uk Kim                                 yyyIEL[iTemp+1]
12913e794565SJung-uk Kim                                );
12923e794565SJung-uk Kim                  }
12933e794565SJung-uk Kim              }
12943e794565SJung-uk Kim          }
12953e794565SJung-uk Kim       nextP += 3;
12963e794565SJung-uk Kim      }
12973e794565SJung-uk Kim    if (!--intNodeCount)
12983e794565SJung-uk Kim       {intNodeCount = yyyDECORfREQ;
12993e794565SJung-uk Kim        yyyDecorate();
13003e794565SJung-uk Kim       }
13013e794565SJung-uk Kim   }
13023e794565SJung-uk Kim 
13033e794565SJung-uk Kim 
13043e794565SJung-uk Kim 
yyyGenLeaf(int nAttrbs,int typeNum,long startP,long stopP,YYSTYPE * mylval)13058e022d3cSDag-Erling Smørgrav void yyyGenLeaf(int nAttrbs,int typeNum,long startP,long stopP,YYSTYPE *mylval)
13063e794565SJung-uk Kim   {yyyRCT *rcPdum;
13078e022d3cSDag-Erling Smørgrav    yyySIT **yyyOxStackItem = &mylval->yyyOxAttrbs.yyyOxStackItem;
13083e794565SJung-uk Kim    (*yyyOxStackItem) = (yyySIT *) malloc((size_t)sizeof(yyySIT));
13093e794565SJung-uk Kim    if ((*yyyOxStackItem) == (yyySIT *) NULL)
13103e794565SJung-uk Kim       yyyfatal("malloc error in ox yacc semantic stack space allocation\n");
13113e794565SJung-uk Kim    (*yyyOxStackItem)->node =
13123e794565SJung-uk Kim                           (yyyGNT *) malloc((size_t)sizeof(yyyGNT))
13133e794565SJung-uk Kim                          ;
13143e794565SJung-uk Kim    if ((*yyyOxStackItem)->node == (yyyGNT *) NULL)
13153e794565SJung-uk Kim       yyyfatal("malloc error in ox node space allocation\n");
13163e794565SJung-uk Kim    (*yyyOxStackItem)->solvedSAlist = yyyLambdaSSAL;
13173e794565SJung-uk Kim    (*yyyOxStackItem)->node->parent.stackref = *yyyOxStackItem;
13183e794565SJung-uk Kim    (*yyyOxStackItem)->node->parentIsStack = 1;
13193e794565SJung-uk Kim    (*yyyOxStackItem)->node->cLlen = 0;
13203e794565SJung-uk Kim    (*yyyOxStackItem)->node->cL = (yyyGNT **)NULL;
13213e794565SJung-uk Kim    (*yyyOxStackItem)->node->refCountListLen = nAttrbs;
13223e794565SJung-uk Kim    rcPdum = (*yyyOxStackItem)->node->refCountList =
13233e794565SJung-uk Kim             (yyyRCT *) calloc((size_t)nAttrbs, (size_t)sizeof(yyyRCT));
13243e794565SJung-uk Kim    if (rcPdum == (yyyRCT *) NULL)
13253e794565SJung-uk Kim       yyyfatal("malloc error in ox reference count list space allocation\n");
13263e794565SJung-uk Kim    while (startP < stopP) rcPdum[yyyLRCIL[startP++]] = 0;
13273e794565SJung-uk Kim    (*yyyOxStackItem)->node->prodNum = 0;
13283e794565SJung-uk Kim    (*yyyOxStackItem)->node->whichSym = 0;
13293e794565SJung-uk Kim   }
13303e794565SJung-uk Kim 
13313e794565SJung-uk Kim 
13323e794565SJung-uk Kim 
yyyabort(void)13333e794565SJung-uk Kim void yyyabort(void)
13343e794565SJung-uk Kim   {yyyYok = 0;
13353e794565SJung-uk Kim   }
13363e794565SJung-uk Kim 
13373e794565SJung-uk Kim 
13383e794565SJung-uk Kim 
13393e794565SJung-uk Kim 
13403e794565SJung-uk Kim 
13413e794565SJung-uk Kim #define yyyLastProdNum 8
13423e794565SJung-uk Kim 
13433e794565SJung-uk Kim 
13443e794565SJung-uk Kim #define yyyNsorts 1
13453e794565SJung-uk Kim 
13463e794565SJung-uk Kim 
13473e794565SJung-uk Kim int yyyProdsInd[] = {
13483e794565SJung-uk Kim    0,
13493e794565SJung-uk Kim    0,   2,   6,  10,  14,  18,  22,  24,
13503e794565SJung-uk Kim   26,
13513e794565SJung-uk Kim };
13523e794565SJung-uk Kim 
13533e794565SJung-uk Kim 
13543e794565SJung-uk Kim int yyyProds[][2] = {
13553e794565SJung-uk Kim { 116,   0},{ 462,   0},{ 462,   0},{ 462,   0},{ 412,   0},
13563e794565SJung-uk Kim { 462,   0},{ 462,   0},{ 462,   0},{ 420,   0},{ 462,   0},
13573e794565SJung-uk Kim { 462,   0},{ 462,   0},{ 452,   0},{ 462,   0},{ 462,   0},
13583e794565SJung-uk Kim { 462,   0},{ 436,   0},{ 462,   0},{ 462,   0},{ 396,   0},
13593e794565SJung-uk Kim { 462,   0},{ 404,   0},{ 462,   0},{ 619,   1},{ 462,   0},
13603e794565SJung-uk Kim { 567,   1},
13613e794565SJung-uk Kim };
13623e794565SJung-uk Kim 
13633e794565SJung-uk Kim 
13643e794565SJung-uk Kim int yyySortsInd[] = {
13653e794565SJung-uk Kim   0,
13663e794565SJung-uk Kim   0,
13673e794565SJung-uk Kim   1,
13683e794565SJung-uk Kim };
13693e794565SJung-uk Kim 
13703e794565SJung-uk Kim 
13713e794565SJung-uk Kim int yyySorts[] = {
13723e794565SJung-uk Kim   413,
13733e794565SJung-uk Kim };
13743e794565SJung-uk Kim 
13753e794565SJung-uk Kim 
13763e794565SJung-uk Kim 
13773e794565SJung-uk Kim char *yyyStringTab[] = {
13783e794565SJung-uk Kim 0,0,0,0,0,
13793e794565SJung-uk Kim 0,0,0,0,0,
13803e794565SJung-uk Kim 0,0,0,0,0,
13813e794565SJung-uk Kim 0,0,0,0,0,
13823e794565SJung-uk Kim 0,0,0,0,0,
13833e794565SJung-uk Kim 0,0,0,0,0,
13843e794565SJung-uk Kim 0,0,0,0,0,
13853e794565SJung-uk Kim 0,0,0,0,0,
13863e794565SJung-uk Kim 0,0,0,0,0,
13873e794565SJung-uk Kim 0,0,0,0,0,
13883e794565SJung-uk Kim 0,0,0,0,0,
13893e794565SJung-uk Kim 0,0,0,0,0,
13903e794565SJung-uk Kim 0,0,0,0,0,
13913e794565SJung-uk Kim 0,0,0,0,0,
13923e794565SJung-uk Kim 0,0,0,0,0,
13933e794565SJung-uk Kim 0,0,0,0,0,
13943e794565SJung-uk Kim 0,0,0,0,0,
13953e794565SJung-uk Kim 0,0,0,0,0,
13963e794565SJung-uk Kim 0,0,0,0,0,
13973e794565SJung-uk Kim 0,0,0,0,0,
13983e794565SJung-uk Kim 0,0,0,0,0,
13993e794565SJung-uk Kim 0,0,0,0,0,
14003e794565SJung-uk Kim 0,0,0,0,0,
14013e794565SJung-uk Kim 0,"s",0,0,0,
14023e794565SJung-uk Kim 0,0,"y",0,0,
14033e794565SJung-uk Kim 0,0,0,0,0,
14043e794565SJung-uk Kim 0,0,0,0,0,
14053e794565SJung-uk Kim 0,0,0,0,0,
14063e794565SJung-uk Kim 0,0,0,0,0,
14073e794565SJung-uk Kim 0,0,0,0,0,
14083e794565SJung-uk Kim 0,0,0,0,0,
14093e794565SJung-uk Kim 0,0,0,0,0,
14103e794565SJung-uk Kim 0,0,0,0,0,
14113e794565SJung-uk Kim 0,0,0,0,0,
14123e794565SJung-uk Kim 0,0,0,0,0,
14133e794565SJung-uk Kim 0,0,0,0,0,
14143e794565SJung-uk Kim 0,0,0,0,0,
14153e794565SJung-uk Kim 0,0,0,0,0,
14163e794565SJung-uk Kim 0,0,0,0,0,
14173e794565SJung-uk Kim 0,0,0,0,0,
14183e794565SJung-uk Kim 0,0,0,0,0,
14193e794565SJung-uk Kim 0,0,0,0,0,
14203e794565SJung-uk Kim 0,0,0,0,0,
14213e794565SJung-uk Kim 0,0,0,0,0,
14223e794565SJung-uk Kim 0,0,0,0,0,
14233e794565SJung-uk Kim 0,0,0,0,0,
14243e794565SJung-uk Kim 0,0,0,0,0,
14253e794565SJung-uk Kim 0,0,0,0,0,
14263e794565SJung-uk Kim 0,0,0,0,0,
14273e794565SJung-uk Kim 0,0,0,0,0,
14283e794565SJung-uk Kim 0,0,0,0,0,
14293e794565SJung-uk Kim 0,0,0,0,0,
14303e794565SJung-uk Kim 0,0,0,0,0,
14313e794565SJung-uk Kim 0,0,0,0,0,
14323e794565SJung-uk Kim 0,0,0,0,0,
14333e794565SJung-uk Kim 0,0,0,0,0,
14343e794565SJung-uk Kim 0,0,0,0,0,
14353e794565SJung-uk Kim 0,0,0,0,0,
14363e794565SJung-uk Kim 0,0,0,0,0,
14373e794565SJung-uk Kim 0,0,0,0,0,
14383e794565SJung-uk Kim 0,0,0,0,0,
14393e794565SJung-uk Kim 0,0,0,0,0,
14403e794565SJung-uk Kim 0,0,0,0,0,
14413e794565SJung-uk Kim 0,0,0,0,0,
14423e794565SJung-uk Kim 0,0,0,0,0,
14433e794565SJung-uk Kim 0,"LRpre",0,0,0,
14443e794565SJung-uk Kim 0,0,0,0,0,
14453e794565SJung-uk Kim 0,0,0,0,0,
14463e794565SJung-uk Kim 0,0,0,0,0,
14473e794565SJung-uk Kim 0,0,0,0,0,
14483e794565SJung-uk Kim 0,0,0,0,0,
14493e794565SJung-uk Kim 0,0,0,0,0,
14503e794565SJung-uk Kim 0,0,0,0,0,
14513e794565SJung-uk Kim 0,0,0,0,0,
14523e794565SJung-uk Kim 0,0,0,0,0,
14533e794565SJung-uk Kim 0,0,0,0,0,
14543e794565SJung-uk Kim 0,0,0,0,0,
14553e794565SJung-uk Kim 0,0,0,0,0,
14563e794565SJung-uk Kim 0,0,0,0,0,
14573e794565SJung-uk Kim 0,"'('",0,0,0,
14583e794565SJung-uk Kim 0,0,0,0,"')'",
14593e794565SJung-uk Kim 0,0,0,0,0,
14603e794565SJung-uk Kim 0,0,"'*'","lexeme",0,
14613e794565SJung-uk Kim 0,0,0,0,0,
14623e794565SJung-uk Kim "'+'",0,0,0,0,
14633e794565SJung-uk Kim 0,0,0,0,0,
14643e794565SJung-uk Kim 0,0,0,0,0,
14653e794565SJung-uk Kim 0,"'-'",0,0,0,
14663e794565SJung-uk Kim 0,0,0,0,0,
14673e794565SJung-uk Kim 0,0,0,0,0,
14683e794565SJung-uk Kim 0,0,"'/'",0,0,
14693e794565SJung-uk Kim 0,0,0,0,0,
14703e794565SJung-uk Kim 0,0,"expr",0,0,
14713e794565SJung-uk Kim 0,0,0,0,0,
14723e794565SJung-uk Kim 0,0,0,0,0,
14733e794565SJung-uk Kim 0,"printf",0,0,0,
14743e794565SJung-uk Kim 0,0,0,0,0,
14753e794565SJung-uk Kim 0,0,0,0,0,
14763e794565SJung-uk Kim 0,0,0,0,0,
14773e794565SJung-uk Kim 0,0,0,0,0,
14783e794565SJung-uk Kim 0,0,0,0,0,
14793e794565SJung-uk Kim 0,0,0,0,0,
14803e794565SJung-uk Kim 0,0,0,0,0,
14813e794565SJung-uk Kim 0,0,0,0,0,
14823e794565SJung-uk Kim 0,0,0,0,0,
14833e794565SJung-uk Kim 0,0,0,0,0,
14843e794565SJung-uk Kim 0,0,0,0,0,
14853e794565SJung-uk Kim 0,0,0,0,0,
14863e794565SJung-uk Kim 0,0,0,0,0,
14873e794565SJung-uk Kim 0,0,0,0,0,
14883e794565SJung-uk Kim 0,0,0,0,0,
14893e794565SJung-uk Kim 0,0,0,0,0,
14903e794565SJung-uk Kim 0,0,0,0,0,
14913e794565SJung-uk Kim 0,0,"CONST","LRpost",0,
14923e794565SJung-uk Kim 0,0,0,0,0,
14933e794565SJung-uk Kim 0,0,0,0,0,
14943e794565SJung-uk Kim 0,0,0,0,0,
14953e794565SJung-uk Kim 0,0,0,0,0,
14963e794565SJung-uk Kim 0,0,0,0,0,
14973e794565SJung-uk Kim 0,0,0,0,0,
14983e794565SJung-uk Kim 0,0,0,0,0,
14993e794565SJung-uk Kim 0,0,0,0,0,
15003e794565SJung-uk Kim 0,0,0,0,0,
15013e794565SJung-uk Kim 0,0,0,0,"ID",
15023e794565SJung-uk Kim 0,0,0,0,0,
15033e794565SJung-uk Kim 0,0,0,0,0,
15043e794565SJung-uk Kim 0,0,0,0,0,
15053e794565SJung-uk Kim 0,0,0,0,0,
15063e794565SJung-uk Kim 0,0,0,0,0,
15073e794565SJung-uk Kim 0,0,0,0,0,
15083e794565SJung-uk Kim 0,0,0,0,0,
15093e794565SJung-uk Kim 0,0,0,0,0,
15103e794565SJung-uk Kim 0,0,0,0,0,
15113e794565SJung-uk Kim 0,0,0,0,0,
15123e794565SJung-uk Kim 0,0,0,0,0,
15133e794565SJung-uk Kim 0,0,0,0,0,
15143e794565SJung-uk Kim 0,0,0,0,0,
15153e794565SJung-uk Kim 0,0,0,0,0,
15163e794565SJung-uk Kim 0,0,0,0,0,
15173e794565SJung-uk Kim 0,0,0,0,0,
15183e794565SJung-uk Kim 0,0,0,0,0,
15193e794565SJung-uk Kim 0,0,0,0,0,
15203e794565SJung-uk Kim 0,0,0,0,0,
15213e794565SJung-uk Kim 0,0,0,0,0,
15223e794565SJung-uk Kim 0,0,0,0,0,
15233e794565SJung-uk Kim 0,0,0,0,0,
15243e794565SJung-uk Kim 0,0,0,0,0,
15253e794565SJung-uk Kim 0,0,0,0,0,
15263e794565SJung-uk Kim 0,0,0,0,0,
15273e794565SJung-uk Kim 0,0,0,0,0,
15283e794565SJung-uk Kim 0,0,0,0,0,
15293e794565SJung-uk Kim 0,0,0,0,0,
15303e794565SJung-uk Kim 0,0,0,0,0,
15313e794565SJung-uk Kim 0,0,0,0,0,
15323e794565SJung-uk Kim 0,0,0,0,0,
15333e794565SJung-uk Kim 0,0,0,0,0,
15343e794565SJung-uk Kim 0,0,0,0,0,
15353e794565SJung-uk Kim 0,0,0,0,0,
15363e794565SJung-uk Kim 0,0,0,0,0,
15373e794565SJung-uk Kim 0,0,0,0,0,
15383e794565SJung-uk Kim 0,0,0,0,0,
15393e794565SJung-uk Kim 0,0,0,0,0,
15403e794565SJung-uk Kim 0,0,0,0,0,
15413e794565SJung-uk Kim 0,0,0,0,0,
15423e794565SJung-uk Kim 0,0,0,0,0,
15433e794565SJung-uk Kim 0,0,0,0,0,
15443e794565SJung-uk Kim 0,0,0,0,0,
15453e794565SJung-uk Kim 0,0,0,0,0,
15463e794565SJung-uk Kim 0,0,0,0,0,
15473e794565SJung-uk Kim 0,0,0,0,0,
15483e794565SJung-uk Kim 0,0,0,0,0,
15493e794565SJung-uk Kim 0,0,0,0,0,
15503e794565SJung-uk Kim 0,0,0,0,0,
15513e794565SJung-uk Kim 0,0,0,0,0,
15523e794565SJung-uk Kim 0,0,0,0,0,
15533e794565SJung-uk Kim 0,0,0,0,0,
15543e794565SJung-uk Kim 0,0,0,0,0,
15553e794565SJung-uk Kim 0,0,0,0,0,
15563e794565SJung-uk Kim 0,0,0,0,0,
15573e794565SJung-uk Kim 0,0,0,0,0,
15583e794565SJung-uk Kim 0,0,0,0,0,
15593e794565SJung-uk Kim 0,0,0,0,0,
15603e794565SJung-uk Kim 0,0,0,0,0,
15613e794565SJung-uk Kim 0,0,0,0,0,
15623e794565SJung-uk Kim 0,0,0,0,0,
15633e794565SJung-uk Kim 0,0,0,0,0,
15643e794565SJung-uk Kim 0,0,0,0,0,
15653e794565SJung-uk Kim 0,0,0,0,0,
15663e794565SJung-uk Kim 0,0,0,0,0,
15673e794565SJung-uk Kim 0,0,0,0,0,
15683e794565SJung-uk Kim 0,0,0,0,0,
15693e794565SJung-uk Kim 0,0,0,0,0,
15703e794565SJung-uk Kim 0,0,0,0,0,
15713e794565SJung-uk Kim 0,0,0,0,0,
15723e794565SJung-uk Kim 0,0,0,0,0,
15733e794565SJung-uk Kim 0,0,0,0,0,
15743e794565SJung-uk Kim 0,0,0,0,0,
15753e794565SJung-uk Kim 0,0,0,0,0,
15763e794565SJung-uk Kim 0,0,0,0,0,
15773e794565SJung-uk Kim 0,0,0,0,0,
15783e794565SJung-uk Kim 0,0,0,0,0,
15793e794565SJung-uk Kim 0,0,0,0,0,
15803e794565SJung-uk Kim 0,0,0,0,0,
15813e794565SJung-uk Kim 0,0,0,0,0,
15823e794565SJung-uk Kim 0,0,0,0,0,
15833e794565SJung-uk Kim 0,0,0,0,0,
15843e794565SJung-uk Kim 0,0,0,0,0,
15853e794565SJung-uk Kim 0,0,0,0,0,
15863e794565SJung-uk Kim 0,0,0,0,0,
15873e794565SJung-uk Kim 0,0,0,0,0,
15883e794565SJung-uk Kim 0,0,0,0,0,
15893e794565SJung-uk Kim 0,0,0,0,0,
15903e794565SJung-uk Kim 0,0,0,0,0,
15913e794565SJung-uk Kim 0,0,0,0,0,
15923e794565SJung-uk Kim 0,0,0,0,0,
15933e794565SJung-uk Kim 0,0,0,0,0,
15943e794565SJung-uk Kim 0,0,0,0,0,
15953e794565SJung-uk Kim 0,0,0,0,0,
15963e794565SJung-uk Kim 0,0,0,0,0,
15973e794565SJung-uk Kim 0,0,0,0,0,
15983e794565SJung-uk Kim 0,0,0,0,0,
15993e794565SJung-uk Kim 0,0,0,0,0,
16003e794565SJung-uk Kim 0,0,0,0,0,
16013e794565SJung-uk Kim 0,0,0,0,0,
16023e794565SJung-uk Kim 0,0,0,0,0,
16033e794565SJung-uk Kim 0,0,0,0,0,
16043e794565SJung-uk Kim 0,0,0,0,0,
16053e794565SJung-uk Kim 0,0,0,0,0,
16063e794565SJung-uk Kim 0,0,0,0,0,
16073e794565SJung-uk Kim 0,0,0,0,0,
16083e794565SJung-uk Kim 0,0,0,0,0,
16093e794565SJung-uk Kim 0,0,0,0,0,
16103e794565SJung-uk Kim 0,0,0,0,0,
16113e794565SJung-uk Kim 0,0,0,0,0,
16123e794565SJung-uk Kim 0,0,0,0,0,
16133e794565SJung-uk Kim 0,0,0,0,0,
16143e794565SJung-uk Kim 0,0,0,0,0,
16153e794565SJung-uk Kim 0,0,0,0,0,
16163e794565SJung-uk Kim 0,0,0,0,0,
16173e794565SJung-uk Kim 0,0,0,0,0,
16183e794565SJung-uk Kim 0,0,0,0,0,
16193e794565SJung-uk Kim 0,0,0,0,0,
16203e794565SJung-uk Kim 0,0,0,0,0,
16213e794565SJung-uk Kim 0,0,0,0,0,
16223e794565SJung-uk Kim 0,0,0,0,0,
16233e794565SJung-uk Kim 0,0,0,0,0,
16243e794565SJung-uk Kim 0,
16253e794565SJung-uk Kim };
16263e794565SJung-uk Kim 
16273e794565SJung-uk Kim 
16283e794565SJung-uk Kim 
16293e794565SJung-uk Kim #define yyySizeofProd(num) (yyyProdsInd[(num)+1] - yyyProdsInd[(num)])
16303e794565SJung-uk Kim 
16313e794565SJung-uk Kim #define yyyGSoccurStr(prodNum,symPos) \
16323e794565SJung-uk Kim    (yyyStringTab[yyyProds[yyyProdsInd[(prodNum)] + (symPos)][0]])
16333e794565SJung-uk Kim 
16343e794565SJung-uk Kim #define yyySizeofSort(num) (yyySortsInd[(num)+1] - yyySortsInd[(num)])
16353e794565SJung-uk Kim 
16363e794565SJung-uk Kim #define yyySortOf(prodNum,symPos) \
16373e794565SJung-uk Kim   (yyyProds[yyyProdsInd[(prodNum)] + (symPos)][1])
16383e794565SJung-uk Kim 
16393e794565SJung-uk Kim #define yyyAttrbStr(prodNum,symPos,attrbNum)                      \
16403e794565SJung-uk Kim   (yyyStringTab[yyySorts[yyySortsInd[yyySortOf(prodNum,symPos)] + \
16413e794565SJung-uk Kim                          (attrbNum)                               \
16423e794565SJung-uk Kim                         ]                                         \
16433e794565SJung-uk Kim                ]                                                  \
16443e794565SJung-uk Kim   )
16453e794565SJung-uk Kim 
16463e794565SJung-uk Kim 
16473e794565SJung-uk Kim 
yyyShowProd(int i)16483e794565SJung-uk Kim void yyyShowProd(int i)
16493e794565SJung-uk Kim   {int j,nSyms;
16503e794565SJung-uk Kim 
16513e794565SJung-uk Kim    nSyms = yyySizeofProd(i);
16523e794565SJung-uk Kim    for (j=0; j<nSyms; j++)
16533e794565SJung-uk Kim      {
16543e794565SJung-uk Kim       fprintf(stderr,"%s",yyyGSoccurStr(i,j));
16553e794565SJung-uk Kim       if (j == 0) fputs(" : ",stderr); else putc(' ',stderr);
16563e794565SJung-uk Kim      }
16573e794565SJung-uk Kim    fputs(";\n",stderr);
16583e794565SJung-uk Kim   }
16593e794565SJung-uk Kim 
16603e794565SJung-uk Kim 
16613e794565SJung-uk Kim 
yyyShowProds()16623e794565SJung-uk Kim void yyyShowProds()
16633e794565SJung-uk Kim   {int i; for (i=1; i<=yyyLastProdNum; i++) yyyShowProd(i);}
16643e794565SJung-uk Kim 
16653e794565SJung-uk Kim 
16663e794565SJung-uk Kim 
yyyShowSymsAndSorts()16673e794565SJung-uk Kim void yyyShowSymsAndSorts()
16683e794565SJung-uk Kim   {int i;
16693e794565SJung-uk Kim 
16703e794565SJung-uk Kim    for (i=1; i<=yyyLastProdNum; i++)
16713e794565SJung-uk Kim      {int j, nSyms;
16723e794565SJung-uk Kim 
16733e794565SJung-uk Kim       fprintf(stderr,
16743e794565SJung-uk Kim               "\n\n\n---------------------------------- %3.1d\n",i);
16753e794565SJung-uk Kim       /* yyyShowProd(i); */
16763e794565SJung-uk Kim       nSyms = yyySizeofProd(i);
16773e794565SJung-uk Kim       for (j=0; j<nSyms; j++)
16783e794565SJung-uk Kim         {int k, sortSize;
16793e794565SJung-uk Kim 
16803e794565SJung-uk Kim          fprintf(stderr,"%s\n",yyyGSoccurStr(i,j));
16813e794565SJung-uk Kim          sortSize = yyySizeofSort(yyySortOf(i,j));
16823e794565SJung-uk Kim          for (k=0; k<sortSize; k++)
16833e794565SJung-uk Kim             fprintf(stderr,"  %s\n",yyyAttrbStr(i,j,k));
16843e794565SJung-uk Kim          if (j == 0) fputs("->\n",stderr);
16853e794565SJung-uk Kim               else
16863e794565SJung-uk Kim               putc('\n',stderr);
16873e794565SJung-uk Kim         }
16883e794565SJung-uk Kim      }
16893e794565SJung-uk Kim   }
16903e794565SJung-uk Kim 
16913e794565SJung-uk Kim 
16923e794565SJung-uk Kim 
yyyCheckNodeInstancesSolved(yyyGNT * np)16933e794565SJung-uk Kim void yyyCheckNodeInstancesSolved(yyyGNT *np)
16943e794565SJung-uk Kim   {int mysort,sortSize,i,prodNum,symPos,inTerminalNode;
16953e794565SJung-uk Kim    int nUnsolvedInsts = 0;
16963e794565SJung-uk Kim 
16973e794565SJung-uk Kim    if (np->prodNum != 0)
16983e794565SJung-uk Kim      {inTerminalNode = 0;
16993e794565SJung-uk Kim       prodNum = np->prodNum;
17003e794565SJung-uk Kim       symPos = 0;
17013e794565SJung-uk Kim      }
17023e794565SJung-uk Kim    else
17033e794565SJung-uk Kim      {inTerminalNode = 1;
17043e794565SJung-uk Kim       prodNum = np->parent.noderef->prodNum;
17053e794565SJung-uk Kim       symPos = np->whichSym;
17063e794565SJung-uk Kim      }
17073e794565SJung-uk Kim    mysort = yyySortOf(prodNum,symPos);
17083e794565SJung-uk Kim    sortSize = yyySizeofSort(mysort);
17093e794565SJung-uk Kim    for (i=0; i<sortSize; i++)
17103e794565SJung-uk Kim      if ((np->refCountList)[i] != 0) nUnsolvedInsts += 1;
17113e794565SJung-uk Kim    if (nUnsolvedInsts)
17123e794565SJung-uk Kim      {fprintf(stderr,
17133e794565SJung-uk Kim       "\nFound node that has %d unsolved attribute instance(s).\n",
17143e794565SJung-uk Kim               nUnsolvedInsts
17153e794565SJung-uk Kim              );
17163e794565SJung-uk Kim       fprintf(stderr,"Node is labeled \"%s\".\n",
17173e794565SJung-uk Kim              yyyGSoccurStr(prodNum,symPos));
17183e794565SJung-uk Kim       if (inTerminalNode)
17193e794565SJung-uk Kim         {fputs("Node is terminal.  Its parent production is:\n  ",stderr);
17203e794565SJung-uk Kim          yyyShowProd(prodNum);
17213e794565SJung-uk Kim         }
17223e794565SJung-uk Kim       else
17233e794565SJung-uk Kim         {fputs("Node is nonterminal.  ",stderr);
17243e794565SJung-uk Kim          if (!(np->parentIsStack))
17253e794565SJung-uk Kim            {fprintf(stderr,
17263e794565SJung-uk Kim                     "Node is %dth child in its parent production:\n  ",
17273e794565SJung-uk Kim                    np->whichSym
17283e794565SJung-uk Kim                   );
17293e794565SJung-uk Kim             yyyShowProd(np->parent.noderef->prodNum);
17303e794565SJung-uk Kim            }
17313e794565SJung-uk Kim          fputs("Node is on left hand side of this production:\n  ",stderr);
17323e794565SJung-uk Kim          yyyShowProd(np->prodNum);
17333e794565SJung-uk Kim         }
17343e794565SJung-uk Kim       fputs("The following instances are unsolved:\n",stderr);
17353e794565SJung-uk Kim       for (i=0; i<sortSize; i++)
17363e794565SJung-uk Kim         if ((np->refCountList)[i] != 0)
17373e794565SJung-uk Kim           fprintf(stderr,"     %-16s still has %1d dependencies.\n",
17383e794565SJung-uk Kim                   yyyAttrbStr(prodNum,symPos,i),(np->refCountList)[i]);
17393e794565SJung-uk Kim      }
17403e794565SJung-uk Kim   }
17413e794565SJung-uk Kim 
17423e794565SJung-uk Kim 
17433e794565SJung-uk Kim 
yyyCheckUnsolvedInstTrav(yyyGNT * pNode,long * nNZrc,long * cycleSum)17443e794565SJung-uk Kim void yyyCheckUnsolvedInstTrav(yyyGNT *pNode,long *nNZrc,long *cycleSum)
17453e794565SJung-uk Kim   {yyyGNT **yyyCLpdum;
17463e794565SJung-uk Kim    yyyRCT *rcp;
17473e794565SJung-uk Kim    int i;
17483e794565SJung-uk Kim 
17493e794565SJung-uk Kim    /* visit the refCountList of each node in the tree, and sum the non-zero refCounts */
17503e794565SJung-uk Kim    rcp = pNode->refCountList;
17513e794565SJung-uk Kim    i = pNode->refCountListLen;
17523e794565SJung-uk Kim    while (i--)
17533e794565SJung-uk Kim       if (*rcp++) {*cycleSum += *(rcp - 1); (*nNZrc)++;}
17543e794565SJung-uk Kim    yyyCLpdum = pNode->cL;
17553e794565SJung-uk Kim    i = pNode->cLlen;
17563e794565SJung-uk Kim    while (i--)
17573e794565SJung-uk Kim      {
17583e794565SJung-uk Kim       yyyCheckUnsolvedInstTrav(*yyyCLpdum,nNZrc,cycleSum);
17593e794565SJung-uk Kim       yyyCLpdum++;
17603e794565SJung-uk Kim      }
17613e794565SJung-uk Kim   }
17623e794565SJung-uk Kim 
17633e794565SJung-uk Kim 
17643e794565SJung-uk Kim 
yyyUnsolvedInstSearchTravAux(yyyGNT * pNode)17653e794565SJung-uk Kim void yyyUnsolvedInstSearchTravAux(yyyGNT *pNode)
17663e794565SJung-uk Kim   {yyyGNT **yyyCLpdum;
17673e794565SJung-uk Kim    int i;
17683e794565SJung-uk Kim 
17693e794565SJung-uk Kim    yyyCheckNodeInstancesSolved(pNode);
17703e794565SJung-uk Kim    yyyCLpdum = pNode->cL;
17713e794565SJung-uk Kim    i = pNode->cLlen;
17723e794565SJung-uk Kim    while (i--)
17733e794565SJung-uk Kim      {
17743e794565SJung-uk Kim       yyyUnsolvedInstSearchTravAux(*yyyCLpdum);
17753e794565SJung-uk Kim       yyyCLpdum++;
17763e794565SJung-uk Kim      }
17773e794565SJung-uk Kim   }
17783e794565SJung-uk Kim 
17793e794565SJung-uk Kim 
17803e794565SJung-uk Kim 
yyyUnsolvedInstSearchTrav(yyyGNT * pNode)17813e794565SJung-uk Kim void yyyUnsolvedInstSearchTrav(yyyGNT *pNode)
17823e794565SJung-uk Kim   {yyyGNT **yyyCLpdum;
17833e794565SJung-uk Kim    int i;
17843e794565SJung-uk Kim 
17853e794565SJung-uk Kim    yyyCLpdum = pNode->cL;
17863e794565SJung-uk Kim    i = pNode->cLlen;
17873e794565SJung-uk Kim    while (i--)
17883e794565SJung-uk Kim      {
17893e794565SJung-uk Kim       yyyUnsolvedInstSearchTravAux(*yyyCLpdum);
17903e794565SJung-uk Kim       yyyCLpdum++;
17913e794565SJung-uk Kim      }
17923e794565SJung-uk Kim   }
17933e794565SJung-uk Kim 
17943e794565SJung-uk Kim 
17953e794565SJung-uk Kim 
1796b53bb29fSJung-uk Kim #line 1797 "expr.oxout.tab.c"
17973e794565SJung-uk Kim 
17983e794565SJung-uk Kim /* For use in generated program */
17993e794565SJung-uk Kim #define yydepth (int)(yystack.s_mark - yystack.s_base)
18003e794565SJung-uk Kim #if YYBTYACC
18013e794565SJung-uk Kim #define yytrial (yyps->save)
18023e794565SJung-uk Kim #endif /* YYBTYACC */
18033e794565SJung-uk Kim 
18043e794565SJung-uk Kim #if YYDEBUG
18053e794565SJung-uk Kim #include <stdio.h>	/* needed for printf */
18063e794565SJung-uk Kim #endif
18073e794565SJung-uk Kim 
18083e794565SJung-uk Kim #include <stdlib.h>	/* needed for malloc, etc */
18093e794565SJung-uk Kim #include <string.h>	/* needed for memset */
18103e794565SJung-uk Kim 
18113e794565SJung-uk Kim /* allocate initial stack or double stack size, up to YYMAXDEPTH */
yygrowstack(YYSTACKDATA * data)18123e794565SJung-uk Kim static int yygrowstack(YYSTACKDATA *data)
18133e794565SJung-uk Kim {
18143e794565SJung-uk Kim     int i;
18153e794565SJung-uk Kim     unsigned newsize;
18163e794565SJung-uk Kim     YYINT *newss;
18173e794565SJung-uk Kim     YYSTYPE *newvs;
18183e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
18193e794565SJung-uk Kim     YYLTYPE *newps;
18203e794565SJung-uk Kim #endif
18213e794565SJung-uk Kim 
18223e794565SJung-uk Kim     if ((newsize = data->stacksize) == 0)
18233e794565SJung-uk Kim         newsize = YYINITSTACKSIZE;
18243e794565SJung-uk Kim     else if (newsize >= YYMAXDEPTH)
18253e794565SJung-uk Kim         return YYENOMEM;
18263e794565SJung-uk Kim     else if ((newsize *= 2) > YYMAXDEPTH)
18273e794565SJung-uk Kim         newsize = YYMAXDEPTH;
18283e794565SJung-uk Kim 
18293e794565SJung-uk Kim     i = (int) (data->s_mark - data->s_base);
18303e794565SJung-uk Kim     newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss));
1831bf80e08eSJung-uk Kim     if (newss == NULL)
18323e794565SJung-uk Kim         return YYENOMEM;
18333e794565SJung-uk Kim 
18343e794565SJung-uk Kim     data->s_base = newss;
18353e794565SJung-uk Kim     data->s_mark = newss + i;
18363e794565SJung-uk Kim 
18373e794565SJung-uk Kim     newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));
1838bf80e08eSJung-uk Kim     if (newvs == NULL)
18393e794565SJung-uk Kim         return YYENOMEM;
18403e794565SJung-uk Kim 
18413e794565SJung-uk Kim     data->l_base = newvs;
18423e794565SJung-uk Kim     data->l_mark = newvs + i;
18433e794565SJung-uk Kim 
18443e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
18453e794565SJung-uk Kim     newps = (YYLTYPE *)realloc(data->p_base, newsize * sizeof(*newps));
1846bf80e08eSJung-uk Kim     if (newps == NULL)
18473e794565SJung-uk Kim         return YYENOMEM;
18483e794565SJung-uk Kim 
18493e794565SJung-uk Kim     data->p_base = newps;
18503e794565SJung-uk Kim     data->p_mark = newps + i;
18513e794565SJung-uk Kim #endif
18523e794565SJung-uk Kim 
18533e794565SJung-uk Kim     data->stacksize = newsize;
18543e794565SJung-uk Kim     data->s_last = data->s_base + newsize - 1;
18553e794565SJung-uk Kim 
18563e794565SJung-uk Kim #if YYDEBUG
18573e794565SJung-uk Kim     if (yydebug)
18583e794565SJung-uk Kim         fprintf(stderr, "%sdebug: stack size increased to %d\n", YYPREFIX, newsize);
18593e794565SJung-uk Kim #endif
18603e794565SJung-uk Kim     return 0;
18613e794565SJung-uk Kim }
18623e794565SJung-uk Kim 
18633e794565SJung-uk Kim #if YYPURE || defined(YY_NO_LEAKS)
yyfreestack(YYSTACKDATA * data)18643e794565SJung-uk Kim static void yyfreestack(YYSTACKDATA *data)
18653e794565SJung-uk Kim {
18663e794565SJung-uk Kim     free(data->s_base);
18673e794565SJung-uk Kim     free(data->l_base);
18683e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
18693e794565SJung-uk Kim     free(data->p_base);
18703e794565SJung-uk Kim #endif
18713e794565SJung-uk Kim     memset(data, 0, sizeof(*data));
18723e794565SJung-uk Kim }
18733e794565SJung-uk Kim #else
18743e794565SJung-uk Kim #define yyfreestack(data) /* nothing */
18753e794565SJung-uk Kim #endif /* YYPURE || defined(YY_NO_LEAKS) */
18763e794565SJung-uk Kim #if YYBTYACC
18773e794565SJung-uk Kim 
18783e794565SJung-uk Kim static YYParseState *
yyNewState(unsigned size)18793e794565SJung-uk Kim yyNewState(unsigned size)
18803e794565SJung-uk Kim {
18813e794565SJung-uk Kim     YYParseState *p = (YYParseState *) malloc(sizeof(YYParseState));
18823e794565SJung-uk Kim     if (p == NULL) return NULL;
18833e794565SJung-uk Kim 
18843e794565SJung-uk Kim     p->yystack.stacksize = size;
18853e794565SJung-uk Kim     if (size == 0)
18863e794565SJung-uk Kim     {
18873e794565SJung-uk Kim         p->yystack.s_base = NULL;
18883e794565SJung-uk Kim         p->yystack.l_base = NULL;
18893e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
18903e794565SJung-uk Kim         p->yystack.p_base = NULL;
18913e794565SJung-uk Kim #endif
18923e794565SJung-uk Kim         return p;
18933e794565SJung-uk Kim     }
18943e794565SJung-uk Kim     p->yystack.s_base    = (YYINT *) malloc(size * sizeof(YYINT));
18953e794565SJung-uk Kim     if (p->yystack.s_base == NULL) return NULL;
18963e794565SJung-uk Kim     p->yystack.l_base    = (YYSTYPE *) malloc(size * sizeof(YYSTYPE));
18973e794565SJung-uk Kim     if (p->yystack.l_base == NULL) return NULL;
18983e794565SJung-uk Kim     memset(p->yystack.l_base, 0, size * sizeof(YYSTYPE));
18993e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
19003e794565SJung-uk Kim     p->yystack.p_base    = (YYLTYPE *) malloc(size * sizeof(YYLTYPE));
19013e794565SJung-uk Kim     if (p->yystack.p_base == NULL) return NULL;
19023e794565SJung-uk Kim     memset(p->yystack.p_base, 0, size * sizeof(YYLTYPE));
19033e794565SJung-uk Kim #endif
19043e794565SJung-uk Kim 
19053e794565SJung-uk Kim     return p;
19063e794565SJung-uk Kim }
19073e794565SJung-uk Kim 
19083e794565SJung-uk Kim static void
yyFreeState(YYParseState * p)19093e794565SJung-uk Kim yyFreeState(YYParseState *p)
19103e794565SJung-uk Kim {
19113e794565SJung-uk Kim     yyfreestack(&p->yystack);
19123e794565SJung-uk Kim     free(p);
19133e794565SJung-uk Kim }
19143e794565SJung-uk Kim #endif /* YYBTYACC */
19153e794565SJung-uk Kim 
19163e794565SJung-uk Kim #define YYABORT  goto yyabort
19173e794565SJung-uk Kim #define YYREJECT goto yyabort
19183e794565SJung-uk Kim #define YYACCEPT goto yyaccept
19193e794565SJung-uk Kim #define YYERROR  goto yyerrlab
19203e794565SJung-uk Kim #if YYBTYACC
19213e794565SJung-uk Kim #define YYVALID        do { if (yyps->save)            goto yyvalid; } while(0)
19223e794565SJung-uk Kim #define YYVALID_NESTED do { if (yyps->save && \
19233e794565SJung-uk Kim                                 yyps->save->save == 0) goto yyvalid; } while(0)
19243e794565SJung-uk Kim #endif /* YYBTYACC */
19253e794565SJung-uk Kim 
19263e794565SJung-uk Kim int
YYPARSE_DECL()19273e794565SJung-uk Kim YYPARSE_DECL()
19283e794565SJung-uk Kim {
19293e794565SJung-uk Kim     int yym, yyn, yystate, yyresult;
19303e794565SJung-uk Kim #if YYBTYACC
19313e794565SJung-uk Kim     int yynewerrflag;
19323e794565SJung-uk Kim     YYParseState *yyerrctx = NULL;
19333e794565SJung-uk Kim #endif /* YYBTYACC */
19343e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1935b53bb29fSJung-uk Kim     YYLTYPE  yyerror_loc_range[3]; /* position of error start/end (0 unused) */
19363e794565SJung-uk Kim #endif
19373e794565SJung-uk Kim #if YYDEBUG
19383e794565SJung-uk Kim     const char *yys;
19393e794565SJung-uk Kim 
1940bf80e08eSJung-uk Kim     if ((yys = getenv("YYDEBUG")) != NULL)
19413e794565SJung-uk Kim     {
19423e794565SJung-uk Kim         yyn = *yys;
19433e794565SJung-uk Kim         if (yyn >= '0' && yyn <= '9')
19443e794565SJung-uk Kim             yydebug = yyn - '0';
19453e794565SJung-uk Kim     }
19463e794565SJung-uk Kim     if (yydebug)
19473e794565SJung-uk Kim         fprintf(stderr, "%sdebug[<# of symbols on state stack>]\n", YYPREFIX);
19483e794565SJung-uk Kim #endif
19496166fdceSJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
19506166fdceSJung-uk Kim     memset(yyerror_loc_range, 0, sizeof(yyerror_loc_range));
19516166fdceSJung-uk Kim #endif
19523e794565SJung-uk Kim 
19533e794565SJung-uk Kim #if YYBTYACC
19543e794565SJung-uk Kim     yyps = yyNewState(0); if (yyps == 0) goto yyenomem;
19553e794565SJung-uk Kim     yyps->save = 0;
19563e794565SJung-uk Kim #endif /* YYBTYACC */
19573e794565SJung-uk Kim     yym = 0;
19588e022d3cSDag-Erling Smørgrav     /* yyn is set below */
19593e794565SJung-uk Kim     yynerrs = 0;
19603e794565SJung-uk Kim     yyerrflag = 0;
19613e794565SJung-uk Kim     yychar = YYEMPTY;
19623e794565SJung-uk Kim     yystate = 0;
19633e794565SJung-uk Kim 
19643e794565SJung-uk Kim #if YYPURE
19653e794565SJung-uk Kim     memset(&yystack, 0, sizeof(yystack));
19663e794565SJung-uk Kim #endif
19673e794565SJung-uk Kim 
19683e794565SJung-uk Kim     if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
19693e794565SJung-uk Kim     yystack.s_mark = yystack.s_base;
19703e794565SJung-uk Kim     yystack.l_mark = yystack.l_base;
19713e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
19723e794565SJung-uk Kim     yystack.p_mark = yystack.p_base;
19733e794565SJung-uk Kim #endif
19743e794565SJung-uk Kim     yystate = 0;
19753e794565SJung-uk Kim     *yystack.s_mark = 0;
19763e794565SJung-uk Kim 
19773e794565SJung-uk Kim yyloop:
19783e794565SJung-uk Kim     if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
19793e794565SJung-uk Kim     if (yychar < 0)
19803e794565SJung-uk Kim     {
19813e794565SJung-uk Kim #if YYBTYACC
19823e794565SJung-uk Kim         do {
19833e794565SJung-uk Kim         if (yylvp < yylve)
19843e794565SJung-uk Kim         {
19853e794565SJung-uk Kim             /* we're currently re-reading tokens */
19863e794565SJung-uk Kim             yylval = *yylvp++;
19873e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
19883e794565SJung-uk Kim             yylloc = *yylpp++;
19893e794565SJung-uk Kim #endif
19903e794565SJung-uk Kim             yychar = *yylexp++;
19913e794565SJung-uk Kim             break;
19923e794565SJung-uk Kim         }
19933e794565SJung-uk Kim         if (yyps->save)
19943e794565SJung-uk Kim         {
19953e794565SJung-uk Kim             /* in trial mode; save scanner results for future parse attempts */
19963e794565SJung-uk Kim             if (yylvp == yylvlim)
19973e794565SJung-uk Kim             {   /* Enlarge lexical value queue */
19983e794565SJung-uk Kim                 size_t p = (size_t) (yylvp - yylvals);
19993e794565SJung-uk Kim                 size_t s = (size_t) (yylvlim - yylvals);
20003e794565SJung-uk Kim 
20013e794565SJung-uk Kim                 s += YYLVQUEUEGROWTH;
2002b53bb29fSJung-uk Kim                 if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
2003b53bb29fSJung-uk Kim                 if ((yylvals   = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
20043e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
2005b53bb29fSJung-uk Kim                 if ((yylpsns   = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
20063e794565SJung-uk Kim #endif
20073e794565SJung-uk Kim                 yylvp   = yylve = yylvals + p;
20083e794565SJung-uk Kim                 yylvlim = yylvals + s;
20093e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
20103e794565SJung-uk Kim                 yylpp   = yylpe = yylpsns + p;
20113e794565SJung-uk Kim                 yylplim = yylpsns + s;
20123e794565SJung-uk Kim #endif
20133e794565SJung-uk Kim                 yylexp  = yylexemes + p;
20143e794565SJung-uk Kim             }
20153e794565SJung-uk Kim             *yylexp = (YYINT) YYLEX;
20163e794565SJung-uk Kim             *yylvp++ = yylval;
20173e794565SJung-uk Kim             yylve++;
20183e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
20193e794565SJung-uk Kim             *yylpp++ = yylloc;
20203e794565SJung-uk Kim             yylpe++;
20213e794565SJung-uk Kim #endif
20223e794565SJung-uk Kim             yychar = *yylexp++;
20233e794565SJung-uk Kim             break;
20243e794565SJung-uk Kim         }
20253e794565SJung-uk Kim         /* normal operation, no conflict encountered */
20263e794565SJung-uk Kim #endif /* YYBTYACC */
20273e794565SJung-uk Kim         yychar = YYLEX;
20283e794565SJung-uk Kim #if YYBTYACC
20293e794565SJung-uk Kim         } while (0);
20303e794565SJung-uk Kim #endif /* YYBTYACC */
20313e794565SJung-uk Kim         if (yychar < 0) yychar = YYEOF;
20323e794565SJung-uk Kim #if YYDEBUG
20333e794565SJung-uk Kim         if (yydebug)
20343e794565SJung-uk Kim         {
20353e794565SJung-uk Kim             if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
20363e794565SJung-uk Kim             fprintf(stderr, "%s[%d]: state %d, reading token %d (%s)",
20373e794565SJung-uk Kim                             YYDEBUGSTR, yydepth, yystate, yychar, yys);
20383e794565SJung-uk Kim #ifdef YYSTYPE_TOSTRING
20393e794565SJung-uk Kim #if YYBTYACC
20403e794565SJung-uk Kim             if (!yytrial)
20413e794565SJung-uk Kim #endif /* YYBTYACC */
20423e794565SJung-uk Kim                 fprintf(stderr, " <%s>", YYSTYPE_TOSTRING(yychar, yylval));
20433e794565SJung-uk Kim #endif
20443e794565SJung-uk Kim             fputc('\n', stderr);
20453e794565SJung-uk Kim         }
20463e794565SJung-uk Kim #endif
20473e794565SJung-uk Kim     }
20483e794565SJung-uk Kim #if YYBTYACC
20493e794565SJung-uk Kim 
20503e794565SJung-uk Kim     /* Do we have a conflict? */
20513e794565SJung-uk Kim     if (((yyn = yycindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
20523e794565SJung-uk Kim         yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
20533e794565SJung-uk Kim     {
20543e794565SJung-uk Kim         YYINT ctry;
20553e794565SJung-uk Kim 
20563e794565SJung-uk Kim         if (yypath)
20573e794565SJung-uk Kim         {
20583e794565SJung-uk Kim             YYParseState *save;
20593e794565SJung-uk Kim #if YYDEBUG
20603e794565SJung-uk Kim             if (yydebug)
20613e794565SJung-uk Kim                 fprintf(stderr, "%s[%d]: CONFLICT in state %d: following successful trial parse\n",
20623e794565SJung-uk Kim                                 YYDEBUGSTR, yydepth, yystate);
20633e794565SJung-uk Kim #endif
20643e794565SJung-uk Kim             /* Switch to the next conflict context */
20653e794565SJung-uk Kim             save = yypath;
20663e794565SJung-uk Kim             yypath = save->save;
20673e794565SJung-uk Kim             save->save = NULL;
20683e794565SJung-uk Kim             ctry = save->ctry;
20693e794565SJung-uk Kim             if (save->state != yystate) YYABORT;
20703e794565SJung-uk Kim             yyFreeState(save);
20713e794565SJung-uk Kim 
20723e794565SJung-uk Kim         }
20733e794565SJung-uk Kim         else
20743e794565SJung-uk Kim         {
20753e794565SJung-uk Kim 
20763e794565SJung-uk Kim             /* Unresolved conflict - start/continue trial parse */
20773e794565SJung-uk Kim             YYParseState *save;
20783e794565SJung-uk Kim #if YYDEBUG
20793e794565SJung-uk Kim             if (yydebug)
20803e794565SJung-uk Kim             {
20813e794565SJung-uk Kim                 fprintf(stderr, "%s[%d]: CONFLICT in state %d. ", YYDEBUGSTR, yydepth, yystate);
20823e794565SJung-uk Kim                 if (yyps->save)
20833e794565SJung-uk Kim                     fputs("ALREADY in conflict, continuing trial parse.\n", stderr);
20843e794565SJung-uk Kim                 else
20853e794565SJung-uk Kim                     fputs("Starting trial parse.\n", stderr);
20863e794565SJung-uk Kim             }
20873e794565SJung-uk Kim #endif
20883e794565SJung-uk Kim             save                  = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1));
20893e794565SJung-uk Kim             if (save == NULL) goto yyenomem;
20903e794565SJung-uk Kim             save->save            = yyps->save;
20913e794565SJung-uk Kim             save->state           = yystate;
20923e794565SJung-uk Kim             save->errflag         = yyerrflag;
20933e794565SJung-uk Kim             save->yystack.s_mark  = save->yystack.s_base + (yystack.s_mark - yystack.s_base);
20943e794565SJung-uk Kim             memcpy (save->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
20953e794565SJung-uk Kim             save->yystack.l_mark  = save->yystack.l_base + (yystack.l_mark - yystack.l_base);
20963e794565SJung-uk Kim             memcpy (save->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
20973e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
20983e794565SJung-uk Kim             save->yystack.p_mark  = save->yystack.p_base + (yystack.p_mark - yystack.p_base);
20993e794565SJung-uk Kim             memcpy (save->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
21003e794565SJung-uk Kim #endif
21013e794565SJung-uk Kim             ctry                  = yytable[yyn];
21023e794565SJung-uk Kim             if (yyctable[ctry] == -1)
21033e794565SJung-uk Kim             {
21043e794565SJung-uk Kim #if YYDEBUG
21053e794565SJung-uk Kim                 if (yydebug && yychar >= YYEOF)
21063e794565SJung-uk Kim                     fprintf(stderr, "%s[%d]: backtracking 1 token\n", YYDEBUGSTR, yydepth);
21073e794565SJung-uk Kim #endif
21083e794565SJung-uk Kim                 ctry++;
21093e794565SJung-uk Kim             }
21103e794565SJung-uk Kim             save->ctry = ctry;
21113e794565SJung-uk Kim             if (yyps->save == NULL)
21123e794565SJung-uk Kim             {
21133e794565SJung-uk Kim                 /* If this is a first conflict in the stack, start saving lexemes */
21143e794565SJung-uk Kim                 if (!yylexemes)
21153e794565SJung-uk Kim                 {
2116b53bb29fSJung-uk Kim                     yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
21173e794565SJung-uk Kim                     if (yylexemes == NULL) goto yyenomem;
21183e794565SJung-uk Kim                     yylvals   = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
21193e794565SJung-uk Kim                     if (yylvals == NULL) goto yyenomem;
21203e794565SJung-uk Kim                     yylvlim   = yylvals + YYLVQUEUEGROWTH;
21213e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
21223e794565SJung-uk Kim                     yylpsns   = (YYLTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYLTYPE));
21233e794565SJung-uk Kim                     if (yylpsns == NULL) goto yyenomem;
21243e794565SJung-uk Kim                     yylplim   = yylpsns + YYLVQUEUEGROWTH;
21253e794565SJung-uk Kim #endif
21263e794565SJung-uk Kim                 }
21273e794565SJung-uk Kim                 if (yylvp == yylve)
21283e794565SJung-uk Kim                 {
21293e794565SJung-uk Kim                     yylvp  = yylve = yylvals;
21303e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
21313e794565SJung-uk Kim                     yylpp  = yylpe = yylpsns;
21323e794565SJung-uk Kim #endif
21333e794565SJung-uk Kim                     yylexp = yylexemes;
21343e794565SJung-uk Kim                     if (yychar >= YYEOF)
21353e794565SJung-uk Kim                     {
21363e794565SJung-uk Kim                         *yylve++ = yylval;
21373e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
21383e794565SJung-uk Kim                         *yylpe++ = yylloc;
21393e794565SJung-uk Kim #endif
21403e794565SJung-uk Kim                         *yylexp  = (YYINT) yychar;
21413e794565SJung-uk Kim                         yychar   = YYEMPTY;
21423e794565SJung-uk Kim                     }
21433e794565SJung-uk Kim                 }
21443e794565SJung-uk Kim             }
21453e794565SJung-uk Kim             if (yychar >= YYEOF)
21463e794565SJung-uk Kim             {
21473e794565SJung-uk Kim                 yylvp--;
21483e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
21493e794565SJung-uk Kim                 yylpp--;
21503e794565SJung-uk Kim #endif
21513e794565SJung-uk Kim                 yylexp--;
21523e794565SJung-uk Kim                 yychar = YYEMPTY;
21533e794565SJung-uk Kim             }
21543e794565SJung-uk Kim             save->lexeme = (int) (yylvp - yylvals);
21553e794565SJung-uk Kim             yyps->save   = save;
21563e794565SJung-uk Kim         }
21573e794565SJung-uk Kim         if (yytable[yyn] == ctry)
21583e794565SJung-uk Kim         {
21593e794565SJung-uk Kim #if YYDEBUG
21603e794565SJung-uk Kim             if (yydebug)
21613e794565SJung-uk Kim                 fprintf(stderr, "%s[%d]: state %d, shifting to state %d\n",
21623e794565SJung-uk Kim                                 YYDEBUGSTR, yydepth, yystate, yyctable[ctry]);
21633e794565SJung-uk Kim #endif
21643e794565SJung-uk Kim             if (yychar < 0)
21653e794565SJung-uk Kim             {
21663e794565SJung-uk Kim                 yylvp++;
21673e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
21683e794565SJung-uk Kim                 yylpp++;
21693e794565SJung-uk Kim #endif
21703e794565SJung-uk Kim                 yylexp++;
21713e794565SJung-uk Kim             }
21723e794565SJung-uk Kim             if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM)
21733e794565SJung-uk Kim                 goto yyoverflow;
21743e794565SJung-uk Kim             yystate = yyctable[ctry];
21753e794565SJung-uk Kim             *++yystack.s_mark = (YYINT) yystate;
21763e794565SJung-uk Kim             *++yystack.l_mark = yylval;
21773e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
21783e794565SJung-uk Kim             *++yystack.p_mark = yylloc;
21793e794565SJung-uk Kim #endif
21803e794565SJung-uk Kim             yychar  = YYEMPTY;
21813e794565SJung-uk Kim             if (yyerrflag > 0) --yyerrflag;
21823e794565SJung-uk Kim             goto yyloop;
21833e794565SJung-uk Kim         }
21843e794565SJung-uk Kim         else
21853e794565SJung-uk Kim         {
21863e794565SJung-uk Kim             yyn = yyctable[ctry];
21873e794565SJung-uk Kim             goto yyreduce;
21883e794565SJung-uk Kim         }
21893e794565SJung-uk Kim     } /* End of code dealing with conflicts */
21903e794565SJung-uk Kim #endif /* YYBTYACC */
21913e794565SJung-uk Kim     if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
21923e794565SJung-uk Kim             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
21933e794565SJung-uk Kim     {
21943e794565SJung-uk Kim #if YYDEBUG
21953e794565SJung-uk Kim         if (yydebug)
21963e794565SJung-uk Kim             fprintf(stderr, "%s[%d]: state %d, shifting to state %d\n",
21973e794565SJung-uk Kim                             YYDEBUGSTR, yydepth, yystate, yytable[yyn]);
21983e794565SJung-uk Kim #endif
21993e794565SJung-uk Kim         if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
22003e794565SJung-uk Kim         yystate = yytable[yyn];
22013e794565SJung-uk Kim         *++yystack.s_mark = yytable[yyn];
22023e794565SJung-uk Kim         *++yystack.l_mark = yylval;
22033e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
22043e794565SJung-uk Kim         *++yystack.p_mark = yylloc;
22053e794565SJung-uk Kim #endif
22063e794565SJung-uk Kim         yychar = YYEMPTY;
22073e794565SJung-uk Kim         if (yyerrflag > 0)  --yyerrflag;
22083e794565SJung-uk Kim         goto yyloop;
22093e794565SJung-uk Kim     }
22103e794565SJung-uk Kim     if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
22113e794565SJung-uk Kim             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
22123e794565SJung-uk Kim     {
22133e794565SJung-uk Kim         yyn = yytable[yyn];
22143e794565SJung-uk Kim         goto yyreduce;
22153e794565SJung-uk Kim     }
22163e794565SJung-uk Kim     if (yyerrflag != 0) goto yyinrecovery;
22173e794565SJung-uk Kim #if YYBTYACC
22183e794565SJung-uk Kim 
22193e794565SJung-uk Kim     yynewerrflag = 1;
22203e794565SJung-uk Kim     goto yyerrhandler;
22213e794565SJung-uk Kim     goto yyerrlab; /* redundant goto avoids 'unused label' warning */
22223e794565SJung-uk Kim 
22233e794565SJung-uk Kim yyerrlab:
22243e794565SJung-uk Kim     /* explicit YYERROR from an action -- pop the rhs of the rule reduced
22253e794565SJung-uk Kim      * before looking for error recovery */
22263e794565SJung-uk Kim     yystack.s_mark -= yym;
22273e794565SJung-uk Kim     yystate = *yystack.s_mark;
22283e794565SJung-uk Kim     yystack.l_mark -= yym;
22293e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
22303e794565SJung-uk Kim     yystack.p_mark -= yym;
22313e794565SJung-uk Kim #endif
22323e794565SJung-uk Kim 
22333e794565SJung-uk Kim     yynewerrflag = 0;
22343e794565SJung-uk Kim yyerrhandler:
22353e794565SJung-uk Kim     while (yyps->save)
22363e794565SJung-uk Kim     {
22373e794565SJung-uk Kim         int ctry;
22383e794565SJung-uk Kim         YYParseState *save = yyps->save;
22393e794565SJung-uk Kim #if YYDEBUG
22403e794565SJung-uk Kim         if (yydebug)
22413e794565SJung-uk Kim             fprintf(stderr, "%s[%d]: ERROR in state %d, CONFLICT BACKTRACKING to state %d, %d tokens\n",
22423e794565SJung-uk Kim                             YYDEBUGSTR, yydepth, yystate, yyps->save->state,
22433e794565SJung-uk Kim                     (int)(yylvp - yylvals - yyps->save->lexeme));
22443e794565SJung-uk Kim #endif
22453e794565SJung-uk Kim         /* Memorize most forward-looking error state in case it's really an error. */
22463e794565SJung-uk Kim         if (yyerrctx == NULL || yyerrctx->lexeme < yylvp - yylvals)
22473e794565SJung-uk Kim         {
22483e794565SJung-uk Kim             /* Free old saved error context state */
22493e794565SJung-uk Kim             if (yyerrctx) yyFreeState(yyerrctx);
22503e794565SJung-uk Kim             /* Create and fill out new saved error context state */
22513e794565SJung-uk Kim             yyerrctx                 = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1));
22523e794565SJung-uk Kim             if (yyerrctx == NULL) goto yyenomem;
22533e794565SJung-uk Kim             yyerrctx->save           = yyps->save;
22543e794565SJung-uk Kim             yyerrctx->state          = yystate;
22553e794565SJung-uk Kim             yyerrctx->errflag        = yyerrflag;
22563e794565SJung-uk Kim             yyerrctx->yystack.s_mark = yyerrctx->yystack.s_base + (yystack.s_mark - yystack.s_base);
22573e794565SJung-uk Kim             memcpy (yyerrctx->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
22583e794565SJung-uk Kim             yyerrctx->yystack.l_mark = yyerrctx->yystack.l_base + (yystack.l_mark - yystack.l_base);
22593e794565SJung-uk Kim             memcpy (yyerrctx->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
22603e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
22613e794565SJung-uk Kim             yyerrctx->yystack.p_mark = yyerrctx->yystack.p_base + (yystack.p_mark - yystack.p_base);
22623e794565SJung-uk Kim             memcpy (yyerrctx->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
22633e794565SJung-uk Kim #endif
22643e794565SJung-uk Kim             yyerrctx->lexeme         = (int) (yylvp - yylvals);
22653e794565SJung-uk Kim         }
22663e794565SJung-uk Kim         yylvp          = yylvals   + save->lexeme;
22673e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
22683e794565SJung-uk Kim         yylpp          = yylpsns   + save->lexeme;
22693e794565SJung-uk Kim #endif
22703e794565SJung-uk Kim         yylexp         = yylexemes + save->lexeme;
22713e794565SJung-uk Kim         yychar         = YYEMPTY;
22723e794565SJung-uk Kim         yystack.s_mark = yystack.s_base + (save->yystack.s_mark - save->yystack.s_base);
22733e794565SJung-uk Kim         memcpy (yystack.s_base, save->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
22743e794565SJung-uk Kim         yystack.l_mark = yystack.l_base + (save->yystack.l_mark - save->yystack.l_base);
22753e794565SJung-uk Kim         memcpy (yystack.l_base, save->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
22763e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
22773e794565SJung-uk Kim         yystack.p_mark = yystack.p_base + (save->yystack.p_mark - save->yystack.p_base);
22783e794565SJung-uk Kim         memcpy (yystack.p_base, save->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
22793e794565SJung-uk Kim #endif
22803e794565SJung-uk Kim         ctry           = ++save->ctry;
22813e794565SJung-uk Kim         yystate        = save->state;
22823e794565SJung-uk Kim         /* We tried shift, try reduce now */
22833e794565SJung-uk Kim         if ((yyn = yyctable[ctry]) >= 0) goto yyreduce;
22843e794565SJung-uk Kim         yyps->save     = save->save;
22853e794565SJung-uk Kim         save->save     = NULL;
22863e794565SJung-uk Kim         yyFreeState(save);
22873e794565SJung-uk Kim 
22883e794565SJung-uk Kim         /* Nothing left on the stack -- error */
22893e794565SJung-uk Kim         if (!yyps->save)
22903e794565SJung-uk Kim         {
22913e794565SJung-uk Kim #if YYDEBUG
22923e794565SJung-uk Kim             if (yydebug)
22933e794565SJung-uk Kim                 fprintf(stderr, "%sdebug[%d,trial]: trial parse FAILED, entering ERROR mode\n",
22943e794565SJung-uk Kim                                 YYPREFIX, yydepth);
22953e794565SJung-uk Kim #endif
22963e794565SJung-uk Kim             /* Restore state as it was in the most forward-advanced error */
22973e794565SJung-uk Kim             yylvp          = yylvals   + yyerrctx->lexeme;
22983e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
22993e794565SJung-uk Kim             yylpp          = yylpsns   + yyerrctx->lexeme;
23003e794565SJung-uk Kim #endif
23013e794565SJung-uk Kim             yylexp         = yylexemes + yyerrctx->lexeme;
23023e794565SJung-uk Kim             yychar         = yylexp[-1];
23033e794565SJung-uk Kim             yylval         = yylvp[-1];
23043e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
23053e794565SJung-uk Kim             yylloc         = yylpp[-1];
23063e794565SJung-uk Kim #endif
23073e794565SJung-uk Kim             yystack.s_mark = yystack.s_base + (yyerrctx->yystack.s_mark - yyerrctx->yystack.s_base);
23083e794565SJung-uk Kim             memcpy (yystack.s_base, yyerrctx->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
23093e794565SJung-uk Kim             yystack.l_mark = yystack.l_base + (yyerrctx->yystack.l_mark - yyerrctx->yystack.l_base);
23103e794565SJung-uk Kim             memcpy (yystack.l_base, yyerrctx->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
23113e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
23123e794565SJung-uk Kim             yystack.p_mark = yystack.p_base + (yyerrctx->yystack.p_mark - yyerrctx->yystack.p_base);
23133e794565SJung-uk Kim             memcpy (yystack.p_base, yyerrctx->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
23143e794565SJung-uk Kim #endif
23153e794565SJung-uk Kim             yystate        = yyerrctx->state;
23163e794565SJung-uk Kim             yyFreeState(yyerrctx);
23173e794565SJung-uk Kim             yyerrctx       = NULL;
23183e794565SJung-uk Kim         }
23193e794565SJung-uk Kim         yynewerrflag = 1;
23203e794565SJung-uk Kim     }
23213e794565SJung-uk Kim     if (yynewerrflag == 0) goto yyinrecovery;
23223e794565SJung-uk Kim #endif /* YYBTYACC */
23233e794565SJung-uk Kim 
23243e794565SJung-uk Kim     YYERROR_CALL("syntax error");
23253e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
2326b53bb29fSJung-uk Kim     yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
23273e794565SJung-uk Kim #endif
23283e794565SJung-uk Kim 
23293e794565SJung-uk Kim #if !YYBTYACC
23303e794565SJung-uk Kim     goto yyerrlab; /* redundant goto avoids 'unused label' warning */
23313e794565SJung-uk Kim yyerrlab:
23323e794565SJung-uk Kim #endif
23333e794565SJung-uk Kim     ++yynerrs;
23343e794565SJung-uk Kim 
23353e794565SJung-uk Kim yyinrecovery:
23363e794565SJung-uk Kim     if (yyerrflag < 3)
23373e794565SJung-uk Kim     {
23383e794565SJung-uk Kim         yyerrflag = 3;
23393e794565SJung-uk Kim         for (;;)
23403e794565SJung-uk Kim         {
23413e794565SJung-uk Kim             if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 &&
23423e794565SJung-uk Kim                     yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE)
23433e794565SJung-uk Kim             {
23443e794565SJung-uk Kim #if YYDEBUG
23453e794565SJung-uk Kim                 if (yydebug)
23463e794565SJung-uk Kim                     fprintf(stderr, "%s[%d]: state %d, error recovery shifting to state %d\n",
23473e794565SJung-uk Kim                                     YYDEBUGSTR, yydepth, *yystack.s_mark, yytable[yyn]);
23483e794565SJung-uk Kim #endif
23493e794565SJung-uk Kim                 if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
23503e794565SJung-uk Kim                 yystate = yytable[yyn];
23513e794565SJung-uk Kim                 *++yystack.s_mark = yytable[yyn];
23523e794565SJung-uk Kim                 *++yystack.l_mark = yylval;
23533e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
23543e794565SJung-uk Kim                 /* lookahead position is error end position */
2355b53bb29fSJung-uk Kim                 yyerror_loc_range[2] = yylloc;
23563e794565SJung-uk Kim                 YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
23573e794565SJung-uk Kim                 *++yystack.p_mark = yyloc;
23583e794565SJung-uk Kim #endif
23593e794565SJung-uk Kim                 goto yyloop;
23603e794565SJung-uk Kim             }
23613e794565SJung-uk Kim             else
23623e794565SJung-uk Kim             {
23633e794565SJung-uk Kim #if YYDEBUG
23643e794565SJung-uk Kim                 if (yydebug)
23653e794565SJung-uk Kim                     fprintf(stderr, "%s[%d]: error recovery discarding state %d\n",
23663e794565SJung-uk Kim                                     YYDEBUGSTR, yydepth, *yystack.s_mark);
23673e794565SJung-uk Kim #endif
23683e794565SJung-uk Kim                 if (yystack.s_mark <= yystack.s_base) goto yyabort;
23693e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
23703e794565SJung-uk Kim                 /* the current TOS position is the error start position */
2371b53bb29fSJung-uk Kim                 yyerror_loc_range[1] = *yystack.p_mark;
23723e794565SJung-uk Kim #endif
23733e794565SJung-uk Kim #if defined(YYDESTRUCT_CALL)
23743e794565SJung-uk Kim #if YYBTYACC
23753e794565SJung-uk Kim                 if (!yytrial)
23763e794565SJung-uk Kim #endif /* YYBTYACC */
23773e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
23783e794565SJung-uk Kim                     YYDESTRUCT_CALL("error: discarding state",
23793e794565SJung-uk Kim                                     yystos[*yystack.s_mark], yystack.l_mark, yystack.p_mark);
23803e794565SJung-uk Kim #else
23813e794565SJung-uk Kim                     YYDESTRUCT_CALL("error: discarding state",
23823e794565SJung-uk Kim                                     yystos[*yystack.s_mark], yystack.l_mark);
23833e794565SJung-uk Kim #endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
23843e794565SJung-uk Kim #endif /* defined(YYDESTRUCT_CALL) */
23853e794565SJung-uk Kim                 --yystack.s_mark;
23863e794565SJung-uk Kim                 --yystack.l_mark;
23873e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
23883e794565SJung-uk Kim                 --yystack.p_mark;
23893e794565SJung-uk Kim #endif
23903e794565SJung-uk Kim             }
23913e794565SJung-uk Kim         }
23923e794565SJung-uk Kim     }
23933e794565SJung-uk Kim     else
23943e794565SJung-uk Kim     {
23953e794565SJung-uk Kim         if (yychar == YYEOF) goto yyabort;
23963e794565SJung-uk Kim #if YYDEBUG
23973e794565SJung-uk Kim         if (yydebug)
23983e794565SJung-uk Kim         {
23993e794565SJung-uk Kim             if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
24003e794565SJung-uk Kim             fprintf(stderr, "%s[%d]: state %d, error recovery discarding token %d (%s)\n",
24013e794565SJung-uk Kim                             YYDEBUGSTR, yydepth, yystate, yychar, yys);
24023e794565SJung-uk Kim         }
24033e794565SJung-uk Kim #endif
24043e794565SJung-uk Kim #if defined(YYDESTRUCT_CALL)
24053e794565SJung-uk Kim #if YYBTYACC
24063e794565SJung-uk Kim         if (!yytrial)
24073e794565SJung-uk Kim #endif /* YYBTYACC */
24083e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
24093e794565SJung-uk Kim             YYDESTRUCT_CALL("error: discarding token", yychar, &yylval, &yylloc);
24103e794565SJung-uk Kim #else
24113e794565SJung-uk Kim             YYDESTRUCT_CALL("error: discarding token", yychar, &yylval);
24123e794565SJung-uk Kim #endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
24133e794565SJung-uk Kim #endif /* defined(YYDESTRUCT_CALL) */
24143e794565SJung-uk Kim         yychar = YYEMPTY;
24153e794565SJung-uk Kim         goto yyloop;
24163e794565SJung-uk Kim     }
24173e794565SJung-uk Kim 
24183e794565SJung-uk Kim yyreduce:
24193e794565SJung-uk Kim     yym = yylen[yyn];
24203e794565SJung-uk Kim #if YYDEBUG
24213e794565SJung-uk Kim     if (yydebug)
24223e794565SJung-uk Kim     {
24233e794565SJung-uk Kim         fprintf(stderr, "%s[%d]: state %d, reducing by rule %d (%s)",
24243e794565SJung-uk Kim                         YYDEBUGSTR, yydepth, yystate, yyn, yyrule[yyn]);
24253e794565SJung-uk Kim #ifdef YYSTYPE_TOSTRING
24263e794565SJung-uk Kim #if YYBTYACC
24273e794565SJung-uk Kim         if (!yytrial)
24283e794565SJung-uk Kim #endif /* YYBTYACC */
24293e794565SJung-uk Kim             if (yym > 0)
24303e794565SJung-uk Kim             {
24313e794565SJung-uk Kim                 int i;
24323e794565SJung-uk Kim                 fputc('<', stderr);
24333e794565SJung-uk Kim                 for (i = yym; i > 0; i--)
24343e794565SJung-uk Kim                 {
24353e794565SJung-uk Kim                     if (i != yym) fputs(", ", stderr);
24363e794565SJung-uk Kim                     fputs(YYSTYPE_TOSTRING(yystos[yystack.s_mark[1-i]],
24373e794565SJung-uk Kim                                            yystack.l_mark[1-i]), stderr);
24383e794565SJung-uk Kim                 }
24393e794565SJung-uk Kim                 fputc('>', stderr);
24403e794565SJung-uk Kim             }
24413e794565SJung-uk Kim #endif
24423e794565SJung-uk Kim         fputc('\n', stderr);
24433e794565SJung-uk Kim     }
24443e794565SJung-uk Kim #endif
24453e794565SJung-uk Kim     if (yym > 0)
24463e794565SJung-uk Kim         yyval = yystack.l_mark[1-yym];
24473e794565SJung-uk Kim     else
24483e794565SJung-uk Kim         memset(&yyval, 0, sizeof yyval);
24493e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
24503e794565SJung-uk Kim 
24513e794565SJung-uk Kim     /* Perform position reduction */
24523e794565SJung-uk Kim     memset(&yyloc, 0, sizeof(yyloc));
24533e794565SJung-uk Kim #if YYBTYACC
24543e794565SJung-uk Kim     if (!yytrial)
24553e794565SJung-uk Kim #endif /* YYBTYACC */
24563e794565SJung-uk Kim     {
2457b53bb29fSJung-uk Kim         YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
24583e794565SJung-uk Kim         /* just in case YYERROR is invoked within the action, save
24593e794565SJung-uk Kim            the start of the rhs as the error start position */
2460b53bb29fSJung-uk Kim         yyerror_loc_range[1] = yystack.p_mark[1-yym];
24613e794565SJung-uk Kim     }
24623e794565SJung-uk Kim #endif
24633e794565SJung-uk Kim 
24643e794565SJung-uk Kim     switch (yyn)
24653e794565SJung-uk Kim     {
24663e794565SJung-uk Kim case 1:
24673e794565SJung-uk Kim #line 64 "expr.oxout.y"
24683e794565SJung-uk Kim 	{yyyYoxInit();}
24698e022d3cSDag-Erling Smørgrav #line 2470 "expr.oxout.tab.c"
24703e794565SJung-uk Kim break;
24713e794565SJung-uk Kim case 2:
24723e794565SJung-uk Kim #line 66 "expr.oxout.y"
24733e794565SJung-uk Kim 	{
24743e794565SJung-uk Kim 		 yyyDecorate(); yyyExecuteRRsection(yystack.l_mark[0].yyyOxAttrbs.yyyOxStackItem->node);
24753e794565SJung-uk Kim 		}
24768e022d3cSDag-Erling Smørgrav #line 2477 "expr.oxout.tab.c"
24773e794565SJung-uk Kim break;
24783e794565SJung-uk Kim case 3:
24793e794565SJung-uk Kim #line 73 "expr.oxout.y"
24803e794565SJung-uk Kim 	{if(yyyYok){
24813e794565SJung-uk Kim yyyGenIntNode(1,1,0,&yyval.yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
24823e794565SJung-uk Kim yyyAdjustINRC(1,1,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
24838e022d3cSDag-Erling Smørgrav #line 2484 "expr.oxout.tab.c"
24843e794565SJung-uk Kim break;
24853e794565SJung-uk Kim case 4:
24863e794565SJung-uk Kim #line 80 "expr.oxout.y"
24873e794565SJung-uk Kim 	{if(yyyYok){
24883e794565SJung-uk Kim yyyGenIntNode(2,3,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
24893e794565SJung-uk Kim yyyAdjustINRC(2,3,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
24908e022d3cSDag-Erling Smørgrav #line 2491 "expr.oxout.tab.c"
24913e794565SJung-uk Kim break;
24923e794565SJung-uk Kim case 5:
24933e794565SJung-uk Kim #line 87 "expr.oxout.y"
24943e794565SJung-uk Kim 	{if(yyyYok){
24953e794565SJung-uk Kim yyyGenIntNode(3,3,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
24963e794565SJung-uk Kim yyyAdjustINRC(3,3,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
24978e022d3cSDag-Erling Smørgrav #line 2498 "expr.oxout.tab.c"
24983e794565SJung-uk Kim break;
24993e794565SJung-uk Kim case 6:
25003e794565SJung-uk Kim #line 94 "expr.oxout.y"
25013e794565SJung-uk Kim 	{if(yyyYok){
25023e794565SJung-uk Kim yyyGenIntNode(4,3,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
25033e794565SJung-uk Kim yyyAdjustINRC(4,3,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
25048e022d3cSDag-Erling Smørgrav #line 2505 "expr.oxout.tab.c"
25053e794565SJung-uk Kim break;
25063e794565SJung-uk Kim case 7:
25073e794565SJung-uk Kim #line 101 "expr.oxout.y"
25083e794565SJung-uk Kim 	{if(yyyYok){
25093e794565SJung-uk Kim yyyGenIntNode(5,3,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
25103e794565SJung-uk Kim yyyAdjustINRC(5,3,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
25118e022d3cSDag-Erling Smørgrav #line 2512 "expr.oxout.tab.c"
25123e794565SJung-uk Kim break;
25133e794565SJung-uk Kim case 8:
25143e794565SJung-uk Kim #line 108 "expr.oxout.y"
25153e794565SJung-uk Kim 	{if(yyyYok){
25163e794565SJung-uk Kim yyyGenIntNode(6,3,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
25173e794565SJung-uk Kim yyyAdjustINRC(6,3,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
25188e022d3cSDag-Erling Smørgrav #line 2519 "expr.oxout.tab.c"
25193e794565SJung-uk Kim break;
25203e794565SJung-uk Kim case 9:
25213e794565SJung-uk Kim #line 114 "expr.oxout.y"
25223e794565SJung-uk Kim 	{if(yyyYok){
25233e794565SJung-uk Kim yyyGenIntNode(7,1,0,&yyval.yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
25243e794565SJung-uk Kim yyyAdjustINRC(7,1,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
25258e022d3cSDag-Erling Smørgrav #line 2526 "expr.oxout.tab.c"
25263e794565SJung-uk Kim break;
25273e794565SJung-uk Kim case 10:
25283e794565SJung-uk Kim #line 121 "expr.oxout.y"
25293e794565SJung-uk Kim 	{if(yyyYok){
25303e794565SJung-uk Kim yyyGenIntNode(8,1,0,&yyval.yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
25313e794565SJung-uk Kim yyyAdjustINRC(8,1,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
25328e022d3cSDag-Erling Smørgrav #line 2533 "expr.oxout.tab.c"
25333e794565SJung-uk Kim break;
25348e022d3cSDag-Erling Smørgrav #line 2535 "expr.oxout.tab.c"
25353e794565SJung-uk Kim     default:
25363e794565SJung-uk Kim         break;
25373e794565SJung-uk Kim     }
25383e794565SJung-uk Kim     yystack.s_mark -= yym;
25393e794565SJung-uk Kim     yystate = *yystack.s_mark;
25403e794565SJung-uk Kim     yystack.l_mark -= yym;
25413e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
25423e794565SJung-uk Kim     yystack.p_mark -= yym;
25433e794565SJung-uk Kim #endif
25443e794565SJung-uk Kim     yym = yylhs[yyn];
25453e794565SJung-uk Kim     if (yystate == 0 && yym == 0)
25463e794565SJung-uk Kim     {
25473e794565SJung-uk Kim #if YYDEBUG
25483e794565SJung-uk Kim         if (yydebug)
25493e794565SJung-uk Kim         {
25503e794565SJung-uk Kim             fprintf(stderr, "%s[%d]: after reduction, ", YYDEBUGSTR, yydepth);
25513e794565SJung-uk Kim #ifdef YYSTYPE_TOSTRING
25523e794565SJung-uk Kim #if YYBTYACC
25533e794565SJung-uk Kim             if (!yytrial)
25543e794565SJung-uk Kim #endif /* YYBTYACC */
25553e794565SJung-uk Kim                 fprintf(stderr, "result is <%s>, ", YYSTYPE_TOSTRING(yystos[YYFINAL], yyval));
25563e794565SJung-uk Kim #endif
25573e794565SJung-uk Kim             fprintf(stderr, "shifting from state 0 to final state %d\n", YYFINAL);
25583e794565SJung-uk Kim         }
25593e794565SJung-uk Kim #endif
25603e794565SJung-uk Kim         yystate = YYFINAL;
25613e794565SJung-uk Kim         *++yystack.s_mark = YYFINAL;
25623e794565SJung-uk Kim         *++yystack.l_mark = yyval;
25633e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
25643e794565SJung-uk Kim         *++yystack.p_mark = yyloc;
25653e794565SJung-uk Kim #endif
25663e794565SJung-uk Kim         if (yychar < 0)
25673e794565SJung-uk Kim         {
25683e794565SJung-uk Kim #if YYBTYACC
25693e794565SJung-uk Kim             do {
25703e794565SJung-uk Kim             if (yylvp < yylve)
25713e794565SJung-uk Kim             {
25723e794565SJung-uk Kim                 /* we're currently re-reading tokens */
25733e794565SJung-uk Kim                 yylval = *yylvp++;
25743e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
25753e794565SJung-uk Kim                 yylloc = *yylpp++;
25763e794565SJung-uk Kim #endif
25773e794565SJung-uk Kim                 yychar = *yylexp++;
25783e794565SJung-uk Kim                 break;
25793e794565SJung-uk Kim             }
25803e794565SJung-uk Kim             if (yyps->save)
25813e794565SJung-uk Kim             {
25823e794565SJung-uk Kim                 /* in trial mode; save scanner results for future parse attempts */
25833e794565SJung-uk Kim                 if (yylvp == yylvlim)
25843e794565SJung-uk Kim                 {   /* Enlarge lexical value queue */
25853e794565SJung-uk Kim                     size_t p = (size_t) (yylvp - yylvals);
25863e794565SJung-uk Kim                     size_t s = (size_t) (yylvlim - yylvals);
25873e794565SJung-uk Kim 
25883e794565SJung-uk Kim                     s += YYLVQUEUEGROWTH;
2589b53bb29fSJung-uk Kim                     if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
25903e794565SJung-uk Kim                         goto yyenomem;
2591b53bb29fSJung-uk Kim                     if ((yylvals   = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
25923e794565SJung-uk Kim                         goto yyenomem;
25933e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
2594b53bb29fSJung-uk Kim                     if ((yylpsns   = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
25953e794565SJung-uk Kim                         goto yyenomem;
25963e794565SJung-uk Kim #endif
25973e794565SJung-uk Kim                     yylvp   = yylve = yylvals + p;
25983e794565SJung-uk Kim                     yylvlim = yylvals + s;
25993e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
26003e794565SJung-uk Kim                     yylpp   = yylpe = yylpsns + p;
26013e794565SJung-uk Kim                     yylplim = yylpsns + s;
26023e794565SJung-uk Kim #endif
26033e794565SJung-uk Kim                     yylexp  = yylexemes + p;
26043e794565SJung-uk Kim                 }
26053e794565SJung-uk Kim                 *yylexp = (YYINT) YYLEX;
26063e794565SJung-uk Kim                 *yylvp++ = yylval;
26073e794565SJung-uk Kim                 yylve++;
26083e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
26093e794565SJung-uk Kim                 *yylpp++ = yylloc;
26103e794565SJung-uk Kim                 yylpe++;
26113e794565SJung-uk Kim #endif
26123e794565SJung-uk Kim                 yychar = *yylexp++;
26133e794565SJung-uk Kim                 break;
26143e794565SJung-uk Kim             }
26153e794565SJung-uk Kim             /* normal operation, no conflict encountered */
26163e794565SJung-uk Kim #endif /* YYBTYACC */
26173e794565SJung-uk Kim             yychar = YYLEX;
26183e794565SJung-uk Kim #if YYBTYACC
26193e794565SJung-uk Kim             } while (0);
26203e794565SJung-uk Kim #endif /* YYBTYACC */
26213e794565SJung-uk Kim             if (yychar < 0) yychar = YYEOF;
26223e794565SJung-uk Kim #if YYDEBUG
26233e794565SJung-uk Kim             if (yydebug)
26243e794565SJung-uk Kim             {
26253e794565SJung-uk Kim                 if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
26263e794565SJung-uk Kim                 fprintf(stderr, "%s[%d]: state %d, reading token %d (%s)\n",
26273e794565SJung-uk Kim                                 YYDEBUGSTR, yydepth, YYFINAL, yychar, yys);
26283e794565SJung-uk Kim             }
26293e794565SJung-uk Kim #endif
26303e794565SJung-uk Kim         }
26313e794565SJung-uk Kim         if (yychar == YYEOF) goto yyaccept;
26323e794565SJung-uk Kim         goto yyloop;
26333e794565SJung-uk Kim     }
26343e794565SJung-uk Kim     if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 &&
26353e794565SJung-uk Kim             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate)
26363e794565SJung-uk Kim         yystate = yytable[yyn];
26373e794565SJung-uk Kim     else
26383e794565SJung-uk Kim         yystate = yydgoto[yym];
26393e794565SJung-uk Kim #if YYDEBUG
26403e794565SJung-uk Kim     if (yydebug)
26413e794565SJung-uk Kim     {
26423e794565SJung-uk Kim         fprintf(stderr, "%s[%d]: after reduction, ", YYDEBUGSTR, yydepth);
26433e794565SJung-uk Kim #ifdef YYSTYPE_TOSTRING
26443e794565SJung-uk Kim #if YYBTYACC
26453e794565SJung-uk Kim         if (!yytrial)
26463e794565SJung-uk Kim #endif /* YYBTYACC */
26473e794565SJung-uk Kim             fprintf(stderr, "result is <%s>, ", YYSTYPE_TOSTRING(yystos[yystate], yyval));
26483e794565SJung-uk Kim #endif
26493e794565SJung-uk Kim         fprintf(stderr, "shifting from state %d to state %d\n", *yystack.s_mark, yystate);
26503e794565SJung-uk Kim     }
26513e794565SJung-uk Kim #endif
26523e794565SJung-uk Kim     if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
26533e794565SJung-uk Kim     *++yystack.s_mark = (YYINT) yystate;
26543e794565SJung-uk Kim     *++yystack.l_mark = yyval;
26553e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
26563e794565SJung-uk Kim     *++yystack.p_mark = yyloc;
26573e794565SJung-uk Kim #endif
26583e794565SJung-uk Kim     goto yyloop;
26593e794565SJung-uk Kim #if YYBTYACC
26603e794565SJung-uk Kim 
26613e794565SJung-uk Kim     /* Reduction declares that this path is valid. Set yypath and do a full parse */
26623e794565SJung-uk Kim yyvalid:
26633e794565SJung-uk Kim     if (yypath) YYABORT;
26643e794565SJung-uk Kim     while (yyps->save)
26653e794565SJung-uk Kim     {
26663e794565SJung-uk Kim         YYParseState *save = yyps->save;
26673e794565SJung-uk Kim         yyps->save = save->save;
26683e794565SJung-uk Kim         save->save = yypath;
26693e794565SJung-uk Kim         yypath = save;
26703e794565SJung-uk Kim     }
26713e794565SJung-uk Kim #if YYDEBUG
26723e794565SJung-uk Kim     if (yydebug)
26733e794565SJung-uk Kim         fprintf(stderr, "%s[%d]: state %d, CONFLICT trial successful, backtracking to state %d, %d tokens\n",
26743e794565SJung-uk Kim                         YYDEBUGSTR, yydepth, yystate, yypath->state, (int)(yylvp - yylvals - yypath->lexeme));
26753e794565SJung-uk Kim #endif
26763e794565SJung-uk Kim     if (yyerrctx)
26773e794565SJung-uk Kim     {
26783e794565SJung-uk Kim         yyFreeState(yyerrctx);
26793e794565SJung-uk Kim         yyerrctx = NULL;
26803e794565SJung-uk Kim     }
26813e794565SJung-uk Kim     yylvp          = yylvals + yypath->lexeme;
26823e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
26833e794565SJung-uk Kim     yylpp          = yylpsns + yypath->lexeme;
26843e794565SJung-uk Kim #endif
26853e794565SJung-uk Kim     yylexp         = yylexemes + yypath->lexeme;
26863e794565SJung-uk Kim     yychar         = YYEMPTY;
26873e794565SJung-uk Kim     yystack.s_mark = yystack.s_base + (yypath->yystack.s_mark - yypath->yystack.s_base);
26883e794565SJung-uk Kim     memcpy (yystack.s_base, yypath->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
26893e794565SJung-uk Kim     yystack.l_mark = yystack.l_base + (yypath->yystack.l_mark - yypath->yystack.l_base);
26903e794565SJung-uk Kim     memcpy (yystack.l_base, yypath->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
26913e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
26923e794565SJung-uk Kim     yystack.p_mark = yystack.p_base + (yypath->yystack.p_mark - yypath->yystack.p_base);
26933e794565SJung-uk Kim     memcpy (yystack.p_base, yypath->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
26943e794565SJung-uk Kim #endif
26953e794565SJung-uk Kim     yystate        = yypath->state;
26963e794565SJung-uk Kim     goto yyloop;
26973e794565SJung-uk Kim #endif /* YYBTYACC */
26983e794565SJung-uk Kim 
26993e794565SJung-uk Kim yyoverflow:
27003e794565SJung-uk Kim     YYERROR_CALL("yacc stack overflow");
27013e794565SJung-uk Kim #if YYBTYACC
27023e794565SJung-uk Kim     goto yyabort_nomem;
27033e794565SJung-uk Kim yyenomem:
27043e794565SJung-uk Kim     YYERROR_CALL("memory exhausted");
27053e794565SJung-uk Kim yyabort_nomem:
27063e794565SJung-uk Kim #endif /* YYBTYACC */
27073e794565SJung-uk Kim     yyresult = 2;
27083e794565SJung-uk Kim     goto yyreturn;
27093e794565SJung-uk Kim 
27103e794565SJung-uk Kim yyabort:
27113e794565SJung-uk Kim     yyresult = 1;
27123e794565SJung-uk Kim     goto yyreturn;
27133e794565SJung-uk Kim 
27143e794565SJung-uk Kim yyaccept:
27153e794565SJung-uk Kim #if YYBTYACC
27163e794565SJung-uk Kim     if (yyps->save) goto yyvalid;
27173e794565SJung-uk Kim #endif /* YYBTYACC */
27183e794565SJung-uk Kim     yyresult = 0;
27193e794565SJung-uk Kim 
27203e794565SJung-uk Kim yyreturn:
27213e794565SJung-uk Kim #if defined(YYDESTRUCT_CALL)
27223e794565SJung-uk Kim     if (yychar != YYEOF && yychar != YYEMPTY)
27233e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
27243e794565SJung-uk Kim         YYDESTRUCT_CALL("cleanup: discarding token", yychar, &yylval, &yylloc);
27253e794565SJung-uk Kim #else
27263e794565SJung-uk Kim         YYDESTRUCT_CALL("cleanup: discarding token", yychar, &yylval);
27273e794565SJung-uk Kim #endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
27283e794565SJung-uk Kim 
27293e794565SJung-uk Kim     {
27303e794565SJung-uk Kim         YYSTYPE *pv;
27313e794565SJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
27323e794565SJung-uk Kim         YYLTYPE *pp;
27333e794565SJung-uk Kim 
27343e794565SJung-uk Kim         for (pv = yystack.l_base, pp = yystack.p_base; pv <= yystack.l_mark; ++pv, ++pp)
27353e794565SJung-uk Kim              YYDESTRUCT_CALL("cleanup: discarding state",
27363e794565SJung-uk Kim                              yystos[*(yystack.s_base + (pv - yystack.l_base))], pv, pp);
27373e794565SJung-uk Kim #else
27383e794565SJung-uk Kim         for (pv = yystack.l_base; pv <= yystack.l_mark; ++pv)
27393e794565SJung-uk Kim              YYDESTRUCT_CALL("cleanup: discarding state",
27403e794565SJung-uk Kim                              yystos[*(yystack.s_base + (pv - yystack.l_base))], pv);
27413e794565SJung-uk Kim #endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
27423e794565SJung-uk Kim     }
27433e794565SJung-uk Kim #endif /* defined(YYDESTRUCT_CALL) */
27443e794565SJung-uk Kim 
27453e794565SJung-uk Kim #if YYBTYACC
27463e794565SJung-uk Kim     if (yyerrctx)
27473e794565SJung-uk Kim     {
27483e794565SJung-uk Kim         yyFreeState(yyerrctx);
27493e794565SJung-uk Kim         yyerrctx = NULL;
27503e794565SJung-uk Kim     }
27513e794565SJung-uk Kim     while (yyps)
27523e794565SJung-uk Kim     {
27533e794565SJung-uk Kim         YYParseState *save = yyps;
27543e794565SJung-uk Kim         yyps = save->save;
27553e794565SJung-uk Kim         save->save = NULL;
27563e794565SJung-uk Kim         yyFreeState(save);
27573e794565SJung-uk Kim     }
27583e794565SJung-uk Kim     while (yypath)
27593e794565SJung-uk Kim     {
27603e794565SJung-uk Kim         YYParseState *save = yypath;
27613e794565SJung-uk Kim         yypath = save->save;
27623e794565SJung-uk Kim         save->save = NULL;
27633e794565SJung-uk Kim         yyFreeState(save);
27643e794565SJung-uk Kim     }
27653e794565SJung-uk Kim #endif /* YYBTYACC */
27663e794565SJung-uk Kim     yyfreestack(&yystack);
27673e794565SJung-uk Kim     return (yyresult);
27683e794565SJung-uk Kim }
2769