xref: /freebsd/contrib/byacc/test/yacc/expr.oxout.tab.c (revision 822ca3276345b4a67ccbc9b54616d8b205fd37f2)
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 
173e794565SJung-uk Kim #ifndef yyparse
188e022d3cSDag-Erling Smørgrav #define yyparse    expr_oxout_parse
193e794565SJung-uk Kim #endif /* yyparse */
203e794565SJung-uk Kim 
213e794565SJung-uk Kim #ifndef yylex
228e022d3cSDag-Erling Smørgrav #define yylex      expr_oxout_lex
233e794565SJung-uk Kim #endif /* yylex */
243e794565SJung-uk Kim 
253e794565SJung-uk Kim #ifndef yyerror
268e022d3cSDag-Erling Smørgrav #define yyerror    expr_oxout_error
273e794565SJung-uk Kim #endif /* yyerror */
283e794565SJung-uk Kim 
293e794565SJung-uk Kim #ifndef yychar
308e022d3cSDag-Erling Smørgrav #define yychar     expr_oxout_char
313e794565SJung-uk Kim #endif /* yychar */
323e794565SJung-uk Kim 
333e794565SJung-uk Kim #ifndef yyval
348e022d3cSDag-Erling Smørgrav #define yyval      expr_oxout_val
353e794565SJung-uk Kim #endif /* yyval */
363e794565SJung-uk Kim 
373e794565SJung-uk Kim #ifndef yylval
388e022d3cSDag-Erling Smørgrav #define yylval     expr_oxout_lval
393e794565SJung-uk Kim #endif /* yylval */
403e794565SJung-uk Kim 
413e794565SJung-uk Kim #ifndef yydebug
428e022d3cSDag-Erling Smørgrav #define yydebug    expr_oxout_debug
433e794565SJung-uk Kim #endif /* yydebug */
443e794565SJung-uk Kim 
453e794565SJung-uk Kim #ifndef yynerrs
468e022d3cSDag-Erling Smørgrav #define yynerrs    expr_oxout_nerrs
473e794565SJung-uk Kim #endif /* yynerrs */
483e794565SJung-uk Kim 
493e794565SJung-uk Kim #ifndef yyerrflag
508e022d3cSDag-Erling Smørgrav #define yyerrflag  expr_oxout_errflag
513e794565SJung-uk Kim #endif /* yyerrflag */
523e794565SJung-uk Kim 
533e794565SJung-uk Kim #ifndef yylhs
548e022d3cSDag-Erling Smørgrav #define yylhs      expr_oxout_lhs
553e794565SJung-uk Kim #endif /* yylhs */
563e794565SJung-uk Kim 
573e794565SJung-uk Kim #ifndef yylen
588e022d3cSDag-Erling Smørgrav #define yylen      expr_oxout_len
593e794565SJung-uk Kim #endif /* yylen */
603e794565SJung-uk Kim 
613e794565SJung-uk Kim #ifndef yydefred
628e022d3cSDag-Erling Smørgrav #define yydefred   expr_oxout_defred
633e794565SJung-uk Kim #endif /* yydefred */
643e794565SJung-uk Kim 
653e794565SJung-uk Kim #ifndef yydgoto
668e022d3cSDag-Erling Smørgrav #define yydgoto    expr_oxout_dgoto
673e794565SJung-uk Kim #endif /* yydgoto */
683e794565SJung-uk Kim 
693e794565SJung-uk Kim #ifndef yysindex
708e022d3cSDag-Erling Smørgrav #define yysindex   expr_oxout_sindex
713e794565SJung-uk Kim #endif /* yysindex */
723e794565SJung-uk Kim 
733e794565SJung-uk Kim #ifndef yyrindex
748e022d3cSDag-Erling Smørgrav #define yyrindex   expr_oxout_rindex
753e794565SJung-uk Kim #endif /* yyrindex */
763e794565SJung-uk Kim 
773e794565SJung-uk Kim #ifndef yygindex
788e022d3cSDag-Erling Smørgrav #define yygindex   expr_oxout_gindex
793e794565SJung-uk Kim #endif /* yygindex */
803e794565SJung-uk Kim 
813e794565SJung-uk Kim #ifndef yytable
828e022d3cSDag-Erling Smørgrav #define yytable    expr_oxout_table
833e794565SJung-uk Kim #endif /* yytable */
843e794565SJung-uk Kim 
853e794565SJung-uk Kim #ifndef yycheck
868e022d3cSDag-Erling Smørgrav #define yycheck    expr_oxout_check
873e794565SJung-uk Kim #endif /* yycheck */
883e794565SJung-uk Kim 
893e794565SJung-uk Kim #ifndef yyname
908e022d3cSDag-Erling Smørgrav #define yyname     expr_oxout_name
913e794565SJung-uk Kim #endif /* yyname */
923e794565SJung-uk Kim 
933e794565SJung-uk Kim #ifndef yyrule
948e022d3cSDag-Erling Smørgrav #define yyrule     expr_oxout_rule
953e794565SJung-uk Kim #endif /* yyrule */
968e022d3cSDag-Erling Smørgrav #define YYPREFIX "expr_oxout_"
973e794565SJung-uk Kim 
983e794565SJung-uk Kim #define YYPURE 0
993e794565SJung-uk Kim 
1003e794565SJung-uk Kim #line 5 "expr.oxout.y"
1013e794565SJung-uk Kim #include <stdlib.h>
1023e794565SJung-uk Kim #include <string.h>
1033e794565SJung-uk Kim #line 8 "expr.Y"
1043e794565SJung-uk Kim 
1053e794565SJung-uk Kim #include "expr.oxout.h"
1063e794565SJung-uk Kim #include <stdio.h>
1073e794565SJung-uk Kim 
1083e794565SJung-uk Kim extern int yylex(void);
1093e794565SJung-uk Kim extern void yyerror(const char *);
1103e794565SJung-uk Kim #line 27 "expr.oxout.y"
1113e794565SJung-uk Kim #include <limits.h>
1123e794565SJung-uk Kim #define yyyR USHRT_MAX
1133e794565SJung-uk Kim #ifdef YYSTYPE
1143e794565SJung-uk Kim #undef  YYSTYPE_IS_DECLARED
1153e794565SJung-uk Kim #define YYSTYPE_IS_DECLARED 1
1163e794565SJung-uk Kim #endif
1173e794565SJung-uk Kim #ifndef YYSTYPE_IS_DECLARED
1183e794565SJung-uk Kim #define YYSTYPE_IS_DECLARED 1
1193e794565SJung-uk Kim #line 31 "expr.oxout.y"
120*822ca327SBaptiste Daroussin typedef union YYSTYPE {
1213e794565SJung-uk Kim struct yyyOxAttrbs {
1223e794565SJung-uk Kim struct yyyStackItem *yyyOxStackItem;
1233e794565SJung-uk Kim } yyyOxAttrbs;
1243e794565SJung-uk Kim } YYSTYPE;
1253e794565SJung-uk Kim #endif /* !YYSTYPE_IS_DECLARED */
1263e794565SJung-uk Kim #line 38 "expr.oxout.y"
1273e794565SJung-uk Kim #include <stdio.h>
1283e794565SJung-uk Kim #include <stdarg.h>
1293e794565SJung-uk Kim 
1303e794565SJung-uk Kim static int yyyYok = 1;
1313e794565SJung-uk Kim 
1323e794565SJung-uk Kim extern yyyFT yyyRCIL[];
1333e794565SJung-uk Kim 
1343e794565SJung-uk Kim void yyyExecuteRRsection(yyyGNT *rootNode);
1353e794565SJung-uk Kim void yyyYoxInit(void);
1363e794565SJung-uk Kim void yyyDecorate(void);
1373e794565SJung-uk Kim struct yyyOxAttrbs; /* hack required to compensate for 'msta' behavior */
1383e794565SJung-uk Kim void yyyGenIntNode(long yyyProdNum, int yyyRHSlength, int yyyNattrbs, struct yyyOxAttrbs *yyval_OxAttrbs, ...);
1393e794565SJung-uk Kim void yyyAdjustINRC(long yyyProdNum, int yyyRHSlength, long startP, long stopP, struct yyyOxAttrbs *yyval_OxAttrbs, ...);
1403e794565SJung-uk Kim void yyyCheckUnsolvedInstTrav(yyyGNT *rootNode,long *nNZrc,long *cycleSum);
1413e794565SJung-uk Kim void yyyUnsolvedInstSearchTrav(yyyGNT *pNode);
1423e794565SJung-uk Kim void yyyUnsolvedInstSearchTravAux(yyyGNT *pNode);
1433e794565SJung-uk Kim void yyyabort(void);
1443e794565SJung-uk Kim 
1453e794565SJung-uk Kim #line 146 "expr.oxout.tab.c"
1463e794565SJung-uk Kim 
1473e794565SJung-uk Kim /* compatibility with bison */
1483e794565SJung-uk Kim #ifdef YYPARSE_PARAM
1493e794565SJung-uk Kim /* compatibility with FreeBSD */
1503e794565SJung-uk Kim # ifdef YYPARSE_PARAM_TYPE
1513e794565SJung-uk Kim #  define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM)
1523e794565SJung-uk Kim # else
1533e794565SJung-uk Kim #  define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM)
1543e794565SJung-uk Kim # endif
1553e794565SJung-uk Kim #else
1563e794565SJung-uk Kim # define YYPARSE_DECL() yyparse(void)
1573e794565SJung-uk Kim #endif
1583e794565SJung-uk Kim 
1593e794565SJung-uk Kim /* Parameters sent to lex. */
1603e794565SJung-uk Kim #ifdef YYLEX_PARAM
1613e794565SJung-uk Kim # define YYLEX_DECL() yylex(void *YYLEX_PARAM)
1623e794565SJung-uk Kim # define YYLEX yylex(YYLEX_PARAM)
1633e794565SJung-uk Kim #else
1643e794565SJung-uk Kim # define YYLEX_DECL() yylex(void)
1653e794565SJung-uk Kim # define YYLEX yylex()
1663e794565SJung-uk Kim #endif
1673e794565SJung-uk Kim 
1683e794565SJung-uk Kim /* Parameters sent to yyerror. */
1693e794565SJung-uk Kim #ifndef YYERROR_DECL
1703e794565SJung-uk Kim #define YYERROR_DECL() yyerror(const char *s)
1713e794565SJung-uk Kim #endif
1723e794565SJung-uk Kim #ifndef YYERROR_CALL
1733e794565SJung-uk Kim #define YYERROR_CALL(msg) yyerror(msg)
1743e794565SJung-uk Kim #endif
1753e794565SJung-uk Kim 
1763e794565SJung-uk Kim extern int YYPARSE_DECL();
1773e794565SJung-uk Kim 
1783e794565SJung-uk Kim #define ID 257
1793e794565SJung-uk Kim #define CONST 258
1803e794565SJung-uk Kim #define YYERRCODE 256
181fa841eb6SEnji Cooper typedef int YYINT;
1828e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_lhs[] = {                  -1,
1833e794565SJung-uk Kim     2,    0,    1,    3,    3,    3,    3,    3,    3,    3,
1843e794565SJung-uk Kim };
1858e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_len[] = {                   2,
1863e794565SJung-uk Kim     0,    2,    1,    3,    3,    3,    3,    3,    1,    1,
1873e794565SJung-uk Kim };
1888e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_defred[] = {                1,
1893e794565SJung-uk Kim     0,    0,    9,   10,    0,    2,    0,    0,    0,    0,
1903e794565SJung-uk Kim     0,    0,    8,    0,    0,    4,    0,
1913e794565SJung-uk Kim };
1928e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_dgoto[] = {                 1,
1933e794565SJung-uk Kim     6,    2,    7,
1943e794565SJung-uk Kim };
1958e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_sindex[] = {                0,
1963e794565SJung-uk Kim     0,  -40,    0,    0,  -40,    0,  -18,  -24,  -40,  -40,
1973e794565SJung-uk Kim   -40,  -40,    0,  -37,  -37,    0,  -39,
1983e794565SJung-uk Kim };
1998e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_rindex[] = {                0,
2003e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    6,    0,    0,    0,
2013e794565SJung-uk Kim     0,    0,    0,    2,    8,    0,    1,
2023e794565SJung-uk Kim };
2038e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_gindex[] = {                0,
2043e794565SJung-uk Kim     0,    0,    4,
2053e794565SJung-uk Kim };
2063e794565SJung-uk Kim #define YYTABLESIZE 218
2078e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_table[] = {                 5,
2083e794565SJung-uk Kim     6,    5,   11,    0,   11,    3,    0,    7,    8,   12,
2093e794565SJung-uk Kim     0,    0,   14,   15,   16,   17,   13,   11,    9,    0,
2103e794565SJung-uk Kim    10,    0,   12,   11,    9,    0,   10,    0,   12,    0,
2113e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2123e794565SJung-uk Kim     0,    6,    5,    6,    5,    6,    5,    6,    7,    0,
2133e794565SJung-uk Kim     7,    0,    7,    0,    0,    0,    0,    0,    0,    0,
2143e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2153e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2163e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2173e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2183e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2193e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2203e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2213e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2223e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2233e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2243e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2253e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2263e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2273e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2283e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2293e794565SJung-uk Kim     0,    0,    0,    0,    0,    0,    3,    4,
2303e794565SJung-uk Kim };
2318e022d3cSDag-Erling Smørgrav static const YYINT expr_oxout_check[] = {                40,
2323e794565SJung-uk Kim     0,    0,   42,   -1,   42,    0,   -1,    0,    5,   47,
2333e794565SJung-uk Kim    -1,   -1,    9,   10,   11,   12,   41,   42,   43,   -1,
2343e794565SJung-uk Kim    45,   -1,   47,   42,   43,   -1,   45,   -1,   47,   -1,
2353e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2363e794565SJung-uk Kim    -1,   41,   41,   43,   43,   45,   45,   47,   41,   -1,
2373e794565SJung-uk Kim    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2383e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2393e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2403e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2413e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2423e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2433e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2443e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2453e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2463e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2473e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2483e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2493e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2503e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2513e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2523e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2533e794565SJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
2543e794565SJung-uk Kim };
2553e794565SJung-uk Kim #define YYFINAL 1
2563e794565SJung-uk Kim #ifndef YYDEBUG
2573e794565SJung-uk Kim #define YYDEBUG 0
2583e794565SJung-uk Kim #endif
2593e794565SJung-uk Kim #define YYMAXTOKEN 258
2603e794565SJung-uk Kim #define YYUNDFTOKEN 264
2613e794565SJung-uk Kim #define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
2623e794565SJung-uk Kim #if YYDEBUG
2638e022d3cSDag-Erling Smørgrav static const char *const expr_oxout_name[] = {
2643e794565SJung-uk Kim 
2653e794565SJung-uk Kim "end-of-file",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,
2663e794565SJung-uk Kim 0,0,0,0,0,0,"'('","')'","'*'","'+'",0,"'-'",0,"'/'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2673e794565SJung-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,
2683e794565SJung-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,
2693e794565SJung-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,
2703e794565SJung-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,
2713e794565SJung-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,"ID",
2723e794565SJung-uk Kim "CONST",0,0,0,0,0,"illegal-symbol",
2733e794565SJung-uk Kim };
2748e022d3cSDag-Erling Smørgrav static const char *const expr_oxout_rule[] = {
2753e794565SJung-uk Kim "$accept : yyyAugNonterm",
2763e794565SJung-uk Kim "$$1 :",
2773e794565SJung-uk Kim "yyyAugNonterm : $$1 s",
2783e794565SJung-uk Kim "s : expr",
2793e794565SJung-uk Kim "expr : expr '*' expr",
2803e794565SJung-uk Kim "expr : expr '+' expr",
2813e794565SJung-uk Kim "expr : expr '/' expr",
2823e794565SJung-uk Kim "expr : expr '-' expr",
2833e794565SJung-uk Kim "expr : '(' expr ')'",
2843e794565SJung-uk Kim "expr : ID",
2853e794565SJung-uk Kim "expr : CONST",
2863e794565SJung-uk Kim 
2873e794565SJung-uk Kim };
2883e794565SJung-uk Kim #endif
2893e794565SJung-uk Kim 
290b53bb29fSJung-uk Kim #if YYDEBUG
2913e794565SJung-uk Kim int      yydebug;
292b53bb29fSJung-uk Kim #endif
2933e794565SJung-uk Kim 
2943e794565SJung-uk Kim int      yyerrflag;
2953e794565SJung-uk Kim int      yychar;
2963e794565SJung-uk Kim YYSTYPE  yyval;
2973e794565SJung-uk Kim YYSTYPE  yylval;
298b53bb29fSJung-uk Kim int      yynerrs;
2993e794565SJung-uk Kim 
3003e794565SJung-uk Kim /* define the initial stack-sizes */
3013e794565SJung-uk Kim #ifdef YYSTACKSIZE
3023e794565SJung-uk Kim #undef YYMAXDEPTH
3033e794565SJung-uk Kim #define YYMAXDEPTH  YYSTACKSIZE
3043e794565SJung-uk Kim #else
3053e794565SJung-uk Kim #ifdef YYMAXDEPTH
3063e794565SJung-uk Kim #define YYSTACKSIZE YYMAXDEPTH
3073e794565SJung-uk Kim #else
3083e794565SJung-uk Kim #define YYSTACKSIZE 10000
3093e794565SJung-uk Kim #define YYMAXDEPTH  10000
3103e794565SJung-uk Kim #endif
3113e794565SJung-uk Kim #endif
3123e794565SJung-uk Kim 
3133e794565SJung-uk Kim #define YYINITSTACKSIZE 200
3143e794565SJung-uk Kim 
3153e794565SJung-uk Kim typedef struct {
3163e794565SJung-uk Kim     unsigned stacksize;
3173e794565SJung-uk Kim     YYINT    *s_base;
3183e794565SJung-uk Kim     YYINT    *s_mark;
3193e794565SJung-uk Kim     YYINT    *s_last;
3203e794565SJung-uk Kim     YYSTYPE  *l_base;
3213e794565SJung-uk Kim     YYSTYPE  *l_mark;
3223e794565SJung-uk Kim } YYSTACKDATA;
3233e794565SJung-uk Kim /* variables for the parser stack */
3243e794565SJung-uk Kim static YYSTACKDATA yystack;
3253e794565SJung-uk Kim #line 53 "expr.Y"
3263e794565SJung-uk Kim 
3273e794565SJung-uk Kim 
3283e794565SJung-uk Kim int yyparse(void);
3293e794565SJung-uk Kim 
main()3303e794565SJung-uk Kim int main()
3313e794565SJung-uk Kim   {yyparse();
3323e794565SJung-uk Kim   }
3333e794565SJung-uk Kim 
3343e794565SJung-uk Kim 
3353e794565SJung-uk Kim 
3363e794565SJung-uk Kim #line 138 "expr.oxout.y"
3373e794565SJung-uk Kim long yyySSALspaceSize =    20000;
3383e794565SJung-uk Kim long yyyRSmaxSize =        1000;
3393e794565SJung-uk Kim long yyyTravStackMaxSize = 2000;
3403e794565SJung-uk Kim 
3413e794565SJung-uk Kim struct yyySolvedSAlistCell {yyyWAT attrbNum;
3423e794565SJung-uk Kim                             long next;
3433e794565SJung-uk Kim                            };
3443e794565SJung-uk Kim 
3453e794565SJung-uk Kim #define yyyLambdaSSAL 0
3463e794565SJung-uk Kim long yyySSALCfreeList = yyyLambdaSSAL;
3473e794565SJung-uk Kim long yyyNewSSALC = 1;
3483e794565SJung-uk Kim 
3493e794565SJung-uk Kim struct yyySolvedSAlistCell *yyySSALspace;
3503e794565SJung-uk Kim 
3513e794565SJung-uk Kim long yyyNbytesStackStg;
3523e794565SJung-uk Kim 
3533e794565SJung-uk Kim 
3543e794565SJung-uk Kim 
3553e794565SJung-uk Kim yyyFT yyyRCIL[1];
3563e794565SJung-uk Kim 
3573e794565SJung-uk Kim short yyyIIIEL[] = {0,
3583e794565SJung-uk Kim 0,2,6,10,14,18,22,24,
3593e794565SJung-uk Kim };
3603e794565SJung-uk Kim 
3613e794565SJung-uk Kim long yyyIIEL[] = {
3623e794565SJung-uk Kim 0,0,0,0,0,0,0,0,0,0,0,0,
3633e794565SJung-uk Kim 0,0,0,0,0,0,0,0,0,0,0,0,
3643e794565SJung-uk Kim 1,1,
3653e794565SJung-uk Kim };
3663e794565SJung-uk Kim 
3673e794565SJung-uk Kim long yyyIEL[] = {
3683e794565SJung-uk Kim 0,0,0,
3693e794565SJung-uk Kim };
3703e794565SJung-uk Kim 
3713e794565SJung-uk Kim yyyFT yyyEntL[1];
3723e794565SJung-uk Kim 
yyyfatal(char * msg)3733e794565SJung-uk Kim void yyyfatal(char *msg)
3743e794565SJung-uk Kim {fputs(msg,stderr);exit(-1);}
3753e794565SJung-uk Kim 
3763e794565SJung-uk Kim 
3773e794565SJung-uk Kim 
3783e794565SJung-uk Kim #define yyySSALof 'S'
3793e794565SJung-uk Kim #define yyyRSof   'q'
3803e794565SJung-uk Kim #define yyyTSof   't'
3813e794565SJung-uk Kim 
3823e794565SJung-uk Kim 
3833e794565SJung-uk Kim 
yyyHandleOverflow(char which)3843e794565SJung-uk Kim void yyyHandleOverflow(char which)
3858e022d3cSDag-Erling Smørgrav   {char *msg1 = "?", *msg2;
3868e022d3cSDag-Erling Smørgrav    long  oldSize = 0, newSize;
3873e794565SJung-uk Kim    switch(which)
3883e794565SJung-uk Kim      {
3893e794565SJung-uk Kim       case yyySSALof :
3903e794565SJung-uk Kim            msg1 = "SSAL overflow: ";
3913e794565SJung-uk Kim            oldSize = yyySSALspaceSize;
3923e794565SJung-uk Kim            break;
3933e794565SJung-uk Kim       case yyyRSof   :
3943e794565SJung-uk Kim            msg1 = "ready set overflow: ";
3953e794565SJung-uk Kim            oldSize = yyyRSmaxSize;
3963e794565SJung-uk Kim            break;
3973e794565SJung-uk Kim       case yyyTSof   :
3983e794565SJung-uk Kim            msg1 = "traversal stack overflow: ";
3993e794565SJung-uk Kim            oldSize = yyyTravStackMaxSize;
4003e794565SJung-uk Kim            break;
4013e794565SJung-uk Kim       default        :;
4023e794565SJung-uk Kim      }
4033e794565SJung-uk Kim    newSize = (3*oldSize)/2;
4043e794565SJung-uk Kim    if (newSize < 100) newSize = 100;
4053e794565SJung-uk Kim    fputs(msg1,stderr);
4063e794565SJung-uk Kim    fprintf(stderr,"size was %ld.\n",oldSize);
4073e794565SJung-uk Kim    msg2 = "     Have to modify evaluator:  -Y%c%ld.\n";
4083e794565SJung-uk Kim    fprintf(stderr,msg2,which,newSize);
4093e794565SJung-uk Kim    exit(-1);
4103e794565SJung-uk Kim   }
4113e794565SJung-uk Kim 
4123e794565SJung-uk Kim 
4133e794565SJung-uk Kim 
yyySignalEnts(yyyGNT * node,long startP,long stopP)4143e794565SJung-uk Kim void yyySignalEnts(yyyGNT *node,long startP,long stopP)
4153e794565SJung-uk Kim   {yyyGNT *dumNode;
4163e794565SJung-uk Kim 
4173e794565SJung-uk Kim    while (startP < stopP)
4183e794565SJung-uk Kim      {
4193e794565SJung-uk Kim       if (!yyyEntL[startP]) dumNode = node;
4203e794565SJung-uk Kim          else dumNode = (node->cL)[yyyEntL[startP]-1];
4213e794565SJung-uk Kim       if (!(--((dumNode->refCountList)[yyyEntL[startP+1]]
4223e794565SJung-uk Kim               )
4233e794565SJung-uk Kim            )
4243e794565SJung-uk Kim          )
4253e794565SJung-uk Kim          {
4263e794565SJung-uk Kim           if (++yyyRSTop == yyyAfterRS)
4273e794565SJung-uk Kim              {yyyHandleOverflow(yyyRSof);
4283e794565SJung-uk Kim               break;
4293e794565SJung-uk Kim              }
4303e794565SJung-uk Kim           yyyRSTop->node = dumNode;
4313e794565SJung-uk Kim           yyyRSTop->whichSym = yyyEntL[startP];
4323e794565SJung-uk Kim           yyyRSTop->wa = yyyEntL[startP+1];
4333e794565SJung-uk Kim          }
4343e794565SJung-uk Kim       startP += 2;
4353e794565SJung-uk Kim      }
4363e794565SJung-uk Kim   }
4373e794565SJung-uk Kim 
4383e794565SJung-uk Kim 
4393e794565SJung-uk Kim 
4403e794565SJung-uk Kim 
4413e794565SJung-uk Kim 
4423e794565SJung-uk Kim 
yyySolveAndSignal()4433e794565SJung-uk Kim void yyySolveAndSignal() {
4443e794565SJung-uk Kim long yyyiDum,*yyypL;
4453e794565SJung-uk Kim int yyyws,yyywa;
4463e794565SJung-uk Kim yyyGNT *yyyRSTopN,*yyyRefN;
4473e794565SJung-uk Kim yyyParent yyyRSTopNp;
4483e794565SJung-uk Kim 
4493e794565SJung-uk Kim 
4503e794565SJung-uk Kim yyyRSTopNp = (yyyRSTopN = yyyRSTop->node)->parent;
4513e794565SJung-uk Kim yyyRefN= (yyyws = (yyyRSTop->whichSym))?yyyRSTopNp.noderef:yyyRSTopN;
4523e794565SJung-uk Kim yyywa = yyyRSTop->wa;
4533e794565SJung-uk Kim yyyRSTop--;
4543e794565SJung-uk Kim switch(yyyRefN->prodNum) {
4553e794565SJung-uk Kim case 1:  /***yacc rule 1***/
4563e794565SJung-uk Kim   switch (yyyws) {
4573e794565SJung-uk Kim   }
4583e794565SJung-uk Kim break;
4593e794565SJung-uk Kim case 2:  /***yacc rule 2***/
4603e794565SJung-uk Kim   switch (yyyws) {
4613e794565SJung-uk Kim   }
4623e794565SJung-uk Kim break;
4633e794565SJung-uk Kim case 3:  /***yacc rule 3***/
4643e794565SJung-uk Kim   switch (yyyws) {
4653e794565SJung-uk Kim   }
4663e794565SJung-uk Kim break;
4673e794565SJung-uk Kim case 4:  /***yacc rule 4***/
4683e794565SJung-uk Kim   switch (yyyws) {
4693e794565SJung-uk Kim   }
4703e794565SJung-uk Kim break;
4713e794565SJung-uk Kim case 5:  /***yacc rule 5***/
4723e794565SJung-uk Kim   switch (yyyws) {
4733e794565SJung-uk Kim   }
4743e794565SJung-uk Kim break;
4753e794565SJung-uk Kim case 6:  /***yacc rule 6***/
4763e794565SJung-uk Kim   switch (yyyws) {
4773e794565SJung-uk Kim   }
4783e794565SJung-uk Kim break;
4793e794565SJung-uk Kim case 7:  /***yacc rule 7***/
4803e794565SJung-uk Kim   switch (yyyws) {
4813e794565SJung-uk Kim   case 1:  /**/
4823e794565SJung-uk Kim     switch (yyywa) {
4833e794565SJung-uk Kim     }
4843e794565SJung-uk Kim   break;
4853e794565SJung-uk Kim   }
4863e794565SJung-uk Kim break;
4873e794565SJung-uk Kim case 8:  /***yacc rule 8***/
4883e794565SJung-uk Kim   switch (yyyws) {
4893e794565SJung-uk Kim   case 1:  /**/
4903e794565SJung-uk Kim     switch (yyywa) {
4913e794565SJung-uk Kim     }
4923e794565SJung-uk Kim   break;
4933e794565SJung-uk Kim   }
4943e794565SJung-uk Kim break;
4953e794565SJung-uk Kim } /* switch */
4963e794565SJung-uk Kim 
4973e794565SJung-uk Kim if (yyyws)  /* the just-solved instance was inherited. */
4983e794565SJung-uk Kim    {if (yyyRSTopN->prodNum)
4993e794565SJung-uk Kim        {yyyiDum = yyyIIEL[yyyIIIEL[yyyRSTopN->prodNum]] + yyywa;
5003e794565SJung-uk Kim         yyySignalEnts(yyyRSTopN,yyyIEL[yyyiDum],
5013e794565SJung-uk Kim                                 yyyIEL[yyyiDum+1]
5023e794565SJung-uk Kim                      );
5033e794565SJung-uk Kim        }
5043e794565SJung-uk Kim    }
5053e794565SJung-uk Kim    else     /* the just-solved instance was synthesized. */
5063e794565SJung-uk Kim    {if (!(yyyRSTopN->parentIsStack)) /* node has a parent. */
5073e794565SJung-uk Kim        {yyyiDum = yyyIIEL[yyyIIIEL[yyyRSTopNp.noderef->prodNum] +
5083e794565SJung-uk Kim                           yyyRSTopN->whichSym
5093e794565SJung-uk Kim                          ] +
5103e794565SJung-uk Kim                   yyywa;
5113e794565SJung-uk Kim         yyySignalEnts(yyyRSTopNp.noderef,
5123e794565SJung-uk Kim                       yyyIEL[yyyiDum],
5133e794565SJung-uk Kim                       yyyIEL[yyyiDum+1]
5143e794565SJung-uk Kim                      );
5153e794565SJung-uk Kim        }
5163e794565SJung-uk Kim        else   /* node is still on the stack--it has no parent yet. */
5173e794565SJung-uk Kim        {yyypL = &(yyyRSTopNp.stackref->solvedSAlist);
5183e794565SJung-uk Kim         if (yyySSALCfreeList == yyyLambdaSSAL)
5193e794565SJung-uk Kim            {yyySSALspace[yyyNewSSALC].next = *yyypL;
5203e794565SJung-uk Kim             if ((*yyypL = yyyNewSSALC++) == yyySSALspaceSize)
5213e794565SJung-uk Kim                yyyHandleOverflow(yyySSALof);
5223e794565SJung-uk Kim            }
5233e794565SJung-uk Kim            else
5243e794565SJung-uk Kim            {yyyiDum = yyySSALCfreeList;
5253e794565SJung-uk Kim             yyySSALCfreeList = yyySSALspace[yyySSALCfreeList].next;
5263e794565SJung-uk Kim             yyySSALspace[yyyiDum].next = *yyypL;
5273e794565SJung-uk Kim             *yyypL = yyyiDum;
5283e794565SJung-uk Kim            }
5293e794565SJung-uk Kim         yyySSALspace[*yyypL].attrbNum = yyywa;
5303e794565SJung-uk Kim        }
5313e794565SJung-uk Kim    }
5323e794565SJung-uk Kim 
5333e794565SJung-uk Kim } /* yyySolveAndSignal */
5343e794565SJung-uk Kim 
5353e794565SJung-uk Kim 
5363e794565SJung-uk Kim 
5373e794565SJung-uk Kim 
5383e794565SJung-uk Kim 
5393e794565SJung-uk Kim 
5403e794565SJung-uk Kim #define condStg unsigned int conds;
5413e794565SJung-uk Kim #define yyyClearConds {yyyTST->conds = 0;}
5423e794565SJung-uk Kim #define yyySetCond(n) {yyyTST->conds += (1<<(n));}
5433e794565SJung-uk Kim #define yyyCond(n) ((yyyTST->conds & (1<<(n)))?1:0)
5443e794565SJung-uk Kim 
5453e794565SJung-uk Kim 
5463e794565SJung-uk Kim 
5473e794565SJung-uk Kim struct yyyTravStackItem {yyyGNT *node;
5483e794565SJung-uk Kim                          char isReady;
5493e794565SJung-uk Kim                          condStg
5503e794565SJung-uk Kim                         };
5513e794565SJung-uk Kim 
5523e794565SJung-uk Kim 
5533e794565SJung-uk Kim 
yyyDoTraversals(yyyGNT * rootNode)5543e794565SJung-uk Kim void yyyDoTraversals(yyyGNT *rootNode)
5553e794565SJung-uk Kim {struct yyyTravStackItem *yyyTravStack,*yyyTST,*yyyAfterTravStack;
5563e794565SJung-uk Kim  yyyGNT *yyyTSTn,**yyyCLptr2;
5573e794565SJung-uk Kim  int yyyi,yyyRL,yyyPass;
5583e794565SJung-uk Kim  int i;
5593e794565SJung-uk Kim 
5603e794565SJung-uk Kim  if (!yyyYok) return;
5613e794565SJung-uk Kim  if ((yyyTravStack =
5623e794565SJung-uk Kim                  ((struct yyyTravStackItem *)
5633e794565SJung-uk Kim                   calloc((size_t)yyyTravStackMaxSize,
5643e794565SJung-uk Kim                          (size_t)sizeof(struct yyyTravStackItem)
5653e794565SJung-uk Kim                         )
5663e794565SJung-uk Kim                  )
5673e794565SJung-uk Kim      )
5683e794565SJung-uk Kim      ==
5693e794565SJung-uk Kim      (struct yyyTravStackItem *)NULL
5703e794565SJung-uk Kim     )
5713e794565SJung-uk Kim     {fputs("malloc error in traversal stack allocation\n",stderr);
5723e794565SJung-uk Kim      exit(-1);
5733e794565SJung-uk Kim     }
5743e794565SJung-uk Kim 
5753e794565SJung-uk Kim yyyAfterTravStack = yyyTravStack + yyyTravStackMaxSize;
5763e794565SJung-uk Kim yyyTravStack++;
5773e794565SJung-uk Kim 
5783e794565SJung-uk Kim 
5793e794565SJung-uk Kim for (yyyi=0; yyyi<2; yyyi++) {
5803e794565SJung-uk Kim yyyTST = yyyTravStack;
5813e794565SJung-uk Kim yyyTST->node = rootNode;
5823e794565SJung-uk Kim yyyTST->isReady = 0;
5833e794565SJung-uk Kim yyyClearConds
5843e794565SJung-uk Kim 
5853e794565SJung-uk Kim while(yyyTST >= yyyTravStack)
5863e794565SJung-uk Kim   {yyyTSTn = yyyTST->node;
5873e794565SJung-uk Kim    if (yyyTST->isReady)
5883e794565SJung-uk Kim       {yyyPass = 1;
5893e794565SJung-uk Kim        goto yyyTravSwitch;
5903e794565SJung-uk Kim yyyTpop:
5913e794565SJung-uk Kim        yyyTST--;
5923e794565SJung-uk Kim       }
5933e794565SJung-uk Kim       else
5943e794565SJung-uk Kim       {yyyPass = 0;
5953e794565SJung-uk Kim        goto yyyTravSwitch;
5963e794565SJung-uk Kim yyyTpush:
5973e794565SJung-uk Kim        yyyTST->isReady = 1;
5983e794565SJung-uk Kim        if (yyyTSTn->prodNum)
5993e794565SJung-uk Kim           {if (yyyRL)
6003e794565SJung-uk Kim              {yyyCLptr2 = yyyTSTn->cL;
6013e794565SJung-uk Kim               i = yyyTSTn->cLlen;
6023e794565SJung-uk Kim               while (i--)
6033e794565SJung-uk Kim                 {if (++yyyTST == yyyAfterTravStack)
6043e794565SJung-uk Kim                     yyyHandleOverflow(yyyTSof);
6053e794565SJung-uk Kim                     else
6063e794565SJung-uk Kim                     {yyyTST->node = *yyyCLptr2;
6073e794565SJung-uk Kim                      yyyTST->isReady = 0;
6083e794565SJung-uk Kim                      yyyClearConds
6093e794565SJung-uk Kim                     }
6103e794565SJung-uk Kim                  yyyCLptr2++;
6113e794565SJung-uk Kim                 }
6123e794565SJung-uk Kim              } /* right to left */
6133e794565SJung-uk Kim              else  /* left to right */
6143e794565SJung-uk Kim              {i = yyyTSTn->cLlen;
6153e794565SJung-uk Kim               yyyCLptr2 = yyyTSTn->cL + i;
6163e794565SJung-uk Kim               while (i--)
6173e794565SJung-uk Kim                 {yyyCLptr2--;
6183e794565SJung-uk Kim                  if (++yyyTST == yyyAfterTravStack)
6193e794565SJung-uk Kim                     yyyHandleOverflow(yyyTSof);
6203e794565SJung-uk Kim                     else
6213e794565SJung-uk Kim                     {yyyTST->node = *yyyCLptr2;
6223e794565SJung-uk Kim                      yyyTST->isReady = 0;
6233e794565SJung-uk Kim                      yyyClearConds
6243e794565SJung-uk Kim                     }
6253e794565SJung-uk Kim                 }
6263e794565SJung-uk Kim              } /* left to right */
6273e794565SJung-uk Kim           }
6283e794565SJung-uk Kim       } /* else */
6293e794565SJung-uk Kim    continue;
6303e794565SJung-uk Kim yyyTravSwitch:
6313e794565SJung-uk Kim 				switch(yyyTSTn->prodNum)	{
6323e794565SJung-uk Kim case 1:
6333e794565SJung-uk Kim 	switch(yyyi)	{
6343e794565SJung-uk Kim 		case 0:
6353e794565SJung-uk Kim 			switch(yyyPass)	{
6363e794565SJung-uk Kim 				case 0:
6373e794565SJung-uk Kim yyyRL = 0;yyySetCond(0)
6383e794565SJung-uk Kim 
6393e794565SJung-uk Kim if (!
6403e794565SJung-uk Kim #line 24 "expr.Y"
6413e794565SJung-uk Kim   (1)
6423e794565SJung-uk Kim #line 444 "expr.oxout.y"
6433e794565SJung-uk Kim ) yyySetCond(1)
6443e794565SJung-uk Kim yyySetCond(2)
6453e794565SJung-uk Kim 
6463e794565SJung-uk Kim 				case 1:
6473e794565SJung-uk Kim 
6483e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
6493e794565SJung-uk Kim #line 24 "expr.Y"
6503e794565SJung-uk Kim 
6513e794565SJung-uk Kim #line 453 "expr.oxout.y"
6523e794565SJung-uk Kim }
6533e794565SJung-uk Kim if (yyyCond(1) != yyyPass) {
6543e794565SJung-uk Kim #line 24 "expr.Y"
6553e794565SJung-uk Kim  printf("\n");
6563e794565SJung-uk Kim 
6573e794565SJung-uk Kim #line 459 "expr.oxout.y"
6583e794565SJung-uk Kim }
6593e794565SJung-uk Kim if (yyyCond(2) != yyyPass) {
6603e794565SJung-uk Kim #line 25 "expr.Y"
6613e794565SJung-uk Kim   printf("prefix:   ");
6623e794565SJung-uk Kim 
6633e794565SJung-uk Kim #line 465 "expr.oxout.y"
6643e794565SJung-uk Kim }
6653e794565SJung-uk Kim 				break;
6663e794565SJung-uk Kim 					}
6673e794565SJung-uk Kim 		break;
6683e794565SJung-uk Kim 		case 1:
6693e794565SJung-uk Kim 			switch(yyyPass)	{
6703e794565SJung-uk Kim 				case 0:
6713e794565SJung-uk Kim yyyRL = 0;
6723e794565SJung-uk Kim if (
6733e794565SJung-uk Kim #line 23 "expr.Y"
6743e794565SJung-uk Kim   (1)
6753e794565SJung-uk Kim #line 477 "expr.oxout.y"
6763e794565SJung-uk Kim ) yyySetCond(2)
6773e794565SJung-uk Kim 
6783e794565SJung-uk Kim 				case 1:
6793e794565SJung-uk Kim 
6803e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
6813e794565SJung-uk Kim #line 22 "expr.Y"
6823e794565SJung-uk Kim  printf("\n");
6833e794565SJung-uk Kim 
6843e794565SJung-uk Kim #line 486 "expr.oxout.y"
6853e794565SJung-uk Kim }
6863e794565SJung-uk Kim if (yyyCond(1) != yyyPass) {
6873e794565SJung-uk Kim #line 23 "expr.Y"
6883e794565SJung-uk Kim 
6893e794565SJung-uk Kim #line 491 "expr.oxout.y"
6903e794565SJung-uk Kim }
6913e794565SJung-uk Kim if (yyyCond(2) != yyyPass) {
6923e794565SJung-uk Kim #line 23 "expr.Y"
6938e022d3cSDag-Erling Smørgrav  printf("postfix:  ");
6943e794565SJung-uk Kim 
6953e794565SJung-uk Kim #line 497 "expr.oxout.y"
6963e794565SJung-uk Kim }
6973e794565SJung-uk Kim 				break;
6983e794565SJung-uk Kim 					}
6993e794565SJung-uk Kim 		break;
7003e794565SJung-uk Kim 			}
7013e794565SJung-uk Kim 
7023e794565SJung-uk Kim break;
7033e794565SJung-uk Kim case 2:
7043e794565SJung-uk Kim 	switch(yyyi)	{
7053e794565SJung-uk Kim 		case 0:
7063e794565SJung-uk Kim 			switch(yyyPass)	{
7073e794565SJung-uk Kim 				case 0:
7083e794565SJung-uk Kim yyyRL = 0;yyySetCond(0)
7093e794565SJung-uk Kim 
7103e794565SJung-uk Kim 				case 1:
7113e794565SJung-uk Kim 
7123e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
7133e794565SJung-uk Kim #line 29 "expr.Y"
7143e794565SJung-uk Kim   printf(" * ");
7153e794565SJung-uk Kim 
7163e794565SJung-uk Kim #line 518 "expr.oxout.y"
7173e794565SJung-uk Kim }
7183e794565SJung-uk Kim 				break;
7193e794565SJung-uk Kim 					}
7203e794565SJung-uk Kim 		break;
7213e794565SJung-uk Kim 		case 1:
7223e794565SJung-uk Kim 			switch(yyyPass)	{
7233e794565SJung-uk Kim 				case 0:
7243e794565SJung-uk Kim yyyRL = 0;
7253e794565SJung-uk Kim 				case 1:
7263e794565SJung-uk Kim 
7273e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
7283e794565SJung-uk Kim #line 28 "expr.Y"
7293e794565SJung-uk Kim  printf(" * ");
7303e794565SJung-uk Kim 
7313e794565SJung-uk Kim #line 533 "expr.oxout.y"
7323e794565SJung-uk Kim }
7333e794565SJung-uk Kim 				break;
7343e794565SJung-uk Kim 					}
7353e794565SJung-uk Kim 		break;
7363e794565SJung-uk Kim 			}
7373e794565SJung-uk Kim 
7383e794565SJung-uk Kim break;
7393e794565SJung-uk Kim case 3:
7403e794565SJung-uk Kim 	switch(yyyi)	{
7413e794565SJung-uk Kim 		case 0:
7423e794565SJung-uk Kim 			switch(yyyPass)	{
7433e794565SJung-uk Kim 				case 0:
7443e794565SJung-uk Kim yyyRL = 0;yyySetCond(0)
7453e794565SJung-uk Kim 
7463e794565SJung-uk Kim 				case 1:
7473e794565SJung-uk Kim 
7483e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
7493e794565SJung-uk Kim #line 32 "expr.Y"
7503e794565SJung-uk Kim   printf(" + ");
7513e794565SJung-uk Kim 
7523e794565SJung-uk Kim #line 554 "expr.oxout.y"
7533e794565SJung-uk Kim }
7543e794565SJung-uk Kim 				break;
7553e794565SJung-uk Kim 					}
7563e794565SJung-uk Kim 		break;
7573e794565SJung-uk Kim 		case 1:
7583e794565SJung-uk Kim 			switch(yyyPass)	{
7593e794565SJung-uk Kim 				case 0:
7603e794565SJung-uk Kim yyyRL = 0;
7613e794565SJung-uk Kim 				case 1:
7623e794565SJung-uk Kim 
7633e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
7643e794565SJung-uk Kim #line 33 "expr.Y"
7653e794565SJung-uk Kim  printf(" + ");
7663e794565SJung-uk Kim 
7673e794565SJung-uk Kim #line 569 "expr.oxout.y"
7683e794565SJung-uk Kim }
7693e794565SJung-uk Kim 				break;
7703e794565SJung-uk Kim 					}
7713e794565SJung-uk Kim 		break;
7723e794565SJung-uk Kim 			}
7733e794565SJung-uk Kim 
7743e794565SJung-uk Kim break;
7753e794565SJung-uk Kim case 4:
7763e794565SJung-uk Kim 	switch(yyyi)	{
7773e794565SJung-uk Kim 		case 0:
7783e794565SJung-uk Kim 			switch(yyyPass)	{
7793e794565SJung-uk Kim 				case 0:
7803e794565SJung-uk Kim yyyRL = 0;yyySetCond(0)
7813e794565SJung-uk Kim 
7823e794565SJung-uk Kim 				case 1:
7833e794565SJung-uk Kim 
7843e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
7853e794565SJung-uk Kim #line 37 "expr.Y"
7863e794565SJung-uk Kim   printf(" / ");
7873e794565SJung-uk Kim 
7883e794565SJung-uk Kim #line 590 "expr.oxout.y"
7893e794565SJung-uk Kim }
7903e794565SJung-uk Kim 				break;
7913e794565SJung-uk Kim 					}
7923e794565SJung-uk Kim 		break;
7933e794565SJung-uk Kim 		case 1:
7943e794565SJung-uk Kim 			switch(yyyPass)	{
7953e794565SJung-uk Kim 				case 0:
7963e794565SJung-uk Kim yyyRL = 0;
7973e794565SJung-uk Kim 				case 1:
7983e794565SJung-uk Kim 
7993e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
8003e794565SJung-uk Kim #line 36 "expr.Y"
8013e794565SJung-uk Kim  printf(" / ");
8023e794565SJung-uk Kim 
8033e794565SJung-uk Kim #line 605 "expr.oxout.y"
8043e794565SJung-uk Kim }
8053e794565SJung-uk Kim 				break;
8063e794565SJung-uk Kim 					}
8073e794565SJung-uk Kim 		break;
8083e794565SJung-uk Kim 			}
8093e794565SJung-uk Kim 
8103e794565SJung-uk Kim break;
8113e794565SJung-uk Kim case 5:
8123e794565SJung-uk Kim 	switch(yyyi)	{
8133e794565SJung-uk Kim 		case 0:
8143e794565SJung-uk Kim 			switch(yyyPass)	{
8153e794565SJung-uk Kim 				case 0:
8163e794565SJung-uk Kim yyyRL = 0;yyySetCond(0)
8173e794565SJung-uk Kim 
8183e794565SJung-uk Kim 				case 1:
8193e794565SJung-uk Kim 
8203e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
8213e794565SJung-uk Kim #line 41 "expr.Y"
8223e794565SJung-uk Kim   printf(" - ");
8233e794565SJung-uk Kim 
8243e794565SJung-uk Kim #line 626 "expr.oxout.y"
8253e794565SJung-uk Kim }
8263e794565SJung-uk Kim 				break;
8273e794565SJung-uk Kim 					}
8283e794565SJung-uk Kim 		break;
8293e794565SJung-uk Kim 		case 1:
8303e794565SJung-uk Kim 			switch(yyyPass)	{
8313e794565SJung-uk Kim 				case 0:
8323e794565SJung-uk Kim yyyRL = 0;
8333e794565SJung-uk Kim 				case 1:
8343e794565SJung-uk Kim 
8353e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
8363e794565SJung-uk Kim #line 40 "expr.Y"
8373e794565SJung-uk Kim  printf(" - ");
8383e794565SJung-uk Kim 
8393e794565SJung-uk Kim #line 641 "expr.oxout.y"
8403e794565SJung-uk Kim }
8413e794565SJung-uk Kim 				break;
8423e794565SJung-uk Kim 					}
8433e794565SJung-uk Kim 		break;
8443e794565SJung-uk Kim 			}
8453e794565SJung-uk Kim 
8463e794565SJung-uk Kim break;
8473e794565SJung-uk Kim case 6:
8483e794565SJung-uk Kim 	switch(yyyi)	{
8493e794565SJung-uk Kim 		case 0:
8503e794565SJung-uk Kim 			switch(yyyPass)	{
8513e794565SJung-uk Kim 				case 0:
8523e794565SJung-uk Kim yyyRL = 0;
8533e794565SJung-uk Kim 				case 1:
8543e794565SJung-uk Kim 
8553e794565SJung-uk Kim 				break;
8563e794565SJung-uk Kim 					}
8573e794565SJung-uk Kim 		break;
8583e794565SJung-uk Kim 		case 1:
8593e794565SJung-uk Kim 			switch(yyyPass)	{
8603e794565SJung-uk Kim 				case 0:
8613e794565SJung-uk Kim yyyRL = 0;
8623e794565SJung-uk Kim 				case 1:
8633e794565SJung-uk Kim 
8643e794565SJung-uk Kim 				break;
8653e794565SJung-uk Kim 					}
8663e794565SJung-uk Kim 		break;
8673e794565SJung-uk Kim 			}
8683e794565SJung-uk Kim 
8693e794565SJung-uk Kim break;
8703e794565SJung-uk Kim case 7:
8713e794565SJung-uk Kim 	switch(yyyi)	{
8723e794565SJung-uk Kim 		case 0:
8733e794565SJung-uk Kim 			switch(yyyPass)	{
8743e794565SJung-uk Kim 				case 0:
8753e794565SJung-uk Kim yyyRL = 0;yyySetCond(0)
8763e794565SJung-uk Kim 
8773e794565SJung-uk Kim 				case 1:
8783e794565SJung-uk Kim 
8793e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
8803e794565SJung-uk Kim #line 46 "expr.Y"
8813e794565SJung-uk Kim   printf(" %s ",yyyTSTn->cL[0]->yyyAttrbs.yyyAttrb1.lexeme);
8823e794565SJung-uk Kim 
8833e794565SJung-uk Kim #line 685 "expr.oxout.y"
8843e794565SJung-uk Kim }
8853e794565SJung-uk Kim 				break;
8863e794565SJung-uk Kim 					}
8873e794565SJung-uk Kim 		break;
8883e794565SJung-uk Kim 		case 1:
8893e794565SJung-uk Kim 			switch(yyyPass)	{
8903e794565SJung-uk Kim 				case 0:
8913e794565SJung-uk Kim yyyRL = 0;
8923e794565SJung-uk Kim 				case 1:
8933e794565SJung-uk Kim 
8943e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
8953e794565SJung-uk Kim #line 45 "expr.Y"
8963e794565SJung-uk Kim  printf(" %s ",yyyTSTn->cL[0]->yyyAttrbs.yyyAttrb1.lexeme);
8973e794565SJung-uk Kim 
8983e794565SJung-uk Kim #line 700 "expr.oxout.y"
8993e794565SJung-uk Kim }
9003e794565SJung-uk Kim 				break;
9013e794565SJung-uk Kim 					}
9023e794565SJung-uk Kim 		break;
9033e794565SJung-uk Kim 			}
9043e794565SJung-uk Kim 
9053e794565SJung-uk Kim break;
9063e794565SJung-uk Kim case 8:
9073e794565SJung-uk Kim 	switch(yyyi)	{
9083e794565SJung-uk Kim 		case 0:
9093e794565SJung-uk Kim 			switch(yyyPass)	{
9103e794565SJung-uk Kim 				case 0:
9113e794565SJung-uk Kim yyyRL = 0;yyySetCond(0)
9123e794565SJung-uk Kim 
9133e794565SJung-uk Kim 				case 1:
9143e794565SJung-uk Kim 
9153e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
9163e794565SJung-uk Kim #line 50 "expr.Y"
9173e794565SJung-uk Kim   printf(" %s ",yyyTSTn->cL[0]->yyyAttrbs.yyyAttrb1.lexeme);
9183e794565SJung-uk Kim 
9193e794565SJung-uk Kim #line 721 "expr.oxout.y"
9203e794565SJung-uk Kim }
9213e794565SJung-uk Kim 				break;
9223e794565SJung-uk Kim 					}
9233e794565SJung-uk Kim 		break;
9243e794565SJung-uk Kim 		case 1:
9253e794565SJung-uk Kim 			switch(yyyPass)	{
9263e794565SJung-uk Kim 				case 0:
9273e794565SJung-uk Kim yyyRL = 0;
9283e794565SJung-uk Kim 				case 1:
9293e794565SJung-uk Kim 
9303e794565SJung-uk Kim if (yyyCond(0) != yyyPass) {
9313e794565SJung-uk Kim #line 49 "expr.Y"
9323e794565SJung-uk Kim  printf(" %s ",yyyTSTn->cL[0]->yyyAttrbs.yyyAttrb1.lexeme);
9333e794565SJung-uk Kim 
9343e794565SJung-uk Kim #line 736 "expr.oxout.y"
9353e794565SJung-uk Kim }
9363e794565SJung-uk Kim 				break;
9373e794565SJung-uk Kim 					}
9383e794565SJung-uk Kim 		break;
9393e794565SJung-uk Kim 			}
9403e794565SJung-uk Kim 
9413e794565SJung-uk Kim break;
9423e794565SJung-uk Kim 								} /* switch */
9433e794565SJung-uk Kim    if (yyyPass) goto yyyTpop; else goto yyyTpush;
9443e794565SJung-uk Kim   } /* while */
9453e794565SJung-uk Kim  } /* for */
9463e794565SJung-uk Kim } /* yyyDoTraversals */
9473e794565SJung-uk Kim 
yyyExecuteRRsection(yyyGNT * rootNode)9483e794565SJung-uk Kim void yyyExecuteRRsection(yyyGNT *rootNode)  {
9493e794565SJung-uk Kim    int yyyi;
9503e794565SJung-uk Kim    long cycleSum = 0;
9513e794565SJung-uk Kim    long nNZrc = 0;
9523e794565SJung-uk Kim 
9533e794565SJung-uk Kim    if (!yyyYok) return;
9543e794565SJung-uk Kim    yyyCheckUnsolvedInstTrav(rootNode,&nNZrc,&cycleSum);
9553e794565SJung-uk Kim    if (nNZrc)
9563e794565SJung-uk Kim       {
9573e794565SJung-uk Kim        fputs("\n\n\n**********\n",stderr);
9583e794565SJung-uk Kim        fputs("cycle detected in completed parse tree",stderr);
9593e794565SJung-uk Kim        fputs(" after decoration.\n",stderr);
9603e794565SJung-uk Kim #if CYCLE_VERBOSE
9613e794565SJung-uk Kim        fprintf(stderr,
9623e794565SJung-uk Kim                "number of unsolved attribute instances == %ld.\n",
9633e794565SJung-uk Kim                nNZrc
9643e794565SJung-uk Kim               );
9653e794565SJung-uk Kim        fprintf(stderr,
9663e794565SJung-uk Kim                "total number of remaining dependencies == %ld.\n",
9673e794565SJung-uk Kim                cycleSum
9683e794565SJung-uk Kim               );
9693e794565SJung-uk Kim        fputs("average number of remaining dependencies\n",stderr);
9703e794565SJung-uk Kim        fprintf(stderr,"  per unsolved instance == %f.\n",
9713e794565SJung-uk Kim                ((float)(cycleSum)/(float)(nNZrc))
9723e794565SJung-uk Kim               );
9733e794565SJung-uk Kim #endif
9743e794565SJung-uk Kim        fprintf(stderr,
9753e794565SJung-uk Kim          "searching parse tree for %ld unsolved instances:\n",
9763e794565SJung-uk Kim                nNZrc
9773e794565SJung-uk Kim               );
9783e794565SJung-uk Kim        yyyUnsolvedInstSearchTravAux(rootNode);
9793e794565SJung-uk Kim       }
9803e794565SJung-uk Kim    yyyDoTraversals(rootNode);
9813e794565SJung-uk Kim } /* yyyExecuteRRsection */
9823e794565SJung-uk Kim 
9833e794565SJung-uk Kim 
9843e794565SJung-uk Kim 
9853e794565SJung-uk Kim yyyWAT yyyLRCIL[2] = {0,0,
9863e794565SJung-uk Kim };
9873e794565SJung-uk Kim 
9883e794565SJung-uk Kim 
9893e794565SJung-uk Kim 
yyyYoxInit(void)9903e794565SJung-uk Kim void yyyYoxInit(void)
9913e794565SJung-uk Kim   {
9923e794565SJung-uk Kim    static int yyyInitDone = 0;
9933e794565SJung-uk Kim    if (yyyInitDone) return;
9943e794565SJung-uk Kim 
9958e022d3cSDag-Erling Smørgrav    if ((yyyRS = (yyyRSitem *)
9968e022d3cSDag-Erling Smørgrav          calloc((size_t)(yyyRSmaxSize+1), (size_t)sizeof(yyyRSitem))
9973e794565SJung-uk Kim        )
9983e794565SJung-uk Kim        ==
9998e022d3cSDag-Erling Smørgrav        ((yyyRSitem *) NULL)
10003e794565SJung-uk Kim       )
10013e794565SJung-uk Kim       yyyfatal("malloc error in ox ready set space allocation\n");
10023e794565SJung-uk Kim    yyyRS++;
10033e794565SJung-uk Kim    yyyAfterRS = yyyRS + yyyRSmaxSize;
10043e794565SJung-uk Kim 
10053e794565SJung-uk Kim 
10063e794565SJung-uk Kim    if ((yyySSALspace = (struct yyySolvedSAlistCell *)
10073e794565SJung-uk Kim           calloc((size_t)(yyySSALspaceSize+1), (size_t)sizeof(struct yyySolvedSAlistCell))
10083e794565SJung-uk Kim        )
10093e794565SJung-uk Kim        ==
10103e794565SJung-uk Kim        ((struct yyySolvedSAlistCell *) NULL)
10113e794565SJung-uk Kim       )
10123e794565SJung-uk Kim       yyyfatal("malloc error in stack solved list space allocation\n");
10133e794565SJung-uk Kim    yyyInitDone = 1;
10143e794565SJung-uk Kim 
10153e794565SJung-uk Kim    yyyRSTop = yyyRS - 1;
10163e794565SJung-uk Kim   } /* yyyYoxInit */
10173e794565SJung-uk Kim 
10183e794565SJung-uk Kim 
10193e794565SJung-uk Kim 
yyyDecorate(void)10203e794565SJung-uk Kim void yyyDecorate(void)
10213e794565SJung-uk Kim   {
10223e794565SJung-uk Kim    while (yyyRSTop >= yyyRS)
10233e794565SJung-uk Kim       yyySolveAndSignal();
10243e794565SJung-uk Kim   }
10253e794565SJung-uk Kim 
10263e794565SJung-uk Kim 
10273e794565SJung-uk Kim 
yyyGenIntNode(long yyyProdNum,int yyyRHSlength,int yyyNattrbs,struct yyyOxAttrbs * yyval_OxAttrbs,...)10283e794565SJung-uk Kim void yyyGenIntNode(long yyyProdNum, int yyyRHSlength, int yyyNattrbs, struct yyyOxAttrbs *yyval_OxAttrbs, ...)
10293e794565SJung-uk Kim   {yyyWST i;
10303e794565SJung-uk Kim    yyySIT **yyyOxStackItem = &yyval_OxAttrbs->yyyOxStackItem;
10313e794565SJung-uk Kim    yyyGNT *gnpDum;
10323e794565SJung-uk Kim    va_list ap;
10333e794565SJung-uk Kim 
10343e794565SJung-uk Kim    *yyyOxStackItem = (yyySIT *) malloc((size_t)sizeof(yyySIT));
10353e794565SJung-uk Kim    if (*yyyOxStackItem == (yyySIT *) NULL)
10363e794565SJung-uk Kim       yyyfatal("malloc error in ox yacc semantic stack space allocation\n");
10373e794565SJung-uk Kim    (*yyyOxStackItem)->node =
10383e794565SJung-uk Kim                                 (yyyGNT *) malloc((size_t)sizeof(yyyGNT));
10393e794565SJung-uk Kim    if ((*yyyOxStackItem)->node == (yyyGNT *) NULL)
10403e794565SJung-uk Kim       yyyfatal("malloc error in ox node space allocation\n");
10413e794565SJung-uk Kim    (*yyyOxStackItem)->solvedSAlist = yyyLambdaSSAL;
10423e794565SJung-uk Kim    (*yyyOxStackItem)->node->parent.stackref = *yyyOxStackItem;
10433e794565SJung-uk Kim    (*yyyOxStackItem)->node->parentIsStack = 1;
10443e794565SJung-uk Kim    (*yyyOxStackItem)->node->cLlen  = yyyRHSlength;
10453e794565SJung-uk Kim    (*yyyOxStackItem)->node->cL =
10463e794565SJung-uk Kim             (yyyGNT **) calloc((size_t)yyyRHSlength, (size_t)sizeof(yyyGNT *));
10473e794565SJung-uk Kim    if ((*yyyOxStackItem)->node->cL == (yyyGNT **) NULL)
10483e794565SJung-uk Kim       yyyfatal("malloc error in ox child list space allocation\n");
10493e794565SJung-uk Kim    (*yyyOxStackItem)->node->refCountListLen = yyyNattrbs;
10503e794565SJung-uk Kim    (*yyyOxStackItem)->node->refCountList =
10513e794565SJung-uk Kim             (yyyRCT *) calloc((size_t)yyyNattrbs, (size_t)sizeof(yyyRCT));
10523e794565SJung-uk Kim    if ((*yyyOxStackItem)->node->refCountList == (yyyRCT *) NULL)
10533e794565SJung-uk Kim       yyyfatal("malloc error in ox reference count list space allocation\n");
10548e022d3cSDag-Erling Smørgrav    (*yyyOxStackItem)->node->prodNum = (int) yyyProdNum;
10553e794565SJung-uk Kim    va_start(ap, yyval_OxAttrbs);
10563e794565SJung-uk Kim    for (i=1;i<=yyyRHSlength;i++)
10573e794565SJung-uk Kim      {yyySIT *yaccStDum = va_arg(ap,struct yyyOxAttrbs *)->yyyOxStackItem;
10583e794565SJung-uk Kim       gnpDum = (*yyyOxStackItem)->node->cL[i-1] = yaccStDum->node;
10593e794565SJung-uk Kim       gnpDum->whichSym = i;
10603e794565SJung-uk Kim       gnpDum->parent.noderef = (*yyyOxStackItem)->node;
10613e794565SJung-uk Kim       gnpDum->parentIsStack = 0;
10623e794565SJung-uk Kim      }
10633e794565SJung-uk Kim    va_end(ap);
10643e794565SJung-uk Kim   }
10653e794565SJung-uk Kim 
10663e794565SJung-uk Kim 
10673e794565SJung-uk Kim 
10683e794565SJung-uk Kim #define yyyDECORfREQ 50
10693e794565SJung-uk Kim 
10703e794565SJung-uk Kim 
10713e794565SJung-uk Kim 
yyyAdjustINRC(long yyyProdNum,int yyyRHSlength,long startP,long stopP,struct yyyOxAttrbs * yyval_OxAttrbs,...)10723e794565SJung-uk Kim void yyyAdjustINRC(long yyyProdNum, int yyyRHSlength, long startP, long stopP, struct yyyOxAttrbs *yyval_OxAttrbs, ...)
10733e794565SJung-uk Kim   {yyyWST i;
10743e794565SJung-uk Kim    yyySIT *yyyOxStackItem = yyval_OxAttrbs->yyyOxStackItem;
10753e794565SJung-uk Kim    long SSALptr,SSALptrHead,*cPtrPtr;
10763e794565SJung-uk Kim    long *pL;
10773e794565SJung-uk Kim    yyyGNT *gnpDum;
10783e794565SJung-uk Kim    long iTemp;
10793e794565SJung-uk Kim    long nextP;
10803e794565SJung-uk Kim    static unsigned short intNodeCount = yyyDECORfREQ;
10813e794565SJung-uk Kim    va_list ap;
10823e794565SJung-uk Kim 
10833e794565SJung-uk Kim    nextP = startP;
10843e794565SJung-uk Kim    while (nextP < stopP)
10853e794565SJung-uk Kim      {if (yyyRCIL[nextP] == yyyR)
10863e794565SJung-uk Kim          {(yyyOxStackItem->node->refCountList)[yyyRCIL[nextP+1]] = yyyRCIL[nextP+2];
10873e794565SJung-uk Kim          }
10883e794565SJung-uk Kim          else
10893e794565SJung-uk Kim          {(((yyyOxStackItem->node->cL)[yyyRCIL[nextP]])->refCountList)[yyyRCIL[nextP+1]] = yyyRCIL[nextP+2];
10903e794565SJung-uk Kim          }
10913e794565SJung-uk Kim       nextP += 3;
10923e794565SJung-uk Kim      }
10933e794565SJung-uk Kim    pL = yyyIIEL + yyyIIIEL[yyyProdNum];
10943e794565SJung-uk Kim    va_start(ap, yyval_OxAttrbs);
10953e794565SJung-uk Kim    for (i=1;i<=yyyRHSlength;i++)
10963e794565SJung-uk Kim      {yyySIT *yaccStDum = va_arg(ap,struct yyyOxAttrbs *)->yyyOxStackItem;
10973e794565SJung-uk Kim       pL++;
10983e794565SJung-uk Kim       SSALptrHead = SSALptr = *(cPtrPtr = &(yaccStDum->solvedSAlist));
10993e794565SJung-uk Kim       if (SSALptr != yyyLambdaSSAL)
11003e794565SJung-uk Kim          {*cPtrPtr = yyyLambdaSSAL;
11013e794565SJung-uk Kim           do
11023e794565SJung-uk Kim             {
11033e794565SJung-uk Kim              iTemp = (*pL+yyySSALspace[SSALptr].attrbNum);
11043e794565SJung-uk Kim              yyySignalEnts(yyyOxStackItem->node,
11053e794565SJung-uk Kim                            yyyIEL[iTemp],
11063e794565SJung-uk Kim                            yyyIEL[iTemp+1]
11073e794565SJung-uk Kim                           );
11083e794565SJung-uk Kim              SSALptr = *(cPtrPtr = &(yyySSALspace[SSALptr].next));
11093e794565SJung-uk Kim             }
11103e794565SJung-uk Kim             while (SSALptr != yyyLambdaSSAL);
11113e794565SJung-uk Kim           *cPtrPtr = yyySSALCfreeList;
11123e794565SJung-uk Kim           yyySSALCfreeList = SSALptrHead;
11133e794565SJung-uk Kim          }
11143e794565SJung-uk Kim      }
11153e794565SJung-uk Kim    va_end(ap);
11163e794565SJung-uk Kim    nextP = startP + 2;
11173e794565SJung-uk Kim    while (nextP < stopP)
11183e794565SJung-uk Kim      {if (!yyyRCIL[nextP])
11193e794565SJung-uk Kim          {if (yyyRCIL[nextP-2] == yyyR)
11203e794565SJung-uk Kim              {pL = &(yyyOxStackItem->solvedSAlist);
11213e794565SJung-uk Kim               if (yyySSALCfreeList == yyyLambdaSSAL)
11223e794565SJung-uk Kim                  {yyySSALspace[yyyNewSSALC].next = *pL;
11233e794565SJung-uk Kim                   if ((*pL = yyyNewSSALC++) == yyySSALspaceSize)
11243e794565SJung-uk Kim                      yyyHandleOverflow(yyySSALof);
11253e794565SJung-uk Kim                  }
11263e794565SJung-uk Kim                  else
11273e794565SJung-uk Kim                  {iTemp = yyySSALCfreeList;
11283e794565SJung-uk Kim                   yyySSALCfreeList = yyySSALspace[yyySSALCfreeList].next;
11293e794565SJung-uk Kim                   yyySSALspace[iTemp].next = *pL;
11303e794565SJung-uk Kim                   *pL = iTemp;
11313e794565SJung-uk Kim                  }
11323e794565SJung-uk Kim               yyySSALspace[*pL].attrbNum = yyyRCIL[nextP-1];
11333e794565SJung-uk Kim              }
11343e794565SJung-uk Kim              else
11353e794565SJung-uk Kim              {if ((gnpDum = (yyyOxStackItem->node->cL)[yyyRCIL[nextP-2]])->prodNum != 0)
11363e794565SJung-uk Kim                  {
11373e794565SJung-uk Kim                   iTemp = yyyIIEL[yyyIIIEL[gnpDum->prodNum]] + yyyRCIL[nextP-1];
11383e794565SJung-uk Kim                   yyySignalEnts(gnpDum,
11393e794565SJung-uk Kim                                 yyyIEL[iTemp],
11403e794565SJung-uk Kim                                 yyyIEL[iTemp+1]
11413e794565SJung-uk Kim                                );
11423e794565SJung-uk Kim                  }
11433e794565SJung-uk Kim              }
11443e794565SJung-uk Kim          }
11453e794565SJung-uk Kim       nextP += 3;
11463e794565SJung-uk Kim      }
11473e794565SJung-uk Kim    if (!--intNodeCount)
11483e794565SJung-uk Kim       {intNodeCount = yyyDECORfREQ;
11493e794565SJung-uk Kim        yyyDecorate();
11503e794565SJung-uk Kim       }
11513e794565SJung-uk Kim   }
11523e794565SJung-uk Kim 
11533e794565SJung-uk Kim 
11543e794565SJung-uk Kim 
yyyGenLeaf(int nAttrbs,int typeNum,long startP,long stopP,YYSTYPE * mylval)11558e022d3cSDag-Erling Smørgrav void yyyGenLeaf(int nAttrbs,int typeNum,long startP,long stopP,YYSTYPE *mylval)
11563e794565SJung-uk Kim   {yyyRCT *rcPdum;
11578e022d3cSDag-Erling Smørgrav    yyySIT **yyyOxStackItem = &mylval->yyyOxAttrbs.yyyOxStackItem;
11583e794565SJung-uk Kim    (*yyyOxStackItem) = (yyySIT *) malloc((size_t)sizeof(yyySIT));
11593e794565SJung-uk Kim    if ((*yyyOxStackItem) == (yyySIT *) NULL)
11603e794565SJung-uk Kim       yyyfatal("malloc error in ox yacc semantic stack space allocation\n");
11613e794565SJung-uk Kim    (*yyyOxStackItem)->node =
11623e794565SJung-uk Kim                           (yyyGNT *) malloc((size_t)sizeof(yyyGNT))
11633e794565SJung-uk Kim                          ;
11643e794565SJung-uk Kim    if ((*yyyOxStackItem)->node == (yyyGNT *) NULL)
11653e794565SJung-uk Kim       yyyfatal("malloc error in ox node space allocation\n");
11663e794565SJung-uk Kim    (*yyyOxStackItem)->solvedSAlist = yyyLambdaSSAL;
11673e794565SJung-uk Kim    (*yyyOxStackItem)->node->parent.stackref = *yyyOxStackItem;
11683e794565SJung-uk Kim    (*yyyOxStackItem)->node->parentIsStack = 1;
11693e794565SJung-uk Kim    (*yyyOxStackItem)->node->cLlen = 0;
11703e794565SJung-uk Kim    (*yyyOxStackItem)->node->cL = (yyyGNT **)NULL;
11713e794565SJung-uk Kim    (*yyyOxStackItem)->node->refCountListLen = nAttrbs;
11723e794565SJung-uk Kim    rcPdum = (*yyyOxStackItem)->node->refCountList =
11733e794565SJung-uk Kim             (yyyRCT *) calloc((size_t)nAttrbs, (size_t)sizeof(yyyRCT));
11743e794565SJung-uk Kim    if (rcPdum == (yyyRCT *) NULL)
11753e794565SJung-uk Kim       yyyfatal("malloc error in ox reference count list space allocation\n");
11763e794565SJung-uk Kim    while (startP < stopP) rcPdum[yyyLRCIL[startP++]] = 0;
11773e794565SJung-uk Kim    (*yyyOxStackItem)->node->prodNum = 0;
11783e794565SJung-uk Kim    (*yyyOxStackItem)->node->whichSym = 0;
11793e794565SJung-uk Kim   }
11803e794565SJung-uk Kim 
11813e794565SJung-uk Kim 
11823e794565SJung-uk Kim 
yyyabort(void)11833e794565SJung-uk Kim void yyyabort(void)
11843e794565SJung-uk Kim   {yyyYok = 0;
11853e794565SJung-uk Kim   }
11863e794565SJung-uk Kim 
11873e794565SJung-uk Kim 
11883e794565SJung-uk Kim 
11893e794565SJung-uk Kim 
11903e794565SJung-uk Kim 
11913e794565SJung-uk Kim #define yyyLastProdNum 8
11923e794565SJung-uk Kim 
11933e794565SJung-uk Kim 
11943e794565SJung-uk Kim #define yyyNsorts 1
11953e794565SJung-uk Kim 
11963e794565SJung-uk Kim 
11973e794565SJung-uk Kim int yyyProdsInd[] = {
11983e794565SJung-uk Kim    0,
11993e794565SJung-uk Kim    0,   2,   6,  10,  14,  18,  22,  24,
12003e794565SJung-uk Kim   26,
12013e794565SJung-uk Kim };
12023e794565SJung-uk Kim 
12033e794565SJung-uk Kim 
12043e794565SJung-uk Kim int yyyProds[][2] = {
12053e794565SJung-uk Kim { 116,   0},{ 462,   0},{ 462,   0},{ 462,   0},{ 412,   0},
12063e794565SJung-uk Kim { 462,   0},{ 462,   0},{ 462,   0},{ 420,   0},{ 462,   0},
12073e794565SJung-uk Kim { 462,   0},{ 462,   0},{ 452,   0},{ 462,   0},{ 462,   0},
12083e794565SJung-uk Kim { 462,   0},{ 436,   0},{ 462,   0},{ 462,   0},{ 396,   0},
12093e794565SJung-uk Kim { 462,   0},{ 404,   0},{ 462,   0},{ 619,   1},{ 462,   0},
12103e794565SJung-uk Kim { 567,   1},
12113e794565SJung-uk Kim };
12123e794565SJung-uk Kim 
12133e794565SJung-uk Kim 
12143e794565SJung-uk Kim int yyySortsInd[] = {
12153e794565SJung-uk Kim   0,
12163e794565SJung-uk Kim   0,
12173e794565SJung-uk Kim   1,
12183e794565SJung-uk Kim };
12193e794565SJung-uk Kim 
12203e794565SJung-uk Kim 
12213e794565SJung-uk Kim int yyySorts[] = {
12223e794565SJung-uk Kim   413,
12233e794565SJung-uk Kim };
12243e794565SJung-uk Kim 
12253e794565SJung-uk Kim 
12263e794565SJung-uk Kim 
12273e794565SJung-uk Kim char *yyyStringTab[] = {
12283e794565SJung-uk Kim 0,0,0,0,0,
12293e794565SJung-uk Kim 0,0,0,0,0,
12303e794565SJung-uk Kim 0,0,0,0,0,
12313e794565SJung-uk Kim 0,0,0,0,0,
12323e794565SJung-uk Kim 0,0,0,0,0,
12333e794565SJung-uk Kim 0,0,0,0,0,
12343e794565SJung-uk Kim 0,0,0,0,0,
12353e794565SJung-uk Kim 0,0,0,0,0,
12363e794565SJung-uk Kim 0,0,0,0,0,
12373e794565SJung-uk Kim 0,0,0,0,0,
12383e794565SJung-uk Kim 0,0,0,0,0,
12393e794565SJung-uk Kim 0,0,0,0,0,
12403e794565SJung-uk Kim 0,0,0,0,0,
12413e794565SJung-uk Kim 0,0,0,0,0,
12423e794565SJung-uk Kim 0,0,0,0,0,
12433e794565SJung-uk Kim 0,0,0,0,0,
12443e794565SJung-uk Kim 0,0,0,0,0,
12453e794565SJung-uk Kim 0,0,0,0,0,
12463e794565SJung-uk Kim 0,0,0,0,0,
12473e794565SJung-uk Kim 0,0,0,0,0,
12483e794565SJung-uk Kim 0,0,0,0,0,
12493e794565SJung-uk Kim 0,0,0,0,0,
12503e794565SJung-uk Kim 0,0,0,0,0,
12513e794565SJung-uk Kim 0,"s",0,0,0,
12523e794565SJung-uk Kim 0,0,"y",0,0,
12533e794565SJung-uk Kim 0,0,0,0,0,
12543e794565SJung-uk Kim 0,0,0,0,0,
12553e794565SJung-uk Kim 0,0,0,0,0,
12563e794565SJung-uk Kim 0,0,0,0,0,
12573e794565SJung-uk Kim 0,0,0,0,0,
12583e794565SJung-uk Kim 0,0,0,0,0,
12593e794565SJung-uk Kim 0,0,0,0,0,
12603e794565SJung-uk Kim 0,0,0,0,0,
12613e794565SJung-uk Kim 0,0,0,0,0,
12623e794565SJung-uk Kim 0,0,0,0,0,
12633e794565SJung-uk Kim 0,0,0,0,0,
12643e794565SJung-uk Kim 0,0,0,0,0,
12653e794565SJung-uk Kim 0,0,0,0,0,
12663e794565SJung-uk Kim 0,0,0,0,0,
12673e794565SJung-uk Kim 0,0,0,0,0,
12683e794565SJung-uk Kim 0,0,0,0,0,
12693e794565SJung-uk Kim 0,0,0,0,0,
12703e794565SJung-uk Kim 0,0,0,0,0,
12713e794565SJung-uk Kim 0,0,0,0,0,
12723e794565SJung-uk Kim 0,0,0,0,0,
12733e794565SJung-uk Kim 0,0,0,0,0,
12743e794565SJung-uk Kim 0,0,0,0,0,
12753e794565SJung-uk Kim 0,0,0,0,0,
12763e794565SJung-uk Kim 0,0,0,0,0,
12773e794565SJung-uk Kim 0,0,0,0,0,
12783e794565SJung-uk Kim 0,0,0,0,0,
12793e794565SJung-uk Kim 0,0,0,0,0,
12803e794565SJung-uk Kim 0,0,0,0,0,
12813e794565SJung-uk Kim 0,0,0,0,0,
12823e794565SJung-uk Kim 0,0,0,0,0,
12833e794565SJung-uk Kim 0,0,0,0,0,
12843e794565SJung-uk Kim 0,0,0,0,0,
12853e794565SJung-uk Kim 0,0,0,0,0,
12863e794565SJung-uk Kim 0,0,0,0,0,
12873e794565SJung-uk Kim 0,0,0,0,0,
12883e794565SJung-uk Kim 0,0,0,0,0,
12893e794565SJung-uk Kim 0,0,0,0,0,
12903e794565SJung-uk Kim 0,0,0,0,0,
12913e794565SJung-uk Kim 0,0,0,0,0,
12923e794565SJung-uk Kim 0,0,0,0,0,
12933e794565SJung-uk Kim 0,"LRpre",0,0,0,
12943e794565SJung-uk Kim 0,0,0,0,0,
12953e794565SJung-uk Kim 0,0,0,0,0,
12963e794565SJung-uk Kim 0,0,0,0,0,
12973e794565SJung-uk Kim 0,0,0,0,0,
12983e794565SJung-uk Kim 0,0,0,0,0,
12993e794565SJung-uk Kim 0,0,0,0,0,
13003e794565SJung-uk Kim 0,0,0,0,0,
13013e794565SJung-uk Kim 0,0,0,0,0,
13023e794565SJung-uk Kim 0,0,0,0,0,
13033e794565SJung-uk Kim 0,0,0,0,0,
13043e794565SJung-uk Kim 0,0,0,0,0,
13053e794565SJung-uk Kim 0,0,0,0,0,
13063e794565SJung-uk Kim 0,0,0,0,0,
13073e794565SJung-uk Kim 0,"'('",0,0,0,
13083e794565SJung-uk Kim 0,0,0,0,"')'",
13093e794565SJung-uk Kim 0,0,0,0,0,
13103e794565SJung-uk Kim 0,0,"'*'","lexeme",0,
13113e794565SJung-uk Kim 0,0,0,0,0,
13123e794565SJung-uk Kim "'+'",0,0,0,0,
13133e794565SJung-uk Kim 0,0,0,0,0,
13143e794565SJung-uk Kim 0,0,0,0,0,
13153e794565SJung-uk Kim 0,"'-'",0,0,0,
13163e794565SJung-uk Kim 0,0,0,0,0,
13173e794565SJung-uk Kim 0,0,0,0,0,
13183e794565SJung-uk Kim 0,0,"'/'",0,0,
13193e794565SJung-uk Kim 0,0,0,0,0,
13203e794565SJung-uk Kim 0,0,"expr",0,0,
13213e794565SJung-uk Kim 0,0,0,0,0,
13223e794565SJung-uk Kim 0,0,0,0,0,
13233e794565SJung-uk Kim 0,"printf",0,0,0,
13243e794565SJung-uk Kim 0,0,0,0,0,
13253e794565SJung-uk Kim 0,0,0,0,0,
13263e794565SJung-uk Kim 0,0,0,0,0,
13273e794565SJung-uk Kim 0,0,0,0,0,
13283e794565SJung-uk Kim 0,0,0,0,0,
13293e794565SJung-uk Kim 0,0,0,0,0,
13303e794565SJung-uk Kim 0,0,0,0,0,
13313e794565SJung-uk Kim 0,0,0,0,0,
13323e794565SJung-uk Kim 0,0,0,0,0,
13333e794565SJung-uk Kim 0,0,0,0,0,
13343e794565SJung-uk Kim 0,0,0,0,0,
13353e794565SJung-uk Kim 0,0,0,0,0,
13363e794565SJung-uk Kim 0,0,0,0,0,
13373e794565SJung-uk Kim 0,0,0,0,0,
13383e794565SJung-uk Kim 0,0,0,0,0,
13393e794565SJung-uk Kim 0,0,0,0,0,
13403e794565SJung-uk Kim 0,0,0,0,0,
13413e794565SJung-uk Kim 0,0,"CONST","LRpost",0,
13423e794565SJung-uk Kim 0,0,0,0,0,
13433e794565SJung-uk Kim 0,0,0,0,0,
13443e794565SJung-uk Kim 0,0,0,0,0,
13453e794565SJung-uk Kim 0,0,0,0,0,
13463e794565SJung-uk Kim 0,0,0,0,0,
13473e794565SJung-uk Kim 0,0,0,0,0,
13483e794565SJung-uk Kim 0,0,0,0,0,
13493e794565SJung-uk Kim 0,0,0,0,0,
13503e794565SJung-uk Kim 0,0,0,0,0,
13513e794565SJung-uk Kim 0,0,0,0,"ID",
13523e794565SJung-uk Kim 0,0,0,0,0,
13533e794565SJung-uk Kim 0,0,0,0,0,
13543e794565SJung-uk Kim 0,0,0,0,0,
13553e794565SJung-uk Kim 0,0,0,0,0,
13563e794565SJung-uk Kim 0,0,0,0,0,
13573e794565SJung-uk Kim 0,0,0,0,0,
13583e794565SJung-uk Kim 0,0,0,0,0,
13593e794565SJung-uk Kim 0,0,0,0,0,
13603e794565SJung-uk Kim 0,0,0,0,0,
13613e794565SJung-uk Kim 0,0,0,0,0,
13623e794565SJung-uk Kim 0,0,0,0,0,
13633e794565SJung-uk Kim 0,0,0,0,0,
13643e794565SJung-uk Kim 0,0,0,0,0,
13653e794565SJung-uk Kim 0,0,0,0,0,
13663e794565SJung-uk Kim 0,0,0,0,0,
13673e794565SJung-uk Kim 0,0,0,0,0,
13683e794565SJung-uk Kim 0,0,0,0,0,
13693e794565SJung-uk Kim 0,0,0,0,0,
13703e794565SJung-uk Kim 0,0,0,0,0,
13713e794565SJung-uk Kim 0,0,0,0,0,
13723e794565SJung-uk Kim 0,0,0,0,0,
13733e794565SJung-uk Kim 0,0,0,0,0,
13743e794565SJung-uk Kim 0,0,0,0,0,
13753e794565SJung-uk Kim 0,0,0,0,0,
13763e794565SJung-uk Kim 0,0,0,0,0,
13773e794565SJung-uk Kim 0,0,0,0,0,
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,0,0,0,0,
14023e794565SJung-uk Kim 0,0,0,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,0,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,0,
14583e794565SJung-uk Kim 0,0,0,0,0,
14593e794565SJung-uk Kim 0,0,0,0,0,
14603e794565SJung-uk Kim 0,0,0,0,0,
14613e794565SJung-uk Kim 0,0,0,0,0,
14623e794565SJung-uk Kim 0,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,0,
14663e794565SJung-uk Kim 0,0,0,0,0,
14673e794565SJung-uk Kim 0,0,0,0,0,
14683e794565SJung-uk Kim 0,0,0,0,0,
14693e794565SJung-uk Kim 0,0,0,0,0,
14703e794565SJung-uk Kim 0,0,0,0,0,
14713e794565SJung-uk Kim 0,0,0,0,0,
14723e794565SJung-uk Kim 0,0,0,0,0,
14733e794565SJung-uk Kim 0,0,0,0,0,
14743e794565SJung-uk Kim 0,
14753e794565SJung-uk Kim };
14763e794565SJung-uk Kim 
14773e794565SJung-uk Kim 
14783e794565SJung-uk Kim 
14793e794565SJung-uk Kim #define yyySizeofProd(num) (yyyProdsInd[(num)+1] - yyyProdsInd[(num)])
14803e794565SJung-uk Kim 
14813e794565SJung-uk Kim #define yyyGSoccurStr(prodNum,symPos) \
14823e794565SJung-uk Kim    (yyyStringTab[yyyProds[yyyProdsInd[(prodNum)] + (symPos)][0]])
14833e794565SJung-uk Kim 
14843e794565SJung-uk Kim #define yyySizeofSort(num) (yyySortsInd[(num)+1] - yyySortsInd[(num)])
14853e794565SJung-uk Kim 
14863e794565SJung-uk Kim #define yyySortOf(prodNum,symPos) \
14873e794565SJung-uk Kim   (yyyProds[yyyProdsInd[(prodNum)] + (symPos)][1])
14883e794565SJung-uk Kim 
14893e794565SJung-uk Kim #define yyyAttrbStr(prodNum,symPos,attrbNum)                      \
14903e794565SJung-uk Kim   (yyyStringTab[yyySorts[yyySortsInd[yyySortOf(prodNum,symPos)] + \
14913e794565SJung-uk Kim                          (attrbNum)                               \
14923e794565SJung-uk Kim                         ]                                         \
14933e794565SJung-uk Kim                ]                                                  \
14943e794565SJung-uk Kim   )
14953e794565SJung-uk Kim 
14963e794565SJung-uk Kim 
14973e794565SJung-uk Kim 
yyyShowProd(int i)14983e794565SJung-uk Kim void yyyShowProd(int i)
14993e794565SJung-uk Kim   {int j,nSyms;
15003e794565SJung-uk Kim 
15013e794565SJung-uk Kim    nSyms = yyySizeofProd(i);
15023e794565SJung-uk Kim    for (j=0; j<nSyms; j++)
15033e794565SJung-uk Kim      {
15043e794565SJung-uk Kim       fprintf(stderr,"%s",yyyGSoccurStr(i,j));
15053e794565SJung-uk Kim       if (j == 0) fputs(" : ",stderr); else putc(' ',stderr);
15063e794565SJung-uk Kim      }
15073e794565SJung-uk Kim    fputs(";\n",stderr);
15083e794565SJung-uk Kim   }
15093e794565SJung-uk Kim 
15103e794565SJung-uk Kim 
15113e794565SJung-uk Kim 
yyyShowProds()15123e794565SJung-uk Kim void yyyShowProds()
15133e794565SJung-uk Kim   {int i; for (i=1; i<=yyyLastProdNum; i++) yyyShowProd(i);}
15143e794565SJung-uk Kim 
15153e794565SJung-uk Kim 
15163e794565SJung-uk Kim 
yyyShowSymsAndSorts()15173e794565SJung-uk Kim void yyyShowSymsAndSorts()
15183e794565SJung-uk Kim   {int i;
15193e794565SJung-uk Kim 
15203e794565SJung-uk Kim    for (i=1; i<=yyyLastProdNum; i++)
15213e794565SJung-uk Kim      {int j, nSyms;
15223e794565SJung-uk Kim 
15233e794565SJung-uk Kim       fprintf(stderr,
15243e794565SJung-uk Kim               "\n\n\n---------------------------------- %3.1d\n",i);
15253e794565SJung-uk Kim       /* yyyShowProd(i); */
15263e794565SJung-uk Kim       nSyms = yyySizeofProd(i);
15273e794565SJung-uk Kim       for (j=0; j<nSyms; j++)
15283e794565SJung-uk Kim         {int k, sortSize;
15293e794565SJung-uk Kim 
15303e794565SJung-uk Kim          fprintf(stderr,"%s\n",yyyGSoccurStr(i,j));
15313e794565SJung-uk Kim          sortSize = yyySizeofSort(yyySortOf(i,j));
15323e794565SJung-uk Kim          for (k=0; k<sortSize; k++)
15333e794565SJung-uk Kim             fprintf(stderr,"  %s\n",yyyAttrbStr(i,j,k));
15343e794565SJung-uk Kim          if (j == 0) fputs("->\n",stderr);
15353e794565SJung-uk Kim               else
15363e794565SJung-uk Kim               putc('\n',stderr);
15373e794565SJung-uk Kim         }
15383e794565SJung-uk Kim      }
15393e794565SJung-uk Kim   }
15403e794565SJung-uk Kim 
15413e794565SJung-uk Kim 
15423e794565SJung-uk Kim 
yyyCheckNodeInstancesSolved(yyyGNT * np)15433e794565SJung-uk Kim void yyyCheckNodeInstancesSolved(yyyGNT *np)
15443e794565SJung-uk Kim   {int mysort,sortSize,i,prodNum,symPos,inTerminalNode;
15453e794565SJung-uk Kim    int nUnsolvedInsts = 0;
15463e794565SJung-uk Kim 
15473e794565SJung-uk Kim    if (np->prodNum != 0)
15483e794565SJung-uk Kim      {inTerminalNode = 0;
15493e794565SJung-uk Kim       prodNum = np->prodNum;
15503e794565SJung-uk Kim       symPos = 0;
15513e794565SJung-uk Kim      }
15523e794565SJung-uk Kim    else
15533e794565SJung-uk Kim      {inTerminalNode = 1;
15543e794565SJung-uk Kim       prodNum = np->parent.noderef->prodNum;
15553e794565SJung-uk Kim       symPos = np->whichSym;
15563e794565SJung-uk Kim      }
15573e794565SJung-uk Kim    mysort = yyySortOf(prodNum,symPos);
15583e794565SJung-uk Kim    sortSize = yyySizeofSort(mysort);
15593e794565SJung-uk Kim    for (i=0; i<sortSize; i++)
15603e794565SJung-uk Kim      if ((np->refCountList)[i] != 0) nUnsolvedInsts += 1;
15613e794565SJung-uk Kim    if (nUnsolvedInsts)
15623e794565SJung-uk Kim      {fprintf(stderr,
15633e794565SJung-uk Kim       "\nFound node that has %d unsolved attribute instance(s).\n",
15643e794565SJung-uk Kim               nUnsolvedInsts
15653e794565SJung-uk Kim              );
15663e794565SJung-uk Kim       fprintf(stderr,"Node is labeled \"%s\".\n",
15673e794565SJung-uk Kim              yyyGSoccurStr(prodNum,symPos));
15683e794565SJung-uk Kim       if (inTerminalNode)
15693e794565SJung-uk Kim         {fputs("Node is terminal.  Its parent production is:\n  ",stderr);
15703e794565SJung-uk Kim          yyyShowProd(prodNum);
15713e794565SJung-uk Kim         }
15723e794565SJung-uk Kim       else
15733e794565SJung-uk Kim         {fputs("Node is nonterminal.  ",stderr);
15743e794565SJung-uk Kim          if (!(np->parentIsStack))
15753e794565SJung-uk Kim            {fprintf(stderr,
15763e794565SJung-uk Kim                     "Node is %dth child in its parent production:\n  ",
15773e794565SJung-uk Kim                    np->whichSym
15783e794565SJung-uk Kim                   );
15793e794565SJung-uk Kim             yyyShowProd(np->parent.noderef->prodNum);
15803e794565SJung-uk Kim            }
15813e794565SJung-uk Kim          fputs("Node is on left hand side of this production:\n  ",stderr);
15823e794565SJung-uk Kim          yyyShowProd(np->prodNum);
15833e794565SJung-uk Kim         }
15843e794565SJung-uk Kim       fputs("The following instances are unsolved:\n",stderr);
15853e794565SJung-uk Kim       for (i=0; i<sortSize; i++)
15863e794565SJung-uk Kim         if ((np->refCountList)[i] != 0)
15873e794565SJung-uk Kim           fprintf(stderr,"     %-16s still has %1d dependencies.\n",
15883e794565SJung-uk Kim                   yyyAttrbStr(prodNum,symPos,i),(np->refCountList)[i]);
15893e794565SJung-uk Kim      }
15903e794565SJung-uk Kim   }
15913e794565SJung-uk Kim 
15923e794565SJung-uk Kim 
15933e794565SJung-uk Kim 
yyyCheckUnsolvedInstTrav(yyyGNT * pNode,long * nNZrc,long * cycleSum)15943e794565SJung-uk Kim void yyyCheckUnsolvedInstTrav(yyyGNT *pNode,long *nNZrc,long *cycleSum)
15953e794565SJung-uk Kim   {yyyGNT **yyyCLpdum;
15963e794565SJung-uk Kim    yyyRCT *rcp;
15973e794565SJung-uk Kim    int i;
15983e794565SJung-uk Kim 
15993e794565SJung-uk Kim    /* visit the refCountList of each node in the tree, and sum the non-zero refCounts */
16003e794565SJung-uk Kim    rcp = pNode->refCountList;
16013e794565SJung-uk Kim    i = pNode->refCountListLen;
16023e794565SJung-uk Kim    while (i--)
16033e794565SJung-uk Kim       if (*rcp++) {*cycleSum += *(rcp - 1); (*nNZrc)++;}
16043e794565SJung-uk Kim    yyyCLpdum = pNode->cL;
16053e794565SJung-uk Kim    i = pNode->cLlen;
16063e794565SJung-uk Kim    while (i--)
16073e794565SJung-uk Kim      {
16083e794565SJung-uk Kim       yyyCheckUnsolvedInstTrav(*yyyCLpdum,nNZrc,cycleSum);
16093e794565SJung-uk Kim       yyyCLpdum++;
16103e794565SJung-uk Kim      }
16113e794565SJung-uk Kim   }
16123e794565SJung-uk Kim 
16133e794565SJung-uk Kim 
16143e794565SJung-uk Kim 
yyyUnsolvedInstSearchTravAux(yyyGNT * pNode)16153e794565SJung-uk Kim void yyyUnsolvedInstSearchTravAux(yyyGNT *pNode)
16163e794565SJung-uk Kim   {yyyGNT **yyyCLpdum;
16173e794565SJung-uk Kim    int i;
16183e794565SJung-uk Kim 
16193e794565SJung-uk Kim    yyyCheckNodeInstancesSolved(pNode);
16203e794565SJung-uk Kim    yyyCLpdum = pNode->cL;
16213e794565SJung-uk Kim    i = pNode->cLlen;
16223e794565SJung-uk Kim    while (i--)
16233e794565SJung-uk Kim      {
16243e794565SJung-uk Kim       yyyUnsolvedInstSearchTravAux(*yyyCLpdum);
16253e794565SJung-uk Kim       yyyCLpdum++;
16263e794565SJung-uk Kim      }
16273e794565SJung-uk Kim   }
16283e794565SJung-uk Kim 
16293e794565SJung-uk Kim 
16303e794565SJung-uk Kim 
yyyUnsolvedInstSearchTrav(yyyGNT * pNode)16313e794565SJung-uk Kim void yyyUnsolvedInstSearchTrav(yyyGNT *pNode)
16323e794565SJung-uk Kim   {yyyGNT **yyyCLpdum;
16333e794565SJung-uk Kim    int i;
16343e794565SJung-uk Kim 
16353e794565SJung-uk Kim    yyyCLpdum = pNode->cL;
16363e794565SJung-uk Kim    i = pNode->cLlen;
16373e794565SJung-uk Kim    while (i--)
16383e794565SJung-uk Kim      {
16393e794565SJung-uk Kim       yyyUnsolvedInstSearchTravAux(*yyyCLpdum);
16403e794565SJung-uk Kim       yyyCLpdum++;
16413e794565SJung-uk Kim      }
16423e794565SJung-uk Kim   }
16433e794565SJung-uk Kim 
16443e794565SJung-uk Kim 
16453e794565SJung-uk Kim 
1646b53bb29fSJung-uk Kim #line 1647 "expr.oxout.tab.c"
16473e794565SJung-uk Kim 
16483e794565SJung-uk Kim #if YYDEBUG
16493e794565SJung-uk Kim #include <stdio.h>	/* needed for printf */
16503e794565SJung-uk Kim #endif
16513e794565SJung-uk Kim 
16523e794565SJung-uk Kim #include <stdlib.h>	/* needed for malloc, etc */
16533e794565SJung-uk Kim #include <string.h>	/* needed for memset */
16543e794565SJung-uk Kim 
16553e794565SJung-uk Kim /* allocate initial stack or double stack size, up to YYMAXDEPTH */
yygrowstack(YYSTACKDATA * data)16563e794565SJung-uk Kim static int yygrowstack(YYSTACKDATA *data)
16573e794565SJung-uk Kim {
16583e794565SJung-uk Kim     int i;
16593e794565SJung-uk Kim     unsigned newsize;
16603e794565SJung-uk Kim     YYINT *newss;
16613e794565SJung-uk Kim     YYSTYPE *newvs;
16623e794565SJung-uk Kim 
16633e794565SJung-uk Kim     if ((newsize = data->stacksize) == 0)
16643e794565SJung-uk Kim         newsize = YYINITSTACKSIZE;
16653e794565SJung-uk Kim     else if (newsize >= YYMAXDEPTH)
16663e794565SJung-uk Kim         return YYENOMEM;
16673e794565SJung-uk Kim     else if ((newsize *= 2) > YYMAXDEPTH)
16683e794565SJung-uk Kim         newsize = YYMAXDEPTH;
16693e794565SJung-uk Kim 
16703e794565SJung-uk Kim     i = (int) (data->s_mark - data->s_base);
16713e794565SJung-uk Kim     newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss));
1672bf80e08eSJung-uk Kim     if (newss == NULL)
16733e794565SJung-uk Kim         return YYENOMEM;
16743e794565SJung-uk Kim 
16753e794565SJung-uk Kim     data->s_base = newss;
16763e794565SJung-uk Kim     data->s_mark = newss + i;
16773e794565SJung-uk Kim 
16783e794565SJung-uk Kim     newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));
1679bf80e08eSJung-uk Kim     if (newvs == NULL)
16803e794565SJung-uk Kim         return YYENOMEM;
16813e794565SJung-uk Kim 
16823e794565SJung-uk Kim     data->l_base = newvs;
16833e794565SJung-uk Kim     data->l_mark = newvs + i;
16843e794565SJung-uk Kim 
16853e794565SJung-uk Kim     data->stacksize = newsize;
16863e794565SJung-uk Kim     data->s_last = data->s_base + newsize - 1;
16873e794565SJung-uk Kim     return 0;
16883e794565SJung-uk Kim }
16893e794565SJung-uk Kim 
16903e794565SJung-uk Kim #if YYPURE || defined(YY_NO_LEAKS)
yyfreestack(YYSTACKDATA * data)16913e794565SJung-uk Kim static void yyfreestack(YYSTACKDATA *data)
16923e794565SJung-uk Kim {
16933e794565SJung-uk Kim     free(data->s_base);
16943e794565SJung-uk Kim     free(data->l_base);
16953e794565SJung-uk Kim     memset(data, 0, sizeof(*data));
16963e794565SJung-uk Kim }
16973e794565SJung-uk Kim #else
16983e794565SJung-uk Kim #define yyfreestack(data) /* nothing */
16993e794565SJung-uk Kim #endif
17003e794565SJung-uk Kim 
17013e794565SJung-uk Kim #define YYABORT  goto yyabort
17023e794565SJung-uk Kim #define YYREJECT goto yyabort
17033e794565SJung-uk Kim #define YYACCEPT goto yyaccept
17043e794565SJung-uk Kim #define YYERROR  goto yyerrlab
17053e794565SJung-uk Kim 
17063e794565SJung-uk Kim int
YYPARSE_DECL()17073e794565SJung-uk Kim YYPARSE_DECL()
17083e794565SJung-uk Kim {
17093e794565SJung-uk Kim     int yym, yyn, yystate;
17103e794565SJung-uk Kim #if YYDEBUG
17113e794565SJung-uk Kim     const char *yys;
17123e794565SJung-uk Kim 
1713bf80e08eSJung-uk Kim     if ((yys = getenv("YYDEBUG")) != NULL)
17143e794565SJung-uk Kim     {
17153e794565SJung-uk Kim         yyn = *yys;
17163e794565SJung-uk Kim         if (yyn >= '0' && yyn <= '9')
17173e794565SJung-uk Kim             yydebug = yyn - '0';
17183e794565SJung-uk Kim     }
17193e794565SJung-uk Kim #endif
17203e794565SJung-uk Kim 
17218e022d3cSDag-Erling Smørgrav     /* yym is set below */
17228e022d3cSDag-Erling Smørgrav     /* yyn is set below */
17233e794565SJung-uk Kim     yynerrs = 0;
17243e794565SJung-uk Kim     yyerrflag = 0;
17253e794565SJung-uk Kim     yychar = YYEMPTY;
17263e794565SJung-uk Kim     yystate = 0;
17273e794565SJung-uk Kim 
17283e794565SJung-uk Kim #if YYPURE
17293e794565SJung-uk Kim     memset(&yystack, 0, sizeof(yystack));
17303e794565SJung-uk Kim #endif
17313e794565SJung-uk Kim 
17323e794565SJung-uk Kim     if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
17333e794565SJung-uk Kim     yystack.s_mark = yystack.s_base;
17343e794565SJung-uk Kim     yystack.l_mark = yystack.l_base;
17353e794565SJung-uk Kim     yystate = 0;
17363e794565SJung-uk Kim     *yystack.s_mark = 0;
17373e794565SJung-uk Kim 
17383e794565SJung-uk Kim yyloop:
17393e794565SJung-uk Kim     if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
17403e794565SJung-uk Kim     if (yychar < 0)
17413e794565SJung-uk Kim     {
17423e794565SJung-uk Kim         yychar = YYLEX;
17433e794565SJung-uk Kim         if (yychar < 0) yychar = YYEOF;
17443e794565SJung-uk Kim #if YYDEBUG
17453e794565SJung-uk Kim         if (yydebug)
17463e794565SJung-uk Kim         {
17473e794565SJung-uk Kim             if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
17483e794565SJung-uk Kim             printf("%sdebug: state %d, reading %d (%s)\n",
17493e794565SJung-uk Kim                     YYPREFIX, yystate, yychar, yys);
17503e794565SJung-uk Kim         }
17513e794565SJung-uk Kim #endif
17523e794565SJung-uk Kim     }
17533e794565SJung-uk Kim     if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
17543e794565SJung-uk Kim             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
17553e794565SJung-uk Kim     {
17563e794565SJung-uk Kim #if YYDEBUG
17573e794565SJung-uk Kim         if (yydebug)
17583e794565SJung-uk Kim             printf("%sdebug: state %d, shifting to state %d\n",
17593e794565SJung-uk Kim                     YYPREFIX, yystate, yytable[yyn]);
17603e794565SJung-uk Kim #endif
17613e794565SJung-uk Kim         if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
17623e794565SJung-uk Kim         yystate = yytable[yyn];
17633e794565SJung-uk Kim         *++yystack.s_mark = yytable[yyn];
17643e794565SJung-uk Kim         *++yystack.l_mark = yylval;
17653e794565SJung-uk Kim         yychar = YYEMPTY;
17663e794565SJung-uk Kim         if (yyerrflag > 0)  --yyerrflag;
17673e794565SJung-uk Kim         goto yyloop;
17683e794565SJung-uk Kim     }
17693e794565SJung-uk Kim     if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
17703e794565SJung-uk Kim             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
17713e794565SJung-uk Kim     {
17723e794565SJung-uk Kim         yyn = yytable[yyn];
17733e794565SJung-uk Kim         goto yyreduce;
17743e794565SJung-uk Kim     }
17753e794565SJung-uk Kim     if (yyerrflag != 0) goto yyinrecovery;
17763e794565SJung-uk Kim 
17773e794565SJung-uk Kim     YYERROR_CALL("syntax error");
17783e794565SJung-uk Kim 
17793e794565SJung-uk Kim     goto yyerrlab; /* redundant goto avoids 'unused label' warning */
17803e794565SJung-uk Kim yyerrlab:
17813e794565SJung-uk Kim     ++yynerrs;
17823e794565SJung-uk Kim 
17833e794565SJung-uk Kim yyinrecovery:
17843e794565SJung-uk Kim     if (yyerrflag < 3)
17853e794565SJung-uk Kim     {
17863e794565SJung-uk Kim         yyerrflag = 3;
17873e794565SJung-uk Kim         for (;;)
17883e794565SJung-uk Kim         {
17893e794565SJung-uk Kim             if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 &&
17903e794565SJung-uk Kim                     yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE)
17913e794565SJung-uk Kim             {
17923e794565SJung-uk Kim #if YYDEBUG
17933e794565SJung-uk Kim                 if (yydebug)
17943e794565SJung-uk Kim                     printf("%sdebug: state %d, error recovery shifting\
17953e794565SJung-uk Kim  to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]);
17963e794565SJung-uk Kim #endif
17973e794565SJung-uk Kim                 if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
17983e794565SJung-uk Kim                 yystate = yytable[yyn];
17993e794565SJung-uk Kim                 *++yystack.s_mark = yytable[yyn];
18003e794565SJung-uk Kim                 *++yystack.l_mark = yylval;
18013e794565SJung-uk Kim                 goto yyloop;
18023e794565SJung-uk Kim             }
18033e794565SJung-uk Kim             else
18043e794565SJung-uk Kim             {
18053e794565SJung-uk Kim #if YYDEBUG
18063e794565SJung-uk Kim                 if (yydebug)
18073e794565SJung-uk Kim                     printf("%sdebug: error recovery discarding state %d\n",
18083e794565SJung-uk Kim                             YYPREFIX, *yystack.s_mark);
18093e794565SJung-uk Kim #endif
18103e794565SJung-uk Kim                 if (yystack.s_mark <= yystack.s_base) goto yyabort;
18113e794565SJung-uk Kim                 --yystack.s_mark;
18123e794565SJung-uk Kim                 --yystack.l_mark;
18133e794565SJung-uk Kim             }
18143e794565SJung-uk Kim         }
18153e794565SJung-uk Kim     }
18163e794565SJung-uk Kim     else
18173e794565SJung-uk Kim     {
18183e794565SJung-uk Kim         if (yychar == YYEOF) goto yyabort;
18193e794565SJung-uk Kim #if YYDEBUG
18203e794565SJung-uk Kim         if (yydebug)
18213e794565SJung-uk Kim         {
18223e794565SJung-uk Kim             if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
18233e794565SJung-uk Kim             printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
18243e794565SJung-uk Kim                     YYPREFIX, yystate, yychar, yys);
18253e794565SJung-uk Kim         }
18263e794565SJung-uk Kim #endif
18273e794565SJung-uk Kim         yychar = YYEMPTY;
18283e794565SJung-uk Kim         goto yyloop;
18293e794565SJung-uk Kim     }
18303e794565SJung-uk Kim 
18313e794565SJung-uk Kim yyreduce:
18323e794565SJung-uk Kim #if YYDEBUG
18333e794565SJung-uk Kim     if (yydebug)
18343e794565SJung-uk Kim         printf("%sdebug: state %d, reducing by rule %d (%s)\n",
18353e794565SJung-uk Kim                 YYPREFIX, yystate, yyn, yyrule[yyn]);
18363e794565SJung-uk Kim #endif
18373e794565SJung-uk Kim     yym = yylen[yyn];
18383e794565SJung-uk Kim     if (yym > 0)
18393e794565SJung-uk Kim         yyval = yystack.l_mark[1-yym];
18403e794565SJung-uk Kim     else
18413e794565SJung-uk Kim         memset(&yyval, 0, sizeof yyval);
18423e794565SJung-uk Kim 
18433e794565SJung-uk Kim     switch (yyn)
18443e794565SJung-uk Kim     {
18453e794565SJung-uk Kim case 1:
18463e794565SJung-uk Kim #line 64 "expr.oxout.y"
18473e794565SJung-uk Kim 	{yyyYoxInit();}
18488e022d3cSDag-Erling Smørgrav #line 1849 "expr.oxout.tab.c"
18493e794565SJung-uk Kim break;
18503e794565SJung-uk Kim case 2:
18513e794565SJung-uk Kim #line 66 "expr.oxout.y"
18523e794565SJung-uk Kim 	{
18533e794565SJung-uk Kim 		 yyyDecorate(); yyyExecuteRRsection(yystack.l_mark[0].yyyOxAttrbs.yyyOxStackItem->node);
18543e794565SJung-uk Kim 		}
18558e022d3cSDag-Erling Smørgrav #line 1856 "expr.oxout.tab.c"
18563e794565SJung-uk Kim break;
18573e794565SJung-uk Kim case 3:
18583e794565SJung-uk Kim #line 73 "expr.oxout.y"
18593e794565SJung-uk Kim 	{if(yyyYok){
18603e794565SJung-uk Kim yyyGenIntNode(1,1,0,&yyval.yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
18613e794565SJung-uk Kim yyyAdjustINRC(1,1,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
18628e022d3cSDag-Erling Smørgrav #line 1863 "expr.oxout.tab.c"
18633e794565SJung-uk Kim break;
18643e794565SJung-uk Kim case 4:
18653e794565SJung-uk Kim #line 80 "expr.oxout.y"
18663e794565SJung-uk Kim 	{if(yyyYok){
18673e794565SJung-uk Kim yyyGenIntNode(2,3,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
18683e794565SJung-uk Kim yyyAdjustINRC(2,3,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
18698e022d3cSDag-Erling Smørgrav #line 1870 "expr.oxout.tab.c"
18703e794565SJung-uk Kim break;
18713e794565SJung-uk Kim case 5:
18723e794565SJung-uk Kim #line 87 "expr.oxout.y"
18733e794565SJung-uk Kim 	{if(yyyYok){
18743e794565SJung-uk Kim yyyGenIntNode(3,3,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
18753e794565SJung-uk Kim yyyAdjustINRC(3,3,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
18768e022d3cSDag-Erling Smørgrav #line 1877 "expr.oxout.tab.c"
18773e794565SJung-uk Kim break;
18783e794565SJung-uk Kim case 6:
18793e794565SJung-uk Kim #line 94 "expr.oxout.y"
18803e794565SJung-uk Kim 	{if(yyyYok){
18813e794565SJung-uk Kim yyyGenIntNode(4,3,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
18823e794565SJung-uk Kim yyyAdjustINRC(4,3,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
18838e022d3cSDag-Erling Smørgrav #line 1884 "expr.oxout.tab.c"
18843e794565SJung-uk Kim break;
18853e794565SJung-uk Kim case 7:
18863e794565SJung-uk Kim #line 101 "expr.oxout.y"
18873e794565SJung-uk Kim 	{if(yyyYok){
18883e794565SJung-uk Kim yyyGenIntNode(5,3,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
18893e794565SJung-uk Kim yyyAdjustINRC(5,3,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
18908e022d3cSDag-Erling Smørgrav #line 1891 "expr.oxout.tab.c"
18913e794565SJung-uk Kim break;
18923e794565SJung-uk Kim case 8:
18933e794565SJung-uk Kim #line 108 "expr.oxout.y"
18943e794565SJung-uk Kim 	{if(yyyYok){
18953e794565SJung-uk Kim yyyGenIntNode(6,3,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
18963e794565SJung-uk Kim yyyAdjustINRC(6,3,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[-2].yyyOxAttrbs,&yystack.l_mark[-1].yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
18978e022d3cSDag-Erling Smørgrav #line 1898 "expr.oxout.tab.c"
18983e794565SJung-uk Kim break;
18993e794565SJung-uk Kim case 9:
19003e794565SJung-uk Kim #line 114 "expr.oxout.y"
19013e794565SJung-uk Kim 	{if(yyyYok){
19023e794565SJung-uk Kim yyyGenIntNode(7,1,0,&yyval.yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
19033e794565SJung-uk Kim yyyAdjustINRC(7,1,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
19048e022d3cSDag-Erling Smørgrav #line 1905 "expr.oxout.tab.c"
19053e794565SJung-uk Kim break;
19063e794565SJung-uk Kim case 10:
19073e794565SJung-uk Kim #line 121 "expr.oxout.y"
19083e794565SJung-uk Kim 	{if(yyyYok){
19093e794565SJung-uk Kim yyyGenIntNode(8,1,0,&yyval.yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);
19103e794565SJung-uk Kim yyyAdjustINRC(8,1,0,0,&yyval.yyyOxAttrbs,&yystack.l_mark[0].yyyOxAttrbs);}}
19118e022d3cSDag-Erling Smørgrav #line 1912 "expr.oxout.tab.c"
19123e794565SJung-uk Kim break;
19138e022d3cSDag-Erling Smørgrav #line 1914 "expr.oxout.tab.c"
19143e794565SJung-uk Kim     }
19153e794565SJung-uk Kim     yystack.s_mark -= yym;
19163e794565SJung-uk Kim     yystate = *yystack.s_mark;
19173e794565SJung-uk Kim     yystack.l_mark -= yym;
19183e794565SJung-uk Kim     yym = yylhs[yyn];
19193e794565SJung-uk Kim     if (yystate == 0 && yym == 0)
19203e794565SJung-uk Kim     {
19213e794565SJung-uk Kim #if YYDEBUG
19223e794565SJung-uk Kim         if (yydebug)
19233e794565SJung-uk Kim             printf("%sdebug: after reduction, shifting from state 0 to\
19243e794565SJung-uk Kim  state %d\n", YYPREFIX, YYFINAL);
19253e794565SJung-uk Kim #endif
19263e794565SJung-uk Kim         yystate = YYFINAL;
19273e794565SJung-uk Kim         *++yystack.s_mark = YYFINAL;
19283e794565SJung-uk Kim         *++yystack.l_mark = yyval;
19293e794565SJung-uk Kim         if (yychar < 0)
19303e794565SJung-uk Kim         {
19313e794565SJung-uk Kim             yychar = YYLEX;
19323e794565SJung-uk Kim             if (yychar < 0) yychar = YYEOF;
19333e794565SJung-uk Kim #if YYDEBUG
19343e794565SJung-uk Kim             if (yydebug)
19353e794565SJung-uk Kim             {
19363e794565SJung-uk Kim                 if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
19373e794565SJung-uk Kim                 printf("%sdebug: state %d, reading %d (%s)\n",
19383e794565SJung-uk Kim                         YYPREFIX, YYFINAL, yychar, yys);
19393e794565SJung-uk Kim             }
19403e794565SJung-uk Kim #endif
19413e794565SJung-uk Kim         }
19423e794565SJung-uk Kim         if (yychar == YYEOF) goto yyaccept;
19433e794565SJung-uk Kim         goto yyloop;
19443e794565SJung-uk Kim     }
19453e794565SJung-uk Kim     if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 &&
19463e794565SJung-uk Kim             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate)
19473e794565SJung-uk Kim         yystate = yytable[yyn];
19483e794565SJung-uk Kim     else
19493e794565SJung-uk Kim         yystate = yydgoto[yym];
19503e794565SJung-uk Kim #if YYDEBUG
19513e794565SJung-uk Kim     if (yydebug)
19523e794565SJung-uk Kim         printf("%sdebug: after reduction, shifting from state %d \
19533e794565SJung-uk Kim to state %d\n", YYPREFIX, *yystack.s_mark, yystate);
19543e794565SJung-uk Kim #endif
19553e794565SJung-uk Kim     if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
19563e794565SJung-uk Kim     *++yystack.s_mark = (YYINT) yystate;
19573e794565SJung-uk Kim     *++yystack.l_mark = yyval;
19583e794565SJung-uk Kim     goto yyloop;
19593e794565SJung-uk Kim 
19603e794565SJung-uk Kim yyoverflow:
19613e794565SJung-uk Kim     YYERROR_CALL("yacc stack overflow");
19623e794565SJung-uk Kim 
19633e794565SJung-uk Kim yyabort:
19643e794565SJung-uk Kim     yyfreestack(&yystack);
19653e794565SJung-uk Kim     return (1);
19663e794565SJung-uk Kim 
19673e794565SJung-uk Kim yyaccept:
19683e794565SJung-uk Kim     yyfreestack(&yystack);
19693e794565SJung-uk Kim     return (0);
19703e794565SJung-uk Kim }
1971