xref: /freebsd/contrib/byacc/test/btyacc/btyacc_demo.tab.c (revision 822ca3276345b4a67ccbc9b54616d8b205fd37f2)
10c8de5b0SBaptiste Daroussin /* original parser id follows */
20c8de5b0SBaptiste Daroussin /* yysccsid[] = "@(#)yaccpar	1.9 (Berkeley) 02/21/93" */
3c5b5d71aSJung-uk Kim /* (use YYMAJOR/YYMINOR for ifdefs dependent on parser version) */
40c8de5b0SBaptiste Daroussin 
50c8de5b0SBaptiste Daroussin #define YYBYACC 1
68e022d3cSDag-Erling Smørgrav #define YYMAJOR 2
78e022d3cSDag-Erling Smørgrav #define YYMINOR 0
80c8de5b0SBaptiste Daroussin #define YYCHECK "yyyymmdd"
90c8de5b0SBaptiste Daroussin 
100c8de5b0SBaptiste Daroussin #define YYEMPTY        (-1)
110c8de5b0SBaptiste Daroussin #define yyclearin      (yychar = YYEMPTY)
120c8de5b0SBaptiste Daroussin #define yyerrok        (yyerrflag = 0)
130c8de5b0SBaptiste Daroussin #define YYRECOVERING() (yyerrflag != 0)
140c8de5b0SBaptiste Daroussin #define YYENOMEM       (-2)
150c8de5b0SBaptiste Daroussin #define YYEOF          0
160c8de5b0SBaptiste Daroussin #undef YYBTYACC
170c8de5b0SBaptiste Daroussin #define YYBTYACC 1
180c8de5b0SBaptiste Daroussin #define YYDEBUGSTR (yytrial ? YYPREFIX "debug(trial)" : YYPREFIX "debug")
190c8de5b0SBaptiste Daroussin 
200c8de5b0SBaptiste Daroussin #ifndef yyparse
210c8de5b0SBaptiste Daroussin #define yyparse    demo_parse
220c8de5b0SBaptiste Daroussin #endif /* yyparse */
230c8de5b0SBaptiste Daroussin 
240c8de5b0SBaptiste Daroussin #ifndef yylex
250c8de5b0SBaptiste Daroussin #define yylex      demo_lex
260c8de5b0SBaptiste Daroussin #endif /* yylex */
270c8de5b0SBaptiste Daroussin 
280c8de5b0SBaptiste Daroussin #ifndef yyerror
290c8de5b0SBaptiste Daroussin #define yyerror    demo_error
300c8de5b0SBaptiste Daroussin #endif /* yyerror */
310c8de5b0SBaptiste Daroussin 
320c8de5b0SBaptiste Daroussin #ifndef yychar
330c8de5b0SBaptiste Daroussin #define yychar     demo_char
340c8de5b0SBaptiste Daroussin #endif /* yychar */
350c8de5b0SBaptiste Daroussin 
360c8de5b0SBaptiste Daroussin #ifndef yyval
370c8de5b0SBaptiste Daroussin #define yyval      demo_val
380c8de5b0SBaptiste Daroussin #endif /* yyval */
390c8de5b0SBaptiste Daroussin 
400c8de5b0SBaptiste Daroussin #ifndef yylval
410c8de5b0SBaptiste Daroussin #define yylval     demo_lval
420c8de5b0SBaptiste Daroussin #endif /* yylval */
430c8de5b0SBaptiste Daroussin 
440c8de5b0SBaptiste Daroussin #ifndef yydebug
450c8de5b0SBaptiste Daroussin #define yydebug    demo_debug
460c8de5b0SBaptiste Daroussin #endif /* yydebug */
470c8de5b0SBaptiste Daroussin 
480c8de5b0SBaptiste Daroussin #ifndef yynerrs
490c8de5b0SBaptiste Daroussin #define yynerrs    demo_nerrs
500c8de5b0SBaptiste Daroussin #endif /* yynerrs */
510c8de5b0SBaptiste Daroussin 
520c8de5b0SBaptiste Daroussin #ifndef yyerrflag
530c8de5b0SBaptiste Daroussin #define yyerrflag  demo_errflag
540c8de5b0SBaptiste Daroussin #endif /* yyerrflag */
550c8de5b0SBaptiste Daroussin 
560c8de5b0SBaptiste Daroussin #ifndef yylhs
570c8de5b0SBaptiste Daroussin #define yylhs      demo_lhs
580c8de5b0SBaptiste Daroussin #endif /* yylhs */
590c8de5b0SBaptiste Daroussin 
600c8de5b0SBaptiste Daroussin #ifndef yylen
610c8de5b0SBaptiste Daroussin #define yylen      demo_len
620c8de5b0SBaptiste Daroussin #endif /* yylen */
630c8de5b0SBaptiste Daroussin 
640c8de5b0SBaptiste Daroussin #ifndef yydefred
650c8de5b0SBaptiste Daroussin #define yydefred   demo_defred
660c8de5b0SBaptiste Daroussin #endif /* yydefred */
670c8de5b0SBaptiste Daroussin 
680c8de5b0SBaptiste Daroussin #ifndef yystos
690c8de5b0SBaptiste Daroussin #define yystos     demo_stos
700c8de5b0SBaptiste Daroussin #endif /* yystos */
710c8de5b0SBaptiste Daroussin 
720c8de5b0SBaptiste Daroussin #ifndef yydgoto
730c8de5b0SBaptiste Daroussin #define yydgoto    demo_dgoto
740c8de5b0SBaptiste Daroussin #endif /* yydgoto */
750c8de5b0SBaptiste Daroussin 
760c8de5b0SBaptiste Daroussin #ifndef yysindex
770c8de5b0SBaptiste Daroussin #define yysindex   demo_sindex
780c8de5b0SBaptiste Daroussin #endif /* yysindex */
790c8de5b0SBaptiste Daroussin 
800c8de5b0SBaptiste Daroussin #ifndef yyrindex
810c8de5b0SBaptiste Daroussin #define yyrindex   demo_rindex
820c8de5b0SBaptiste Daroussin #endif /* yyrindex */
830c8de5b0SBaptiste Daroussin 
840c8de5b0SBaptiste Daroussin #ifndef yygindex
850c8de5b0SBaptiste Daroussin #define yygindex   demo_gindex
860c8de5b0SBaptiste Daroussin #endif /* yygindex */
870c8de5b0SBaptiste Daroussin 
880c8de5b0SBaptiste Daroussin #ifndef yytable
890c8de5b0SBaptiste Daroussin #define yytable    demo_table
900c8de5b0SBaptiste Daroussin #endif /* yytable */
910c8de5b0SBaptiste Daroussin 
920c8de5b0SBaptiste Daroussin #ifndef yycheck
930c8de5b0SBaptiste Daroussin #define yycheck    demo_check
940c8de5b0SBaptiste Daroussin #endif /* yycheck */
950c8de5b0SBaptiste Daroussin 
960c8de5b0SBaptiste Daroussin #ifndef yyname
970c8de5b0SBaptiste Daroussin #define yyname     demo_name
980c8de5b0SBaptiste Daroussin #endif /* yyname */
990c8de5b0SBaptiste Daroussin 
1000c8de5b0SBaptiste Daroussin #ifndef yyrule
1010c8de5b0SBaptiste Daroussin #define yyrule     demo_rule
1020c8de5b0SBaptiste Daroussin #endif /* yyrule */
1030c8de5b0SBaptiste Daroussin 
1040c8de5b0SBaptiste Daroussin #ifndef yyloc
1050c8de5b0SBaptiste Daroussin #define yyloc      demo_loc
1060c8de5b0SBaptiste Daroussin #endif /* yyloc */
1070c8de5b0SBaptiste Daroussin 
1080c8de5b0SBaptiste Daroussin #ifndef yylloc
1090c8de5b0SBaptiste Daroussin #define yylloc     demo_lloc
1100c8de5b0SBaptiste Daroussin #endif /* yylloc */
1110c8de5b0SBaptiste Daroussin 
1120c8de5b0SBaptiste Daroussin #if YYBTYACC
1130c8de5b0SBaptiste Daroussin 
1140c8de5b0SBaptiste Daroussin #ifndef yycindex
1150c8de5b0SBaptiste Daroussin #define yycindex   demo_cindex
1160c8de5b0SBaptiste Daroussin #endif /* yycindex */
1170c8de5b0SBaptiste Daroussin 
1180c8de5b0SBaptiste Daroussin #ifndef yyctable
1190c8de5b0SBaptiste Daroussin #define yyctable   demo_ctable
1200c8de5b0SBaptiste Daroussin #endif /* yyctable */
1210c8de5b0SBaptiste Daroussin 
1220c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
1230c8de5b0SBaptiste Daroussin 
1240c8de5b0SBaptiste Daroussin #define YYPREFIX "demo_"
1250c8de5b0SBaptiste Daroussin 
1260c8de5b0SBaptiste Daroussin #define YYPURE 0
1270c8de5b0SBaptiste Daroussin 
1280c8de5b0SBaptiste Daroussin #line 15 "btyacc_demo.y"
1290c8de5b0SBaptiste Daroussin /* dummy types just for compile check */
1300c8de5b0SBaptiste Daroussin typedef int Code;
1310c8de5b0SBaptiste Daroussin typedef int Decl_List;
1320c8de5b0SBaptiste Daroussin typedef int Expr;
1330c8de5b0SBaptiste Daroussin typedef int Expr_List;
1340c8de5b0SBaptiste Daroussin typedef int Scope;
1350c8de5b0SBaptiste Daroussin typedef int Type;
1360c8de5b0SBaptiste Daroussin enum Operator { ADD, SUB, MUL, MOD, DIV, DEREF };
1370c8de5b0SBaptiste Daroussin 
1380c8de5b0SBaptiste Daroussin typedef unsigned char bool;
1390c8de5b0SBaptiste Daroussin typedef struct Decl {
1400c8de5b0SBaptiste Daroussin     Scope *scope;
1410c8de5b0SBaptiste Daroussin     Type  *type;
1420c8de5b0SBaptiste Daroussin     bool (*istype)(void);
1430c8de5b0SBaptiste Daroussin } Decl;
1440c8de5b0SBaptiste Daroussin 
1450c8de5b0SBaptiste Daroussin #include "btyacc_demo.tab.h"
1460c8de5b0SBaptiste Daroussin #include <stdlib.h>
1470c8de5b0SBaptiste Daroussin #include <stdio.h>
1480c8de5b0SBaptiste Daroussin #ifdef YYSTYPE
1490c8de5b0SBaptiste Daroussin #undef  YYSTYPE_IS_DECLARED
1500c8de5b0SBaptiste Daroussin #define YYSTYPE_IS_DECLARED 1
1510c8de5b0SBaptiste Daroussin #endif
1520c8de5b0SBaptiste Daroussin #ifndef YYSTYPE_IS_DECLARED
1530c8de5b0SBaptiste Daroussin #define YYSTYPE_IS_DECLARED 1
154c5b5d71aSJung-uk Kim #line 36 "btyacc_demo.y"
155*822ca327SBaptiste Daroussin typedef union YYSTYPE {
1560c8de5b0SBaptiste Daroussin     Scope	*scope;
1570c8de5b0SBaptiste Daroussin     Expr	*expr;
1580c8de5b0SBaptiste Daroussin     Expr_List	*elist;
1590c8de5b0SBaptiste Daroussin     Type	*type;
1600c8de5b0SBaptiste Daroussin     Decl	*decl;
1610c8de5b0SBaptiste Daroussin     Decl_List	*dlist;
1620c8de5b0SBaptiste Daroussin     Code	*code;
1630c8de5b0SBaptiste Daroussin     char	*id;
1640c8de5b0SBaptiste Daroussin     } YYSTYPE;
1650c8de5b0SBaptiste Daroussin #endif /* !YYSTYPE_IS_DECLARED */
1660c8de5b0SBaptiste Daroussin #line 167 "btyacc_demo.tab.c"
1670c8de5b0SBaptiste Daroussin 
1680c8de5b0SBaptiste Daroussin #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
1690c8de5b0SBaptiste Daroussin /* Default: YYLTYPE is the text position type. */
1700c8de5b0SBaptiste Daroussin typedef struct YYLTYPE
1710c8de5b0SBaptiste Daroussin {
1720c8de5b0SBaptiste Daroussin     int first_line;
1730c8de5b0SBaptiste Daroussin     int first_column;
1740c8de5b0SBaptiste Daroussin     int last_line;
1750c8de5b0SBaptiste Daroussin     int last_column;
1762aca18c7SJung-uk Kim     unsigned source;
1770c8de5b0SBaptiste Daroussin } YYLTYPE;
1780c8de5b0SBaptiste Daroussin #define YYLTYPE_IS_DECLARED 1
1790c8de5b0SBaptiste Daroussin #endif
1802aca18c7SJung-uk Kim #define YYRHSLOC(rhs, k) ((rhs)[k])
1810c8de5b0SBaptiste Daroussin 
1820c8de5b0SBaptiste Daroussin /* compatibility with bison */
1830c8de5b0SBaptiste Daroussin #ifdef YYPARSE_PARAM
1840c8de5b0SBaptiste Daroussin /* compatibility with FreeBSD */
1850c8de5b0SBaptiste Daroussin # ifdef YYPARSE_PARAM_TYPE
1860c8de5b0SBaptiste Daroussin #  define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM)
1870c8de5b0SBaptiste Daroussin # else
1880c8de5b0SBaptiste Daroussin #  define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM)
1890c8de5b0SBaptiste Daroussin # endif
1900c8de5b0SBaptiste Daroussin #else
1910c8de5b0SBaptiste Daroussin # define YYPARSE_DECL() yyparse(void)
1920c8de5b0SBaptiste Daroussin #endif
1930c8de5b0SBaptiste Daroussin 
1940c8de5b0SBaptiste Daroussin /* Parameters sent to lex. */
1950c8de5b0SBaptiste Daroussin #ifdef YYLEX_PARAM
1960c8de5b0SBaptiste Daroussin # define YYLEX_DECL() yylex(void *YYLEX_PARAM)
1970c8de5b0SBaptiste Daroussin # define YYLEX yylex(YYLEX_PARAM)
1980c8de5b0SBaptiste Daroussin #else
1990c8de5b0SBaptiste Daroussin # define YYLEX_DECL() yylex(void)
2000c8de5b0SBaptiste Daroussin # define YYLEX yylex()
2010c8de5b0SBaptiste Daroussin #endif
2020c8de5b0SBaptiste Daroussin 
2030c8de5b0SBaptiste Daroussin /* Parameters sent to yyerror. */
2040c8de5b0SBaptiste Daroussin #ifndef YYERROR_DECL
2052aca18c7SJung-uk Kim #define YYERROR_DECL() yyerror(YYLTYPE *loc, const char *s)
2060c8de5b0SBaptiste Daroussin #endif
2070c8de5b0SBaptiste Daroussin #ifndef YYERROR_CALL
2082aca18c7SJung-uk Kim #define YYERROR_CALL(msg) yyerror(&yylloc, msg)
2090c8de5b0SBaptiste Daroussin #endif
2100c8de5b0SBaptiste Daroussin 
2110c8de5b0SBaptiste Daroussin #ifndef YYDESTRUCT_DECL
2120c8de5b0SBaptiste Daroussin #define YYDESTRUCT_DECL() yydestruct(const char *msg, int psymb, YYSTYPE *val, YYLTYPE *loc)
2130c8de5b0SBaptiste Daroussin #endif
2140c8de5b0SBaptiste Daroussin #ifndef YYDESTRUCT_CALL
2150c8de5b0SBaptiste Daroussin #define YYDESTRUCT_CALL(msg, psymb, val, loc) yydestruct(msg, psymb, val, loc)
2160c8de5b0SBaptiste Daroussin #endif
2170c8de5b0SBaptiste Daroussin 
2180c8de5b0SBaptiste Daroussin extern int YYPARSE_DECL();
2190c8de5b0SBaptiste Daroussin 
2200c8de5b0SBaptiste Daroussin #define PREFIX 257
2210c8de5b0SBaptiste Daroussin #define POSTFIX 258
2220c8de5b0SBaptiste Daroussin #define ID 259
2230c8de5b0SBaptiste Daroussin #define CONSTANT 260
2240c8de5b0SBaptiste Daroussin #define EXTERN 261
2250c8de5b0SBaptiste Daroussin #define REGISTER 262
2260c8de5b0SBaptiste Daroussin #define STATIC 263
2270c8de5b0SBaptiste Daroussin #define CONST 264
2280c8de5b0SBaptiste Daroussin #define VOLATILE 265
2290c8de5b0SBaptiste Daroussin #define IF 266
2300c8de5b0SBaptiste Daroussin #define THEN 267
2310c8de5b0SBaptiste Daroussin #define ELSE 268
2320c8de5b0SBaptiste Daroussin #define CLCL 269
2330c8de5b0SBaptiste Daroussin #define YYERRCODE 256
234b53bb29fSJung-uk Kim typedef int YYINT;
2350c8de5b0SBaptiste Daroussin static const YYINT demo_lhs[] = {                        -1,
236c5b5d71aSJung-uk Kim    15,   15,   15,   12,   18,    0,    4,   19,    4,    2,
237c5b5d71aSJung-uk Kim    20,    2,   10,   10,   13,   13,   11,   11,   11,   11,
238c5b5d71aSJung-uk Kim    11,   14,   14,   21,   22,    3,    3,    8,    8,   23,
239c5b5d71aSJung-uk Kim    24,    8,    8,    8,    8,   16,   16,   17,   17,    9,
240c5b5d71aSJung-uk Kim     1,    1,    1,    1,    1,    1,    1,    1,    5,    5,
241c5b5d71aSJung-uk Kim    25,   26,    5,    5,   27,    5,    6,    6,    7,
2420c8de5b0SBaptiste Daroussin };
2430c8de5b0SBaptiste Daroussin static const YYINT demo_len[] = {                         2,
244c5b5d71aSJung-uk Kim     0,    1,    3,    2,    0,    2,    0,    0,    3,    3,
245c5b5d71aSJung-uk Kim     0,    4,    1,    3,    0,    2,    1,    1,    1,    1,
246c5b5d71aSJung-uk Kim     1,    1,    1,    0,    0,    5,    1,    0,    1,    0,
247c5b5d71aSJung-uk Kim     0,    5,    5,    5,    6,    0,    1,    4,    1,    2,
248c5b5d71aSJung-uk Kim     4,    4,    4,    4,    4,    3,    1,    1,    1,    2,
249c5b5d71aSJung-uk Kim     0,    0,   11,    8,    0,    2,    0,    3,    4,
2500c8de5b0SBaptiste Daroussin };
2510c8de5b0SBaptiste Daroussin static const YYINT demo_defred[] = {                      5,
252c5b5d71aSJung-uk Kim     0,    7,    0,    0,   19,   20,   21,   22,   23,    2,
253c5b5d71aSJung-uk Kim     9,    0,   13,   18,   17,    0,   15,   30,   29,    0,
254c5b5d71aSJung-uk Kim     0,    0,    0,    0,   31,   10,   24,   24,   24,    0,
255c5b5d71aSJung-uk Kim    14,    3,   16,   25,    0,   25,    0,    0,    8,   12,
256c5b5d71aSJung-uk Kim     0,    0,    0,   39,    0,    0,    0,    8,   47,   48,
257c5b5d71aSJung-uk Kim     0,   57,    0,   32,    0,    0,   15,   30,    0,   30,
258c5b5d71aSJung-uk Kim    30,   30,   30,   30,   34,    0,    0,    0,   46,    0,
259c5b5d71aSJung-uk Kim     0,    0,    0,    0,   59,    0,   38,    0,    0,   43,
260c5b5d71aSJung-uk Kim    45,   44,    0,    0,   49,   58,    0,   30,   50,   56,
261c5b5d71aSJung-uk Kim     0,    0,    0,   51,    0,    0,   52,    0,   53,
2620c8de5b0SBaptiste Daroussin };
2632aca18c7SJung-uk Kim #if defined(YYDESTRUCT_CALL) || defined(YYSTYPE_TOSTRING)
2640c8de5b0SBaptiste Daroussin static const YYINT demo_stos[] = {                        0,
2650c8de5b0SBaptiste Daroussin   271,  289,  275,  290,  261,  262,  263,  264,  265,  269,
266c5b5d71aSJung-uk Kim   273,  281,  282,  283,  285,  286,   42,   40,  259,  274,
267c5b5d71aSJung-uk Kim   279,  290,  259,  284,  294,   59,   44,   40,   91,  291,
268c5b5d71aSJung-uk Kim   282,  269,  285,  292,  295,  292,  292,  292,  123,  278,
269c5b5d71aSJung-uk Kim   293,  279,  293,  280,  281,  287,  288,   42,  259,  260,
270c5b5d71aSJung-uk Kim   272,  290,  279,   41,  279,  279,   41,   44,  290,   43,
271c5b5d71aSJung-uk Kim    45,   42,   47,   37,   93,  277,  284,  294,  272,  294,
272c5b5d71aSJung-uk Kim   294,  294,  294,  294,  125,  290,  280,  272,  272,  272,
273c5b5d71aSJung-uk Kim   272,  272,  266,  272,  273,  276,  298,   40,   59,  278,
274c5b5d71aSJung-uk Kim   294,  272,   41,  267,  296,  276,  268,  297,  276,
2750c8de5b0SBaptiste Daroussin };
2762aca18c7SJung-uk Kim #endif /* YYDESTRUCT_CALL || YYSTYPE_TOSTRING */
2770c8de5b0SBaptiste Daroussin static const YYINT demo_dgoto[] = {                       1,
278c5b5d71aSJung-uk Kim    84,   85,   20,    3,   86,   66,   40,   21,   44,   12,
279c5b5d71aSJung-uk Kim    13,   14,   24,   15,   16,   46,   47,    2,   22,   30,
280c5b5d71aSJung-uk Kim    34,   41,   25,   35,   95,   98,   87,
2810c8de5b0SBaptiste Daroussin };
2820c8de5b0SBaptiste Daroussin static const YYINT demo_sindex[] = {                      0,
283c5b5d71aSJung-uk Kim     0,    0,    0, -103,    0,    0,    0,    0,    0,    0,
284c5b5d71aSJung-uk Kim     0,  -31,    0,    0,    0, -238,    0,    0,    0,    4,
285c5b5d71aSJung-uk Kim   -36, -103,    0, -133,    0,    0,    0,    0,    0,  -94,
286c5b5d71aSJung-uk Kim     0,    0,    0,    0,  -40,    0, -103,  -33,    0,    0,
287c5b5d71aSJung-uk Kim   -40,  -25,  -40,    0,  -31,    8,   15,    0,    0,    0,
288c5b5d71aSJung-uk Kim    -2,    0,  -36,    0,  -36,  -36,    0,    0,  -33,    0,
289c5b5d71aSJung-uk Kim     0,    0,    0,    0,    0,  -92, -133, -103,    0,  -33,
290c5b5d71aSJung-uk Kim   -33,  -33,  -33,  -33,    0,   -8,    0,   23,   23,    0,
291c5b5d71aSJung-uk Kim     0,    0,   11,   75,    0,    0,  -94,    0,    0,    0,
292c5b5d71aSJung-uk Kim   -33,   96, -194,    0,   -8,    0,    0,   -8,    0,
2930c8de5b0SBaptiste Daroussin };
2940c8de5b0SBaptiste Daroussin static const YYINT demo_rindex[] = {                      0,
295c5b5d71aSJung-uk Kim     0,    0,    1, -181,    0,    0,    0,    0,    0,    0,
296c5b5d71aSJung-uk Kim     0,   17,    0,    0,    0,    0,    0,    0,    0,    0,
297c5b5d71aSJung-uk Kim   -39, -181,   12,  -34,    0,    0,    0,    0,    0,    0,
298c5b5d71aSJung-uk Kim     0,    0,    0,    0,   -5,    0,  -11,    0,    0,    0,
299c5b5d71aSJung-uk Kim   -17,    0,   28,    0,  -41,    0,   47,    0,    0,    0,
300c5b5d71aSJung-uk Kim     0,    0,  -13,    0,   18,   70,    0,    0,    0,    0,
301c5b5d71aSJung-uk Kim     0,    0,    0,    0,    0,  -19,  -27, -181,    0,    0,
302c5b5d71aSJung-uk Kim     0,    0,    0,    0,    0,  -29,    0,   56,   64,    0,
303c5b5d71aSJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
304c5b5d71aSJung-uk Kim     0,    0,    0,    0,  -29,  -30,    0,  -29,    0,
3050c8de5b0SBaptiste Daroussin };
3060c8de5b0SBaptiste Daroussin #if YYBTYACC
3070c8de5b0SBaptiste Daroussin static const YYINT demo_cindex[] = {                      0,
3080c8de5b0SBaptiste Daroussin     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
309c5b5d71aSJung-uk Kim     0,  -22,    0,    0,    0,    0,    0,    0,    0,    0,
310c5b5d71aSJung-uk Kim     0,    0, -179,    0,    0,    0,    0,    0,    0,    0,
311c5b5d71aSJung-uk Kim     0,    0,    0,    0,   52,    0,    0,    0,    0,    0,
312c5b5d71aSJung-uk Kim    58,    0,   62,    0,  -21,    0,    0,    0,    0,    0,
3130c8de5b0SBaptiste Daroussin     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3140c8de5b0SBaptiste Daroussin     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
315c5b5d71aSJung-uk Kim     0,    0,    0,    0,    0, -146,    0,    0,    0,    0,
316c5b5d71aSJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
317c5b5d71aSJung-uk Kim     0,    0,    0,    0, -143, -147,    0, -134,    0,
3180c8de5b0SBaptiste Daroussin };
3190c8de5b0SBaptiste Daroussin #endif
3200c8de5b0SBaptiste Daroussin static const YYINT demo_gindex[] = {                      0,
321c5b5d71aSJung-uk Kim     9,  143,    0,    0,   50,    0,   63,  101,   83,    7,
322c5b5d71aSJung-uk Kim   130,    0,   98,    2,    0,    0,    0,    0,   19,    0,
323c5b5d71aSJung-uk Kim    10,  117,   66,    0,    0,    0,    0,
3240c8de5b0SBaptiste Daroussin };
325c5b5d71aSJung-uk Kim #define YYTABLESIZE 286
326c5b5d71aSJung-uk Kim static const YYINT demo_table[] = {                      28,
327c5b5d71aSJung-uk Kim     6,   17,   28,   28,   27,   24,   24,   24,   48,   24,
328c5b5d71aSJung-uk Kim    17,   54,   35,   35,   28,   54,   35,    0,    0,   27,
329c5b5d71aSJung-uk Kim    23,    4,    8,   28,   24,   33,   28,   33,   39,   36,
330c5b5d71aSJung-uk Kim    33,   35,   75,   48,   64,   28,   36,   37,   38,   62,
331c5b5d71aSJung-uk Kim    60,   28,   61,   45,   63,   33,   51,   27,   57,   28,
332c5b5d71aSJung-uk Kim    88,    4,    4,    4,   29,    4,   24,   52,   58,   64,
333c5b5d71aSJung-uk Kim    28,   26,   26,   35,   62,   29,   59,   69,   33,   63,
334c5b5d71aSJung-uk Kim     4,   28,   94,   28,   45,   28,   26,    1,   78,   79,
335c5b5d71aSJung-uk Kim    80,   81,   82,   11,   76,   28,   28,   37,   24,    6,
336c5b5d71aSJung-uk Kim    65,    0,   54,   55,   54,   35,   41,    0,   41,   92,
337c5b5d71aSJung-uk Kim    41,    0,    4,    8,   42,   28,   42,   28,   42,   33,
338c5b5d71aSJung-uk Kim    40,   64,    9,   40,   41,    9,   62,   60,   28,   61,
339c5b5d71aSJung-uk Kim    12,   63,   42,   68,    9,   70,   71,   72,   73,   74,
340c5b5d71aSJung-uk Kim     8,    9,   64,   89,    4,   42,   93,   62,   60,   28,
341c5b5d71aSJung-uk Kim    61,   53,   63,   55,   96,   56,   11,   99,   41,   90,
342c5b5d71aSJung-uk Kim    77,   31,   43,   91,   67,    0,   42,    5,    6,    7,
343c5b5d71aSJung-uk Kim     8,    9,    0,    0,    0,   10,    0,    0,    0,    0,
3440c8de5b0SBaptiste Daroussin     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3450c8de5b0SBaptiste Daroussin     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
346c5b5d71aSJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
347c5b5d71aSJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
348c5b5d71aSJung-uk Kim     0,    0,    0,    0,    0,    0,    0,    0,   19,    8,
349c5b5d71aSJung-uk Kim     8,    8,    8,    8,   24,   49,   50,    8,   54,   54,
350c5b5d71aSJung-uk Kim    54,   54,   54,   54,   54,   54,    3,    3,   54,    8,
351c5b5d71aSJung-uk Kim     8,    8,    8,    8,    8,    8,    8,    1,    0,    8,
352c5b5d71aSJung-uk Kim     0,   50,    5,    6,    7,    8,    9,   83,    0,    8,
353c5b5d71aSJung-uk Kim    10,    8,    8,    8,    8,    8,    0,    0,    0,    8,
354c5b5d71aSJung-uk Kim     4,    0,    4,    4,    4,    4,    4,    8,    8,    8,
355c5b5d71aSJung-uk Kim     8,    8,    0,    0,    0,    8,
3560c8de5b0SBaptiste Daroussin };
357c5b5d71aSJung-uk Kim static const YYINT demo_check[] = {                      41,
358c5b5d71aSJung-uk Kim     0,   42,   44,   40,   44,   40,   41,   42,   42,   44,
359c5b5d71aSJung-uk Kim    42,   42,   40,   41,   40,   41,   44,   40,   40,   59,
360c5b5d71aSJung-uk Kim   259,    3,   42,   41,   59,   24,   44,   41,  123,   41,
361c5b5d71aSJung-uk Kim    44,   59,  125,   42,   37,   41,   27,   28,   29,   42,
362c5b5d71aSJung-uk Kim    43,   59,   45,   37,   47,   59,   38,   44,   41,   91,
363c5b5d71aSJung-uk Kim    40,   40,   41,   42,   91,   44,   91,   39,   44,   37,
364c5b5d71aSJung-uk Kim    44,   44,   59,   91,   42,   91,   48,   59,   67,   47,
365c5b5d71aSJung-uk Kim    59,   44,  267,   91,   68,   59,   59,  259,   70,   71,
366c5b5d71aSJung-uk Kim    72,   73,   74,  123,   66,   91,   59,   41,  123,  269,
367c5b5d71aSJung-uk Kim    93,   40,  123,  123,  125,  123,   41,   40,   43,   91,
368c5b5d71aSJung-uk Kim    45,   40,   91,  123,   41,  123,   43,   91,   45,  123,
369c5b5d71aSJung-uk Kim    41,   37,  259,   44,   59,  259,   42,   43,   91,   45,
370c5b5d71aSJung-uk Kim   268,   47,   59,   58,  259,   60,   61,   62,   63,   64,
371c5b5d71aSJung-uk Kim   264,  265,   37,   59,  123,   35,   41,   42,   43,  123,
372c5b5d71aSJung-uk Kim    45,   41,   47,   43,   95,   45,    4,   98,   93,   87,
373c5b5d71aSJung-uk Kim    68,   22,   36,   88,   57,   -1,   93,  261,  262,  263,
374c5b5d71aSJung-uk Kim   264,  265,   -1,   -1,   -1,  269,   -1,   -1,   -1,   -1,
3750c8de5b0SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
3760c8de5b0SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
377c5b5d71aSJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
378c5b5d71aSJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
379c5b5d71aSJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  259,  261,
380c5b5d71aSJung-uk Kim   262,  263,  264,  265,  259,  259,  260,  269,  259,  260,
381c5b5d71aSJung-uk Kim   261,  262,  263,  264,  265,  266,  259,  259,  269,  259,
382c5b5d71aSJung-uk Kim   260,  261,  262,  263,  264,  265,  266,  259,   -1,  269,
383c5b5d71aSJung-uk Kim    -1,  260,  261,  262,  263,  264,  265,  266,   -1,  259,
384c5b5d71aSJung-uk Kim   269,  261,  262,  263,  264,  265,   -1,   -1,   -1,  269,
385c5b5d71aSJung-uk Kim   259,   -1,  261,  262,  263,  264,  265,  261,  262,  263,
386c5b5d71aSJung-uk Kim   264,  265,   -1,   -1,   -1,  269,
3870c8de5b0SBaptiste Daroussin };
3880c8de5b0SBaptiste Daroussin #if YYBTYACC
389c5b5d71aSJung-uk Kim static const YYINT demo_ctable[] = {                     18,
390c5b5d71aSJung-uk Kim    28,   -1,   19,    8,   -1,   32,    4,   -1,   49,    1,
391c5b5d71aSJung-uk Kim    -1,   97,   54,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
39211fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
39311fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
39411fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
39511fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
39611fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
39711fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
39811fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
39911fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
40011fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
40111fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
40211fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
40311fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
40411fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
40511fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
40611fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
40711fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
40811fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
40911fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
41011fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
41111fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
41211fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
41311fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
41411fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
41511fce282SBaptiste Daroussin    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
416c5b5d71aSJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
417c5b5d71aSJung-uk Kim    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
418c5b5d71aSJung-uk Kim    -1,   -1,   -1,   -1,   -1,
4190c8de5b0SBaptiste Daroussin };
4200c8de5b0SBaptiste Daroussin #endif
4210c8de5b0SBaptiste Daroussin #define YYFINAL 1
4220c8de5b0SBaptiste Daroussin #ifndef YYDEBUG
4230c8de5b0SBaptiste Daroussin #define YYDEBUG 0
4240c8de5b0SBaptiste Daroussin #endif
4250c8de5b0SBaptiste Daroussin #define YYMAXTOKEN 269
426c5b5d71aSJung-uk Kim #define YYUNDFTOKEN 299
4270c8de5b0SBaptiste Daroussin #define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
4280c8de5b0SBaptiste Daroussin #if YYDEBUG
4290c8de5b0SBaptiste Daroussin static const char *const demo_name[] = {
4300c8de5b0SBaptiste Daroussin 
4310c8de5b0SBaptiste Daroussin "$end",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
4320c8de5b0SBaptiste Daroussin "'%'",0,0,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",0,0,0,0,0,0,0,0,0,0,0,
4330c8de5b0SBaptiste Daroussin "';'",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,
4340c8de5b0SBaptiste Daroussin "']'",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,
4350c8de5b0SBaptiste Daroussin 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,
4360c8de5b0SBaptiste Daroussin 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,
4370c8de5b0SBaptiste Daroussin 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,
4380c8de5b0SBaptiste Daroussin 0,0,0,0,0,0,0,0,0,"error","PREFIX","POSTFIX","ID","CONSTANT","EXTERN",
4390c8de5b0SBaptiste Daroussin "REGISTER","STATIC","CONST","VOLATILE","IF","THEN","ELSE","CLCL","$accept",
4400c8de5b0SBaptiste Daroussin "input","expr","decl","declarator_list","decl_list","statement",
4410c8de5b0SBaptiste Daroussin "statement_list","block_statement","declarator","formal_arg","decl_specs",
4420c8de5b0SBaptiste Daroussin "decl_spec","typename","cv_quals","cv_qual","opt_scope","formal_arg_list",
4430c8de5b0SBaptiste Daroussin "nonempty_formal_arg_list","$$1","$$2","$$3","$$4","$$5","$$6","$$7","$$8",
444c5b5d71aSJung-uk Kim "$$9","$$10","illegal-symbol",
4450c8de5b0SBaptiste Daroussin };
4460c8de5b0SBaptiste Daroussin static const char *const demo_rule[] = {
4470c8de5b0SBaptiste Daroussin "$accept : input",
4480c8de5b0SBaptiste Daroussin "opt_scope :",
4490c8de5b0SBaptiste Daroussin "opt_scope : CLCL",
4500c8de5b0SBaptiste Daroussin "opt_scope : opt_scope ID CLCL",
4510c8de5b0SBaptiste Daroussin "typename : opt_scope ID",
4520c8de5b0SBaptiste Daroussin "$$1 :",
4530c8de5b0SBaptiste Daroussin "input : $$1 decl_list",
4540c8de5b0SBaptiste Daroussin "decl_list :",
4550c8de5b0SBaptiste Daroussin "$$2 :",
4560c8de5b0SBaptiste Daroussin "decl_list : decl_list $$2 decl",
457c5b5d71aSJung-uk Kim "decl : decl_specs declarator_list ';'",
4580c8de5b0SBaptiste Daroussin "$$3 :",
459c5b5d71aSJung-uk Kim "decl : decl_specs declarator $$3 block_statement",
4600c8de5b0SBaptiste Daroussin "decl_specs : decl_spec",
4610c8de5b0SBaptiste Daroussin "decl_specs : decl_specs $$2 decl_spec",
4620c8de5b0SBaptiste Daroussin "cv_quals :",
4630c8de5b0SBaptiste Daroussin "cv_quals : cv_quals cv_qual",
4640c8de5b0SBaptiste Daroussin "decl_spec : cv_qual",
4650c8de5b0SBaptiste Daroussin "decl_spec : typename",
4660c8de5b0SBaptiste Daroussin "decl_spec : EXTERN",
4670c8de5b0SBaptiste Daroussin "decl_spec : REGISTER",
4680c8de5b0SBaptiste Daroussin "decl_spec : STATIC",
4690c8de5b0SBaptiste Daroussin "cv_qual : CONST",
4700c8de5b0SBaptiste Daroussin "cv_qual : VOLATILE",
471c5b5d71aSJung-uk Kim "$$4 :",
4720c8de5b0SBaptiste Daroussin "$$5 :",
473c5b5d71aSJung-uk Kim "declarator_list : declarator_list ',' $$4 $$5 declarator",
4740c8de5b0SBaptiste Daroussin "declarator_list : declarator",
4750c8de5b0SBaptiste Daroussin "declarator :",
4760c8de5b0SBaptiste Daroussin "declarator : ID",
477c5b5d71aSJung-uk Kim "$$6 :",
4780c8de5b0SBaptiste Daroussin "$$7 :",
479c5b5d71aSJung-uk Kim "declarator : '(' $$6 $$7 declarator ')'",
480c5b5d71aSJung-uk Kim "declarator : '*' cv_quals $$4 $$5 declarator",
481c5b5d71aSJung-uk Kim "declarator : declarator '[' $$4 expr ']'",
482c5b5d71aSJung-uk Kim "declarator : declarator '(' $$4 formal_arg_list ')' cv_quals",
4830c8de5b0SBaptiste Daroussin "formal_arg_list :",
4840c8de5b0SBaptiste Daroussin "formal_arg_list : nonempty_formal_arg_list",
485c5b5d71aSJung-uk Kim "nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$6 formal_arg",
4860c8de5b0SBaptiste Daroussin "nonempty_formal_arg_list : formal_arg",
487c5b5d71aSJung-uk Kim "formal_arg : decl_specs declarator",
488c5b5d71aSJung-uk Kim "expr : expr '+' $$6 expr",
489c5b5d71aSJung-uk Kim "expr : expr '-' $$6 expr",
490c5b5d71aSJung-uk Kim "expr : expr '*' $$6 expr",
491c5b5d71aSJung-uk Kim "expr : expr '%' $$6 expr",
492c5b5d71aSJung-uk Kim "expr : expr '/' $$6 expr",
4930c8de5b0SBaptiste Daroussin "expr : '*' $$2 expr",
4940c8de5b0SBaptiste Daroussin "expr : ID",
4950c8de5b0SBaptiste Daroussin "expr : CONSTANT",
4960c8de5b0SBaptiste Daroussin "statement : decl",
497c5b5d71aSJung-uk Kim "statement : expr ';'",
498c5b5d71aSJung-uk Kim "$$8 :",
4990c8de5b0SBaptiste Daroussin "$$9 :",
500c5b5d71aSJung-uk Kim "statement : IF '(' $$6 expr ')' THEN $$8 statement ELSE $$9 statement",
501c5b5d71aSJung-uk Kim "statement : IF '(' $$6 expr ')' THEN $$8 statement",
5020c8de5b0SBaptiste Daroussin "$$10 :",
503c5b5d71aSJung-uk Kim "statement : $$10 block_statement",
5040c8de5b0SBaptiste Daroussin "statement_list :",
5050c8de5b0SBaptiste Daroussin "statement_list : statement_list $$2 statement",
5060c8de5b0SBaptiste Daroussin "block_statement : '{' $$2 statement_list '}'",
5070c8de5b0SBaptiste Daroussin 
5080c8de5b0SBaptiste Daroussin };
5090c8de5b0SBaptiste Daroussin #endif
5100c8de5b0SBaptiste Daroussin 
511b53bb29fSJung-uk Kim #if YYDEBUG
5120c8de5b0SBaptiste Daroussin int      yydebug;
513b53bb29fSJung-uk Kim #endif
5140c8de5b0SBaptiste Daroussin 
5150c8de5b0SBaptiste Daroussin int      yyerrflag;
5160c8de5b0SBaptiste Daroussin int      yychar;
5170c8de5b0SBaptiste Daroussin YYSTYPE  yyval;
5180c8de5b0SBaptiste Daroussin YYSTYPE  yylval;
519b53bb29fSJung-uk Kim int      yynerrs;
520b53bb29fSJung-uk Kim 
5210c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
5220c8de5b0SBaptiste Daroussin YYLTYPE  yyloc; /* position returned by actions */
5230c8de5b0SBaptiste Daroussin YYLTYPE  yylloc; /* position from the lexer */
5240c8de5b0SBaptiste Daroussin #endif
5250c8de5b0SBaptiste Daroussin 
5260c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
5270c8de5b0SBaptiste Daroussin #ifndef YYLLOC_DEFAULT
5280c8de5b0SBaptiste Daroussin #define YYLLOC_DEFAULT(loc, rhs, n) \
5290c8de5b0SBaptiste Daroussin do \
5300c8de5b0SBaptiste Daroussin { \
5310c8de5b0SBaptiste Daroussin     if (n == 0) \
5320c8de5b0SBaptiste Daroussin     { \
533b53bb29fSJung-uk Kim         (loc).first_line   = YYRHSLOC(rhs, 0).last_line; \
534b53bb29fSJung-uk Kim         (loc).first_column = YYRHSLOC(rhs, 0).last_column; \
535b53bb29fSJung-uk Kim         (loc).last_line    = YYRHSLOC(rhs, 0).last_line; \
536b53bb29fSJung-uk Kim         (loc).last_column  = YYRHSLOC(rhs, 0).last_column; \
5370c8de5b0SBaptiste Daroussin     } \
5380c8de5b0SBaptiste Daroussin     else \
5390c8de5b0SBaptiste Daroussin     { \
540b53bb29fSJung-uk Kim         (loc).first_line   = YYRHSLOC(rhs, 1).first_line; \
541b53bb29fSJung-uk Kim         (loc).first_column = YYRHSLOC(rhs, 1).first_column; \
542b53bb29fSJung-uk Kim         (loc).last_line    = YYRHSLOC(rhs, n).last_line; \
543b53bb29fSJung-uk Kim         (loc).last_column  = YYRHSLOC(rhs, n).last_column; \
5440c8de5b0SBaptiste Daroussin     } \
5450c8de5b0SBaptiste Daroussin } while (0)
5460c8de5b0SBaptiste Daroussin #endif /* YYLLOC_DEFAULT */
5470c8de5b0SBaptiste Daroussin #endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
5480c8de5b0SBaptiste Daroussin #if YYBTYACC
5490c8de5b0SBaptiste Daroussin 
5500c8de5b0SBaptiste Daroussin #ifndef YYLVQUEUEGROWTH
5510c8de5b0SBaptiste Daroussin #define YYLVQUEUEGROWTH 32
5520c8de5b0SBaptiste Daroussin #endif
5530c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
5540c8de5b0SBaptiste Daroussin 
5550c8de5b0SBaptiste Daroussin /* define the initial stack-sizes */
5560c8de5b0SBaptiste Daroussin #ifdef YYSTACKSIZE
5570c8de5b0SBaptiste Daroussin #undef YYMAXDEPTH
5580c8de5b0SBaptiste Daroussin #define YYMAXDEPTH  YYSTACKSIZE
5590c8de5b0SBaptiste Daroussin #else
5600c8de5b0SBaptiste Daroussin #ifdef YYMAXDEPTH
5610c8de5b0SBaptiste Daroussin #define YYSTACKSIZE YYMAXDEPTH
5620c8de5b0SBaptiste Daroussin #else
5630c8de5b0SBaptiste Daroussin #define YYSTACKSIZE 10000
5640c8de5b0SBaptiste Daroussin #define YYMAXDEPTH  10000
5650c8de5b0SBaptiste Daroussin #endif
5660c8de5b0SBaptiste Daroussin #endif
5670c8de5b0SBaptiste Daroussin 
5680c8de5b0SBaptiste Daroussin #ifndef YYINITSTACKSIZE
5690c8de5b0SBaptiste Daroussin #define YYINITSTACKSIZE 200
5700c8de5b0SBaptiste Daroussin #endif
5710c8de5b0SBaptiste Daroussin 
5720c8de5b0SBaptiste Daroussin typedef struct {
5730c8de5b0SBaptiste Daroussin     unsigned stacksize;
574c5b5d71aSJung-uk Kim     YYINT    *s_base;
575c5b5d71aSJung-uk Kim     YYINT    *s_mark;
576c5b5d71aSJung-uk Kim     YYINT    *s_last;
5770c8de5b0SBaptiste Daroussin     YYSTYPE  *l_base;
5780c8de5b0SBaptiste Daroussin     YYSTYPE  *l_mark;
5790c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
5800c8de5b0SBaptiste Daroussin     YYLTYPE  *p_base;
5810c8de5b0SBaptiste Daroussin     YYLTYPE  *p_mark;
5820c8de5b0SBaptiste Daroussin #endif
5830c8de5b0SBaptiste Daroussin } YYSTACKDATA;
5840c8de5b0SBaptiste Daroussin #if YYBTYACC
5850c8de5b0SBaptiste Daroussin 
5860c8de5b0SBaptiste Daroussin struct YYParseState_s
5870c8de5b0SBaptiste Daroussin {
5880c8de5b0SBaptiste Daroussin     struct YYParseState_s *save;    /* Previously saved parser state */
5890c8de5b0SBaptiste Daroussin     YYSTACKDATA            yystack; /* saved parser stack */
5900c8de5b0SBaptiste Daroussin     int                    state;   /* saved parser state */
5910c8de5b0SBaptiste Daroussin     int                    errflag; /* saved error recovery status */
5920c8de5b0SBaptiste Daroussin     int                    lexeme;  /* saved index of the conflict lexeme in the lexical queue */
5930c8de5b0SBaptiste Daroussin     YYINT                  ctry;    /* saved index in yyctable[] for this conflict */
5940c8de5b0SBaptiste Daroussin };
5950c8de5b0SBaptiste Daroussin typedef struct YYParseState_s YYParseState;
5960c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
5970c8de5b0SBaptiste Daroussin /* variables for the parser stack */
5980c8de5b0SBaptiste Daroussin static YYSTACKDATA yystack;
5990c8de5b0SBaptiste Daroussin #if YYBTYACC
6000c8de5b0SBaptiste Daroussin 
6010c8de5b0SBaptiste Daroussin /* Current parser state */
6020c8de5b0SBaptiste Daroussin static YYParseState *yyps = 0;
6030c8de5b0SBaptiste Daroussin 
6040c8de5b0SBaptiste Daroussin /* yypath != NULL: do the full parse, starting at *yypath parser state. */
6050c8de5b0SBaptiste Daroussin static YYParseState *yypath = 0;
6060c8de5b0SBaptiste Daroussin 
6070c8de5b0SBaptiste Daroussin /* Base of the lexical value queue */
6080c8de5b0SBaptiste Daroussin static YYSTYPE *yylvals = 0;
6090c8de5b0SBaptiste Daroussin 
6100c8de5b0SBaptiste Daroussin /* Current position at lexical value queue */
6110c8de5b0SBaptiste Daroussin static YYSTYPE *yylvp = 0;
6120c8de5b0SBaptiste Daroussin 
6130c8de5b0SBaptiste Daroussin /* End position of lexical value queue */
6140c8de5b0SBaptiste Daroussin static YYSTYPE *yylve = 0;
6150c8de5b0SBaptiste Daroussin 
6160c8de5b0SBaptiste Daroussin /* The last allocated position at the lexical value queue */
6170c8de5b0SBaptiste Daroussin static YYSTYPE *yylvlim = 0;
6180c8de5b0SBaptiste Daroussin 
6190c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
6200c8de5b0SBaptiste Daroussin /* Base of the lexical position queue */
6210c8de5b0SBaptiste Daroussin static YYLTYPE *yylpsns = 0;
6220c8de5b0SBaptiste Daroussin 
6230c8de5b0SBaptiste Daroussin /* Current position at lexical position queue */
6240c8de5b0SBaptiste Daroussin static YYLTYPE *yylpp = 0;
6250c8de5b0SBaptiste Daroussin 
6260c8de5b0SBaptiste Daroussin /* End position of lexical position queue */
6270c8de5b0SBaptiste Daroussin static YYLTYPE *yylpe = 0;
6280c8de5b0SBaptiste Daroussin 
6290c8de5b0SBaptiste Daroussin /* The last allocated position at the lexical position queue */
6300c8de5b0SBaptiste Daroussin static YYLTYPE *yylplim = 0;
6310c8de5b0SBaptiste Daroussin #endif
6320c8de5b0SBaptiste Daroussin 
6330c8de5b0SBaptiste Daroussin /* Current position at lexical token queue */
6342aca18c7SJung-uk Kim static YYINT  *yylexp = 0;
6350c8de5b0SBaptiste Daroussin 
6362aca18c7SJung-uk Kim static YYINT  *yylexemes = 0;
6370c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
6380c8de5b0SBaptiste Daroussin #line 200 "btyacc_demo.y"
6390c8de5b0SBaptiste Daroussin 
6400c8de5b0SBaptiste Daroussin extern int YYLEX_DECL();
6410c8de5b0SBaptiste Daroussin extern void YYERROR_DECL();
6420c8de5b0SBaptiste Daroussin 
6430c8de5b0SBaptiste Daroussin extern Scope *global_scope;
6440c8de5b0SBaptiste Daroussin 
6450c8de5b0SBaptiste Daroussin extern Decl * lookup(Scope *scope, char *id);
6460c8de5b0SBaptiste Daroussin extern Scope * new_scope(Scope *outer_scope);
6470c8de5b0SBaptiste Daroussin extern Scope * start_fn_def(Scope *scope, Decl *fn_decl);
6480c8de5b0SBaptiste Daroussin extern void finish_fn_def(Decl *fn_decl, Code *block);
6490c8de5b0SBaptiste Daroussin extern Type * type_combine(Type *specs, Type *spec);
6500c8de5b0SBaptiste Daroussin extern Type * bare_extern(void);
6510c8de5b0SBaptiste Daroussin extern Type * bare_register(void);
6520c8de5b0SBaptiste Daroussin extern Type * bare_static(void);
6530c8de5b0SBaptiste Daroussin extern Type * bare_const(void);
6540c8de5b0SBaptiste Daroussin extern Type * bare_volatile(void);
6550c8de5b0SBaptiste Daroussin extern Decl * declare(Scope *scope, char *id, Type *type);
6560c8de5b0SBaptiste Daroussin extern Decl * make_pointer(Decl *decl, Type *type);
6570c8de5b0SBaptiste Daroussin extern Decl * make_array(Type *type, Expr *expr);
6580c8de5b0SBaptiste Daroussin extern Decl * build_function(Decl *decl, Decl_List *dlist, Type *type);
6590c8de5b0SBaptiste Daroussin extern Decl_List * append_dlist(Decl_List *dlist, Decl *decl);
6600c8de5b0SBaptiste Daroussin extern Decl_List * build_dlist(Decl *decl);
6610c8de5b0SBaptiste Daroussin extern Expr * build_expr(Expr *left, enum Operator op, Expr *right);
6620c8de5b0SBaptiste Daroussin extern Expr * var_expr(Scope *scope, char *id);
6630c8de5b0SBaptiste Daroussin extern Code * build_expr_code(Expr *expr);
6640c8de5b0SBaptiste Daroussin extern Code * build_if(Expr *cond_expr, Code *then_stmt, Code *else_stmt);
6650c8de5b0SBaptiste Daroussin extern Code * code_append(Code *stmt_list, Code *stmt);
666b53bb29fSJung-uk Kim #line 667 "btyacc_demo.tab.c"
6670c8de5b0SBaptiste Daroussin 
6680c8de5b0SBaptiste Daroussin /* Release memory associated with symbol. */
6690c8de5b0SBaptiste Daroussin #if ! defined YYDESTRUCT_IS_DECLARED
6700c8de5b0SBaptiste Daroussin static void
YYDESTRUCT_DECL()6710c8de5b0SBaptiste Daroussin YYDESTRUCT_DECL()
6720c8de5b0SBaptiste Daroussin {
6730c8de5b0SBaptiste Daroussin     switch (psymb)
6740c8de5b0SBaptiste Daroussin     {
6750c8de5b0SBaptiste Daroussin 	case 43:
6760c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
6770c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
6780c8de5b0SBaptiste Daroussin 			 msg,
6790c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
6800c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
6810c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
6828e022d3cSDag-Erling Smørgrav #line 683 "btyacc_demo.tab.c"
6830c8de5b0SBaptiste Daroussin 	break;
6840c8de5b0SBaptiste Daroussin 	case 45:
6850c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
6860c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
6870c8de5b0SBaptiste Daroussin 			 msg,
6880c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
6890c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
6900c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
6918e022d3cSDag-Erling Smørgrav #line 692 "btyacc_demo.tab.c"
6920c8de5b0SBaptiste Daroussin 	break;
6930c8de5b0SBaptiste Daroussin 	case 42:
6940c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
6950c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
6960c8de5b0SBaptiste Daroussin 			 msg,
6970c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
6980c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
6990c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
7008e022d3cSDag-Erling Smørgrav #line 701 "btyacc_demo.tab.c"
7010c8de5b0SBaptiste Daroussin 	break;
7020c8de5b0SBaptiste Daroussin 	case 47:
7030c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
7040c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
7050c8de5b0SBaptiste Daroussin 			 msg,
7060c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
7070c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
7080c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
7098e022d3cSDag-Erling Smørgrav #line 710 "btyacc_demo.tab.c"
7100c8de5b0SBaptiste Daroussin 	break;
7110c8de5b0SBaptiste Daroussin 	case 37:
7120c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
7130c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
7140c8de5b0SBaptiste Daroussin 			 msg,
7150c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
7160c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
7170c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
7188e022d3cSDag-Erling Smørgrav #line 719 "btyacc_demo.tab.c"
7190c8de5b0SBaptiste Daroussin 	break;
7200c8de5b0SBaptiste Daroussin 	case 257:
7210c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
7220c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
7230c8de5b0SBaptiste Daroussin 			 msg,
7240c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
7250c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
7260c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
7278e022d3cSDag-Erling Smørgrav #line 728 "btyacc_demo.tab.c"
7280c8de5b0SBaptiste Daroussin 	break;
7290c8de5b0SBaptiste Daroussin 	case 258:
7300c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
7310c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
7320c8de5b0SBaptiste Daroussin 			 msg,
7330c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
7340c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
7350c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
7368e022d3cSDag-Erling Smørgrav #line 737 "btyacc_demo.tab.c"
7370c8de5b0SBaptiste Daroussin 	break;
7380c8de5b0SBaptiste Daroussin 	case 40:
7390c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
7400c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
7410c8de5b0SBaptiste Daroussin 			 msg,
7420c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
7430c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
7440c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
7458e022d3cSDag-Erling Smørgrav #line 746 "btyacc_demo.tab.c"
7460c8de5b0SBaptiste Daroussin 	break;
7470c8de5b0SBaptiste Daroussin 	case 91:
7480c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
7490c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
7500c8de5b0SBaptiste Daroussin 			 msg,
7510c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
7520c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
7530c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
7548e022d3cSDag-Erling Smørgrav #line 755 "btyacc_demo.tab.c"
7550c8de5b0SBaptiste Daroussin 	break;
7560c8de5b0SBaptiste Daroussin 	case 46:
7570c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
7580c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
7590c8de5b0SBaptiste Daroussin 			 msg,
7600c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
7610c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
7620c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
7638e022d3cSDag-Erling Smørgrav #line 764 "btyacc_demo.tab.c"
7640c8de5b0SBaptiste Daroussin 	break;
7650c8de5b0SBaptiste Daroussin 	case 259:
7660c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
7670c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
7680c8de5b0SBaptiste Daroussin 			 msg,
7690c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
7700c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
7710c8de5b0SBaptiste Daroussin 		  free((*val).id); }
7728e022d3cSDag-Erling Smørgrav #line 773 "btyacc_demo.tab.c"
7730c8de5b0SBaptiste Daroussin 	break;
7740c8de5b0SBaptiste Daroussin 	case 260:
7750c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
7760c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
7770c8de5b0SBaptiste Daroussin 			 msg,
7780c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
7790c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
7800c8de5b0SBaptiste Daroussin 		  free((*val).expr); }
7818e022d3cSDag-Erling Smørgrav #line 782 "btyacc_demo.tab.c"
7820c8de5b0SBaptiste Daroussin 	break;
7830c8de5b0SBaptiste Daroussin 	case 261:
7840c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
7850c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
7860c8de5b0SBaptiste Daroussin 			 msg,
7870c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
7880c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
7890c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
7908e022d3cSDag-Erling Smørgrav #line 791 "btyacc_demo.tab.c"
7910c8de5b0SBaptiste Daroussin 	break;
7920c8de5b0SBaptiste Daroussin 	case 262:
7930c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
7940c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
7950c8de5b0SBaptiste Daroussin 			 msg,
7960c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
7970c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
7980c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
7998e022d3cSDag-Erling Smørgrav #line 800 "btyacc_demo.tab.c"
8000c8de5b0SBaptiste Daroussin 	break;
8010c8de5b0SBaptiste Daroussin 	case 263:
8020c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
8030c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
8040c8de5b0SBaptiste Daroussin 			 msg,
8050c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
8060c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
8070c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
8088e022d3cSDag-Erling Smørgrav #line 809 "btyacc_demo.tab.c"
8090c8de5b0SBaptiste Daroussin 	break;
8100c8de5b0SBaptiste Daroussin 	case 264:
8110c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
8120c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
8130c8de5b0SBaptiste Daroussin 			 msg,
8140c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
8150c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
8160c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
8178e022d3cSDag-Erling Smørgrav #line 818 "btyacc_demo.tab.c"
8180c8de5b0SBaptiste Daroussin 	break;
8190c8de5b0SBaptiste Daroussin 	case 265:
8200c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
8210c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
8220c8de5b0SBaptiste Daroussin 			 msg,
8230c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
8240c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
8250c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
8268e022d3cSDag-Erling Smørgrav #line 827 "btyacc_demo.tab.c"
8270c8de5b0SBaptiste Daroussin 	break;
8280c8de5b0SBaptiste Daroussin 	case 266:
8290c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
8300c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
8310c8de5b0SBaptiste Daroussin 			 msg,
8320c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
8330c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
8340c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
8358e022d3cSDag-Erling Smørgrav #line 836 "btyacc_demo.tab.c"
8360c8de5b0SBaptiste Daroussin 	break;
8370c8de5b0SBaptiste Daroussin 	case 267:
8380c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
8390c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
8400c8de5b0SBaptiste Daroussin 			 msg,
8410c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
8420c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
8430c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
8448e022d3cSDag-Erling Smørgrav #line 845 "btyacc_demo.tab.c"
8450c8de5b0SBaptiste Daroussin 	break;
8460c8de5b0SBaptiste Daroussin 	case 268:
8470c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
8480c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
8490c8de5b0SBaptiste Daroussin 			 msg,
8500c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
8510c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
8520c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
8538e022d3cSDag-Erling Smørgrav #line 854 "btyacc_demo.tab.c"
8540c8de5b0SBaptiste Daroussin 	break;
8550c8de5b0SBaptiste Daroussin 	case 269:
8560c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
8570c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
8580c8de5b0SBaptiste Daroussin 			 msg,
8590c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
8600c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
8610c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
8628e022d3cSDag-Erling Smørgrav #line 863 "btyacc_demo.tab.c"
8630c8de5b0SBaptiste Daroussin 	break;
8640c8de5b0SBaptiste Daroussin 	case 59:
8650c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
8660c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
8670c8de5b0SBaptiste Daroussin 			 msg,
8680c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
8690c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
8700c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
8718e022d3cSDag-Erling Smørgrav #line 872 "btyacc_demo.tab.c"
8720c8de5b0SBaptiste Daroussin 	break;
8730c8de5b0SBaptiste Daroussin 	case 44:
8740c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
8750c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
8760c8de5b0SBaptiste Daroussin 			 msg,
8770c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
8780c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
8790c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
8808e022d3cSDag-Erling Smørgrav #line 881 "btyacc_demo.tab.c"
8810c8de5b0SBaptiste Daroussin 	break;
8820c8de5b0SBaptiste Daroussin 	case 41:
8830c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
8840c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
8850c8de5b0SBaptiste Daroussin 			 msg,
8860c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
8870c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
8880c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
8898e022d3cSDag-Erling Smørgrav #line 890 "btyacc_demo.tab.c"
8900c8de5b0SBaptiste Daroussin 	break;
8910c8de5b0SBaptiste Daroussin 	case 93:
8920c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
8930c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
8940c8de5b0SBaptiste Daroussin 			 msg,
8950c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
8960c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
8970c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
8988e022d3cSDag-Erling Smørgrav #line 899 "btyacc_demo.tab.c"
8990c8de5b0SBaptiste Daroussin 	break;
9000c8de5b0SBaptiste Daroussin 	case 123:
9010c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
9020c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
9030c8de5b0SBaptiste Daroussin 			 msg,
9040c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
9050c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
9060c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
9078e022d3cSDag-Erling Smørgrav #line 908 "btyacc_demo.tab.c"
9080c8de5b0SBaptiste Daroussin 	break;
9090c8de5b0SBaptiste Daroussin 	case 125:
9100c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
9110c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
9120c8de5b0SBaptiste Daroussin 			 msg,
9130c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
9140c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
9150c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
9168e022d3cSDag-Erling Smørgrav #line 917 "btyacc_demo.tab.c"
9170c8de5b0SBaptiste Daroussin 	break;
9180c8de5b0SBaptiste Daroussin 	case 270:
9190c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
9200c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
9210c8de5b0SBaptiste Daroussin 			 msg,
9220c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
9230c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
9240c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
9258e022d3cSDag-Erling Smørgrav #line 926 "btyacc_demo.tab.c"
9260c8de5b0SBaptiste Daroussin 	break;
9270c8de5b0SBaptiste Daroussin 	case 271:
9280c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
9290c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
9300c8de5b0SBaptiste Daroussin 			 msg,
9310c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
9320c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
9330c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
9348e022d3cSDag-Erling Smørgrav #line 935 "btyacc_demo.tab.c"
9350c8de5b0SBaptiste Daroussin 	break;
9360c8de5b0SBaptiste Daroussin 	case 272:
9370c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
9380c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
9390c8de5b0SBaptiste Daroussin 			 msg,
9400c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
9410c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
9420c8de5b0SBaptiste Daroussin 		  free((*val).expr); }
9438e022d3cSDag-Erling Smørgrav #line 944 "btyacc_demo.tab.c"
9440c8de5b0SBaptiste Daroussin 	break;
9450c8de5b0SBaptiste Daroussin 	case 273:
9460c8de5b0SBaptiste Daroussin #line 67 "btyacc_demo.y"
9470c8de5b0SBaptiste Daroussin 	{ /* 'msg' is a 'char *' indicating the context of destructor invocation*/
9480c8de5b0SBaptiste Daroussin 		  printf("%s accessed by symbol \"decl\" (case s.b. 273) @ position[%d,%d..%d,%d]\n",
9490c8de5b0SBaptiste Daroussin 			 msg,
9500c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
9510c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
9520c8de5b0SBaptiste Daroussin 		  free((*val).decl->scope); free((*val).decl->type); }
9538e022d3cSDag-Erling Smørgrav #line 954 "btyacc_demo.tab.c"
9540c8de5b0SBaptiste Daroussin 	break;
9550c8de5b0SBaptiste Daroussin 	case 274:
9560c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
9570c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
9580c8de5b0SBaptiste Daroussin 			 msg,
9590c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
9600c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
9610c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
9628e022d3cSDag-Erling Smørgrav #line 963 "btyacc_demo.tab.c"
9630c8de5b0SBaptiste Daroussin 	break;
9640c8de5b0SBaptiste Daroussin 	case 275:
9650c8de5b0SBaptiste Daroussin #line 83 "btyacc_demo.y"
9660c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with no type @ position[%d,%d..%d,%d]\n",
9670c8de5b0SBaptiste Daroussin 			 msg,
9680c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
9690c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
9700c8de5b0SBaptiste Daroussin 		  /* in this example, we don't know what to do here */ }
9718e022d3cSDag-Erling Smørgrav #line 972 "btyacc_demo.tab.c"
9720c8de5b0SBaptiste Daroussin 	break;
9730c8de5b0SBaptiste Daroussin 	case 276:
9740c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
9750c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
9760c8de5b0SBaptiste Daroussin 			 msg,
9770c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
9780c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
9790c8de5b0SBaptiste Daroussin 		  free((*val).code); }
9808e022d3cSDag-Erling Smørgrav #line 981 "btyacc_demo.tab.c"
9810c8de5b0SBaptiste Daroussin 	break;
9820c8de5b0SBaptiste Daroussin 	case 277:
9830c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
9840c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
9850c8de5b0SBaptiste Daroussin 			 msg,
9860c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
9870c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
9880c8de5b0SBaptiste Daroussin 		  free((*val).code); }
9898e022d3cSDag-Erling Smørgrav #line 990 "btyacc_demo.tab.c"
9900c8de5b0SBaptiste Daroussin 	break;
9910c8de5b0SBaptiste Daroussin 	case 278:
9920c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
9930c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
9940c8de5b0SBaptiste Daroussin 			 msg,
9950c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
9960c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
9970c8de5b0SBaptiste Daroussin 		  free((*val).code); }
9988e022d3cSDag-Erling Smørgrav #line 999 "btyacc_demo.tab.c"
9990c8de5b0SBaptiste Daroussin 	break;
10000c8de5b0SBaptiste Daroussin 	case 279:
10010c8de5b0SBaptiste Daroussin #line 73 "btyacc_demo.y"
10020c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with type <decl> (case s.b. 279 & 280) @ position[%d,%d..%d,%d]\n",
10030c8de5b0SBaptiste Daroussin 			 msg,
10040c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
10050c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
10060c8de5b0SBaptiste Daroussin 		  free((*val).decl); }
10078e022d3cSDag-Erling Smørgrav #line 1008 "btyacc_demo.tab.c"
10080c8de5b0SBaptiste Daroussin 	break;
10090c8de5b0SBaptiste Daroussin 	case 280:
10100c8de5b0SBaptiste Daroussin #line 73 "btyacc_demo.y"
10110c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol with type <decl> (case s.b. 279 & 280) @ position[%d,%d..%d,%d]\n",
10120c8de5b0SBaptiste Daroussin 			 msg,
10130c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
10140c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
10150c8de5b0SBaptiste Daroussin 		  free((*val).decl); }
10168e022d3cSDag-Erling Smørgrav #line 1017 "btyacc_demo.tab.c"
10170c8de5b0SBaptiste Daroussin 	break;
10180c8de5b0SBaptiste Daroussin 	case 281:
10190c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
10200c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
10210c8de5b0SBaptiste Daroussin 			 msg,
10220c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
10230c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
10240c8de5b0SBaptiste Daroussin 		  free((*val).type); }
10258e022d3cSDag-Erling Smørgrav #line 1026 "btyacc_demo.tab.c"
10260c8de5b0SBaptiste Daroussin 	break;
10270c8de5b0SBaptiste Daroussin 	case 282:
10280c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
10290c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
10300c8de5b0SBaptiste Daroussin 			 msg,
10310c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
10320c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
10330c8de5b0SBaptiste Daroussin 		  free((*val).type); }
10348e022d3cSDag-Erling Smørgrav #line 1035 "btyacc_demo.tab.c"
10350c8de5b0SBaptiste Daroussin 	break;
10360c8de5b0SBaptiste Daroussin 	case 283:
10370c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
10380c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
10390c8de5b0SBaptiste Daroussin 			 msg,
10400c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
10410c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
10420c8de5b0SBaptiste Daroussin 		  free((*val).type); }
10438e022d3cSDag-Erling Smørgrav #line 1044 "btyacc_demo.tab.c"
10440c8de5b0SBaptiste Daroussin 	break;
10450c8de5b0SBaptiste Daroussin 	case 284:
10460c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
10470c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
10480c8de5b0SBaptiste Daroussin 			 msg,
10490c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
10500c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
10510c8de5b0SBaptiste Daroussin 		  free((*val).type); }
10528e022d3cSDag-Erling Smørgrav #line 1053 "btyacc_demo.tab.c"
10530c8de5b0SBaptiste Daroussin 	break;
10540c8de5b0SBaptiste Daroussin 	case 285:
10550c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
10560c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
10570c8de5b0SBaptiste Daroussin 			 msg,
10580c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
10590c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
10600c8de5b0SBaptiste Daroussin 		  free((*val).type); }
10618e022d3cSDag-Erling Smørgrav #line 1062 "btyacc_demo.tab.c"
10620c8de5b0SBaptiste Daroussin 	break;
10630c8de5b0SBaptiste Daroussin 	case 286:
10640c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
10650c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
10660c8de5b0SBaptiste Daroussin 			 msg,
10670c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
10680c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
10690c8de5b0SBaptiste Daroussin 		  free((*val).scope); }
10708e022d3cSDag-Erling Smørgrav #line 1071 "btyacc_demo.tab.c"
10710c8de5b0SBaptiste Daroussin 	break;
10720c8de5b0SBaptiste Daroussin 	case 287:
10730c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
10740c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
10750c8de5b0SBaptiste Daroussin 			 msg,
10760c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
10770c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
10780c8de5b0SBaptiste Daroussin 		  free((*val).dlist); }
10798e022d3cSDag-Erling Smørgrav #line 1080 "btyacc_demo.tab.c"
10800c8de5b0SBaptiste Daroussin 	break;
10810c8de5b0SBaptiste Daroussin 	case 288:
10820c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
10830c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
10840c8de5b0SBaptiste Daroussin 			 msg,
10850c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
10860c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
10870c8de5b0SBaptiste Daroussin 		  free((*val).dlist); }
10888e022d3cSDag-Erling Smørgrav #line 1089 "btyacc_demo.tab.c"
10890c8de5b0SBaptiste Daroussin 	break;
10900c8de5b0SBaptiste Daroussin 	case 289:
10910c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
10920c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
10930c8de5b0SBaptiste Daroussin 			 msg,
10940c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
10950c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
10960c8de5b0SBaptiste Daroussin 		  free((*val).scope); }
10978e022d3cSDag-Erling Smørgrav #line 1098 "btyacc_demo.tab.c"
10980c8de5b0SBaptiste Daroussin 	break;
10990c8de5b0SBaptiste Daroussin 	case 290:
11000c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
11010c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
11020c8de5b0SBaptiste Daroussin 			 msg,
11030c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
11040c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
11050c8de5b0SBaptiste Daroussin 		  free((*val).scope); }
11068e022d3cSDag-Erling Smørgrav #line 1107 "btyacc_demo.tab.c"
11070c8de5b0SBaptiste Daroussin 	break;
11080c8de5b0SBaptiste Daroussin 	case 291:
11090c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
11100c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
11110c8de5b0SBaptiste Daroussin 			 msg,
11120c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
11130c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
1114c5b5d71aSJung-uk Kim 		  free((*val).scope); }
11158e022d3cSDag-Erling Smørgrav #line 1116 "btyacc_demo.tab.c"
11160c8de5b0SBaptiste Daroussin 	break;
11170c8de5b0SBaptiste Daroussin 	case 292:
11180c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
11190c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
11200c8de5b0SBaptiste Daroussin 			 msg,
11210c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
11220c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
11230c8de5b0SBaptiste Daroussin 		  free((*val).scope); }
11248e022d3cSDag-Erling Smørgrav #line 1125 "btyacc_demo.tab.c"
11250c8de5b0SBaptiste Daroussin 	break;
11260c8de5b0SBaptiste Daroussin 	case 293:
11270c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
11280c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
11290c8de5b0SBaptiste Daroussin 			 msg,
11300c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
11310c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
1132c5b5d71aSJung-uk Kim 		  free((*val).type); }
11338e022d3cSDag-Erling Smørgrav #line 1134 "btyacc_demo.tab.c"
11340c8de5b0SBaptiste Daroussin 	break;
11350c8de5b0SBaptiste Daroussin 	case 294:
11360c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
11370c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
11380c8de5b0SBaptiste Daroussin 			 msg,
11390c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
11400c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
1141c5b5d71aSJung-uk Kim 		  free((*val).scope); }
11428e022d3cSDag-Erling Smørgrav #line 1143 "btyacc_demo.tab.c"
1143c5b5d71aSJung-uk Kim 	break;
1144c5b5d71aSJung-uk Kim 	case 295:
1145c5b5d71aSJung-uk Kim #line 78 "btyacc_demo.y"
1146c5b5d71aSJung-uk Kim 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
1147c5b5d71aSJung-uk Kim 			 msg,
1148c5b5d71aSJung-uk Kim 			 (*loc).first_line, (*loc).first_column,
1149c5b5d71aSJung-uk Kim 			 (*loc).last_line, (*loc).last_column);
11500c8de5b0SBaptiste Daroussin 		  free((*val).type); }
11518e022d3cSDag-Erling Smørgrav #line 1152 "btyacc_demo.tab.c"
11520c8de5b0SBaptiste Daroussin 	break;
1153c5b5d71aSJung-uk Kim 	case 296:
11540c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
11550c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
11560c8de5b0SBaptiste Daroussin 			 msg,
11570c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
11580c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
11590c8de5b0SBaptiste Daroussin 		  free((*val).scope); }
11608e022d3cSDag-Erling Smørgrav #line 1161 "btyacc_demo.tab.c"
11610c8de5b0SBaptiste Daroussin 	break;
11620c8de5b0SBaptiste Daroussin 	case 297:
11630c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
11640c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
11650c8de5b0SBaptiste Daroussin 			 msg,
11660c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
11670c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
11680c8de5b0SBaptiste Daroussin 		  free((*val).scope); }
11698e022d3cSDag-Erling Smørgrav #line 1170 "btyacc_demo.tab.c"
11700c8de5b0SBaptiste Daroussin 	break;
11710c8de5b0SBaptiste Daroussin 	case 298:
11720c8de5b0SBaptiste Daroussin #line 78 "btyacc_demo.y"
11730c8de5b0SBaptiste Daroussin 	{ printf("%s accessed by symbol of any type other than <decl>  @ position[%d,%d..%d,%d]\n",
11740c8de5b0SBaptiste Daroussin 			 msg,
11750c8de5b0SBaptiste Daroussin 			 (*loc).first_line, (*loc).first_column,
11760c8de5b0SBaptiste Daroussin 			 (*loc).last_line, (*loc).last_column);
11770c8de5b0SBaptiste Daroussin 		  free((*val).scope); }
11788e022d3cSDag-Erling Smørgrav #line 1179 "btyacc_demo.tab.c"
11790c8de5b0SBaptiste Daroussin 	break;
11800c8de5b0SBaptiste Daroussin     }
11810c8de5b0SBaptiste Daroussin }
11820c8de5b0SBaptiste Daroussin #define YYDESTRUCT_IS_DECLARED 1
11830c8de5b0SBaptiste Daroussin #endif
11840c8de5b0SBaptiste Daroussin 
11850c8de5b0SBaptiste Daroussin /* For use in generated program */
11860c8de5b0SBaptiste Daroussin #define yydepth (int)(yystack.s_mark - yystack.s_base)
11870c8de5b0SBaptiste Daroussin #if YYBTYACC
11880c8de5b0SBaptiste Daroussin #define yytrial (yyps->save)
11890c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
11900c8de5b0SBaptiste Daroussin 
11910c8de5b0SBaptiste Daroussin #if YYDEBUG
11920c8de5b0SBaptiste Daroussin #include <stdio.h>	/* needed for printf */
11930c8de5b0SBaptiste Daroussin #endif
11940c8de5b0SBaptiste Daroussin 
11950c8de5b0SBaptiste Daroussin #include <stdlib.h>	/* needed for malloc, etc */
11960c8de5b0SBaptiste Daroussin #include <string.h>	/* needed for memset */
11970c8de5b0SBaptiste Daroussin 
11980c8de5b0SBaptiste Daroussin /* allocate initial stack or double stack size, up to YYMAXDEPTH */
yygrowstack(YYSTACKDATA * data)11990c8de5b0SBaptiste Daroussin static int yygrowstack(YYSTACKDATA *data)
12000c8de5b0SBaptiste Daroussin {
12010c8de5b0SBaptiste Daroussin     int i;
12020c8de5b0SBaptiste Daroussin     unsigned newsize;
1203c5b5d71aSJung-uk Kim     YYINT *newss;
12040c8de5b0SBaptiste Daroussin     YYSTYPE *newvs;
12050c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
12060c8de5b0SBaptiste Daroussin     YYLTYPE *newps;
12070c8de5b0SBaptiste Daroussin #endif
12080c8de5b0SBaptiste Daroussin 
12090c8de5b0SBaptiste Daroussin     if ((newsize = data->stacksize) == 0)
12100c8de5b0SBaptiste Daroussin         newsize = YYINITSTACKSIZE;
12110c8de5b0SBaptiste Daroussin     else if (newsize >= YYMAXDEPTH)
12120c8de5b0SBaptiste Daroussin         return YYENOMEM;
12130c8de5b0SBaptiste Daroussin     else if ((newsize *= 2) > YYMAXDEPTH)
12140c8de5b0SBaptiste Daroussin         newsize = YYMAXDEPTH;
12150c8de5b0SBaptiste Daroussin 
12160c8de5b0SBaptiste Daroussin     i = (int) (data->s_mark - data->s_base);
1217c5b5d71aSJung-uk Kim     newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss));
1218bf80e08eSJung-uk Kim     if (newss == NULL)
12190c8de5b0SBaptiste Daroussin         return YYENOMEM;
12200c8de5b0SBaptiste Daroussin 
12210c8de5b0SBaptiste Daroussin     data->s_base = newss;
12220c8de5b0SBaptiste Daroussin     data->s_mark = newss + i;
12230c8de5b0SBaptiste Daroussin 
12240c8de5b0SBaptiste Daroussin     newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));
1225bf80e08eSJung-uk Kim     if (newvs == NULL)
12260c8de5b0SBaptiste Daroussin         return YYENOMEM;
12270c8de5b0SBaptiste Daroussin 
12280c8de5b0SBaptiste Daroussin     data->l_base = newvs;
12290c8de5b0SBaptiste Daroussin     data->l_mark = newvs + i;
12300c8de5b0SBaptiste Daroussin 
12310c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
12320c8de5b0SBaptiste Daroussin     newps = (YYLTYPE *)realloc(data->p_base, newsize * sizeof(*newps));
1233bf80e08eSJung-uk Kim     if (newps == NULL)
12340c8de5b0SBaptiste Daroussin         return YYENOMEM;
12350c8de5b0SBaptiste Daroussin 
12360c8de5b0SBaptiste Daroussin     data->p_base = newps;
12370c8de5b0SBaptiste Daroussin     data->p_mark = newps + i;
12380c8de5b0SBaptiste Daroussin #endif
12390c8de5b0SBaptiste Daroussin 
12400c8de5b0SBaptiste Daroussin     data->stacksize = newsize;
12410c8de5b0SBaptiste Daroussin     data->s_last = data->s_base + newsize - 1;
12420c8de5b0SBaptiste Daroussin 
12430c8de5b0SBaptiste Daroussin #if YYDEBUG
12440c8de5b0SBaptiste Daroussin     if (yydebug)
12450c8de5b0SBaptiste Daroussin         fprintf(stderr, "%sdebug: stack size increased to %d\n", YYPREFIX, newsize);
12460c8de5b0SBaptiste Daroussin #endif
12470c8de5b0SBaptiste Daroussin     return 0;
12480c8de5b0SBaptiste Daroussin }
12490c8de5b0SBaptiste Daroussin 
12500c8de5b0SBaptiste Daroussin #if YYPURE || defined(YY_NO_LEAKS)
yyfreestack(YYSTACKDATA * data)12510c8de5b0SBaptiste Daroussin static void yyfreestack(YYSTACKDATA *data)
12520c8de5b0SBaptiste Daroussin {
12530c8de5b0SBaptiste Daroussin     free(data->s_base);
12540c8de5b0SBaptiste Daroussin     free(data->l_base);
12550c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
12560c8de5b0SBaptiste Daroussin     free(data->p_base);
12570c8de5b0SBaptiste Daroussin #endif
12580c8de5b0SBaptiste Daroussin     memset(data, 0, sizeof(*data));
12590c8de5b0SBaptiste Daroussin }
12600c8de5b0SBaptiste Daroussin #else
12610c8de5b0SBaptiste Daroussin #define yyfreestack(data) /* nothing */
12620c8de5b0SBaptiste Daroussin #endif /* YYPURE || defined(YY_NO_LEAKS) */
12630c8de5b0SBaptiste Daroussin #if YYBTYACC
12640c8de5b0SBaptiste Daroussin 
12650c8de5b0SBaptiste Daroussin static YYParseState *
yyNewState(unsigned size)12660c8de5b0SBaptiste Daroussin yyNewState(unsigned size)
12670c8de5b0SBaptiste Daroussin {
12680c8de5b0SBaptiste Daroussin     YYParseState *p = (YYParseState *) malloc(sizeof(YYParseState));
12690c8de5b0SBaptiste Daroussin     if (p == NULL) return NULL;
12700c8de5b0SBaptiste Daroussin 
12710c8de5b0SBaptiste Daroussin     p->yystack.stacksize = size;
12720c8de5b0SBaptiste Daroussin     if (size == 0)
12730c8de5b0SBaptiste Daroussin     {
12740c8de5b0SBaptiste Daroussin         p->yystack.s_base = NULL;
12750c8de5b0SBaptiste Daroussin         p->yystack.l_base = NULL;
12760c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
12770c8de5b0SBaptiste Daroussin         p->yystack.p_base = NULL;
12780c8de5b0SBaptiste Daroussin #endif
12790c8de5b0SBaptiste Daroussin         return p;
12800c8de5b0SBaptiste Daroussin     }
1281c5b5d71aSJung-uk Kim     p->yystack.s_base    = (YYINT *) malloc(size * sizeof(YYINT));
12820c8de5b0SBaptiste Daroussin     if (p->yystack.s_base == NULL) return NULL;
12830c8de5b0SBaptiste Daroussin     p->yystack.l_base    = (YYSTYPE *) malloc(size * sizeof(YYSTYPE));
12840c8de5b0SBaptiste Daroussin     if (p->yystack.l_base == NULL) return NULL;
12850c8de5b0SBaptiste Daroussin     memset(p->yystack.l_base, 0, size * sizeof(YYSTYPE));
12860c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
12870c8de5b0SBaptiste Daroussin     p->yystack.p_base    = (YYLTYPE *) malloc(size * sizeof(YYLTYPE));
12880c8de5b0SBaptiste Daroussin     if (p->yystack.p_base == NULL) return NULL;
12890c8de5b0SBaptiste Daroussin     memset(p->yystack.p_base, 0, size * sizeof(YYLTYPE));
12900c8de5b0SBaptiste Daroussin #endif
12910c8de5b0SBaptiste Daroussin 
12920c8de5b0SBaptiste Daroussin     return p;
12930c8de5b0SBaptiste Daroussin }
12940c8de5b0SBaptiste Daroussin 
12950c8de5b0SBaptiste Daroussin static void
yyFreeState(YYParseState * p)12960c8de5b0SBaptiste Daroussin yyFreeState(YYParseState *p)
12970c8de5b0SBaptiste Daroussin {
12980c8de5b0SBaptiste Daroussin     yyfreestack(&p->yystack);
12990c8de5b0SBaptiste Daroussin     free(p);
13000c8de5b0SBaptiste Daroussin }
13010c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
13020c8de5b0SBaptiste Daroussin 
13030c8de5b0SBaptiste Daroussin #define YYABORT  goto yyabort
13040c8de5b0SBaptiste Daroussin #define YYREJECT goto yyabort
13050c8de5b0SBaptiste Daroussin #define YYACCEPT goto yyaccept
13060c8de5b0SBaptiste Daroussin #define YYERROR  goto yyerrlab
13070c8de5b0SBaptiste Daroussin #if YYBTYACC
13080c8de5b0SBaptiste Daroussin #define YYVALID        do { if (yyps->save)            goto yyvalid; } while(0)
13090c8de5b0SBaptiste Daroussin #define YYVALID_NESTED do { if (yyps->save && \
13100c8de5b0SBaptiste Daroussin                                 yyps->save->save == 0) goto yyvalid; } while(0)
13110c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
13120c8de5b0SBaptiste Daroussin 
13130c8de5b0SBaptiste Daroussin int
YYPARSE_DECL()13140c8de5b0SBaptiste Daroussin YYPARSE_DECL()
13150c8de5b0SBaptiste Daroussin {
13160c8de5b0SBaptiste Daroussin     int yym, yyn, yystate, yyresult;
13170c8de5b0SBaptiste Daroussin #if YYBTYACC
13180c8de5b0SBaptiste Daroussin     int yynewerrflag;
13190c8de5b0SBaptiste Daroussin     YYParseState *yyerrctx = NULL;
13200c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
13210c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1322b53bb29fSJung-uk Kim     YYLTYPE  yyerror_loc_range[3]; /* position of error start/end (0 unused) */
13230c8de5b0SBaptiste Daroussin #endif
13240c8de5b0SBaptiste Daroussin #if YYDEBUG
13250c8de5b0SBaptiste Daroussin     const char *yys;
13260c8de5b0SBaptiste Daroussin 
1327bf80e08eSJung-uk Kim     if ((yys = getenv("YYDEBUG")) != NULL)
13280c8de5b0SBaptiste Daroussin     {
13290c8de5b0SBaptiste Daroussin         yyn = *yys;
13300c8de5b0SBaptiste Daroussin         if (yyn >= '0' && yyn <= '9')
13310c8de5b0SBaptiste Daroussin             yydebug = yyn - '0';
13320c8de5b0SBaptiste Daroussin     }
13330c8de5b0SBaptiste Daroussin     if (yydebug)
13340c8de5b0SBaptiste Daroussin         fprintf(stderr, "%sdebug[<# of symbols on state stack>]\n", YYPREFIX);
13350c8de5b0SBaptiste Daroussin #endif
13366166fdceSJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
13376166fdceSJung-uk Kim     memset(yyerror_loc_range, 0, sizeof(yyerror_loc_range));
13386166fdceSJung-uk Kim #endif
13390c8de5b0SBaptiste Daroussin 
13400c8de5b0SBaptiste Daroussin #if YYBTYACC
13410c8de5b0SBaptiste Daroussin     yyps = yyNewState(0); if (yyps == 0) goto yyenomem;
13420c8de5b0SBaptiste Daroussin     yyps->save = 0;
13430c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
1344c5b5d71aSJung-uk Kim     yym = 0;
13458e022d3cSDag-Erling Smørgrav     /* yyn is set below */
13460c8de5b0SBaptiste Daroussin     yynerrs = 0;
13470c8de5b0SBaptiste Daroussin     yyerrflag = 0;
13480c8de5b0SBaptiste Daroussin     yychar = YYEMPTY;
13490c8de5b0SBaptiste Daroussin     yystate = 0;
13500c8de5b0SBaptiste Daroussin 
13510c8de5b0SBaptiste Daroussin #if YYPURE
13520c8de5b0SBaptiste Daroussin     memset(&yystack, 0, sizeof(yystack));
13530c8de5b0SBaptiste Daroussin #endif
13540c8de5b0SBaptiste Daroussin 
13550c8de5b0SBaptiste Daroussin     if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
13560c8de5b0SBaptiste Daroussin     yystack.s_mark = yystack.s_base;
13570c8de5b0SBaptiste Daroussin     yystack.l_mark = yystack.l_base;
13580c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
13590c8de5b0SBaptiste Daroussin     yystack.p_mark = yystack.p_base;
13600c8de5b0SBaptiste Daroussin #endif
13610c8de5b0SBaptiste Daroussin     yystate = 0;
13620c8de5b0SBaptiste Daroussin     *yystack.s_mark = 0;
13630c8de5b0SBaptiste Daroussin 
13640c8de5b0SBaptiste Daroussin yyloop:
13650c8de5b0SBaptiste Daroussin     if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
13660c8de5b0SBaptiste Daroussin     if (yychar < 0)
13670c8de5b0SBaptiste Daroussin     {
13680c8de5b0SBaptiste Daroussin #if YYBTYACC
13690c8de5b0SBaptiste Daroussin         do {
13700c8de5b0SBaptiste Daroussin         if (yylvp < yylve)
13710c8de5b0SBaptiste Daroussin         {
13720c8de5b0SBaptiste Daroussin             /* we're currently re-reading tokens */
13730c8de5b0SBaptiste Daroussin             yylval = *yylvp++;
13740c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
13750c8de5b0SBaptiste Daroussin             yylloc = *yylpp++;
13760c8de5b0SBaptiste Daroussin #endif
13770c8de5b0SBaptiste Daroussin             yychar = *yylexp++;
13780c8de5b0SBaptiste Daroussin             break;
13790c8de5b0SBaptiste Daroussin         }
13800c8de5b0SBaptiste Daroussin         if (yyps->save)
13810c8de5b0SBaptiste Daroussin         {
13820c8de5b0SBaptiste Daroussin             /* in trial mode; save scanner results for future parse attempts */
13830c8de5b0SBaptiste Daroussin             if (yylvp == yylvlim)
13840c8de5b0SBaptiste Daroussin             {   /* Enlarge lexical value queue */
138511fce282SBaptiste Daroussin                 size_t p = (size_t) (yylvp - yylvals);
138611fce282SBaptiste Daroussin                 size_t s = (size_t) (yylvlim - yylvals);
13870c8de5b0SBaptiste Daroussin 
13880c8de5b0SBaptiste Daroussin                 s += YYLVQUEUEGROWTH;
1389b53bb29fSJung-uk Kim                 if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL) goto yyenomem;
1390b53bb29fSJung-uk Kim                 if ((yylvals   = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
13910c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1392b53bb29fSJung-uk Kim                 if ((yylpsns   = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
13930c8de5b0SBaptiste Daroussin #endif
13940c8de5b0SBaptiste Daroussin                 yylvp   = yylve = yylvals + p;
13950c8de5b0SBaptiste Daroussin                 yylvlim = yylvals + s;
13960c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
13970c8de5b0SBaptiste Daroussin                 yylpp   = yylpe = yylpsns + p;
13980c8de5b0SBaptiste Daroussin                 yylplim = yylpsns + s;
13990c8de5b0SBaptiste Daroussin #endif
14000c8de5b0SBaptiste Daroussin                 yylexp  = yylexemes + p;
14010c8de5b0SBaptiste Daroussin             }
14022aca18c7SJung-uk Kim             *yylexp = (YYINT) YYLEX;
14030c8de5b0SBaptiste Daroussin             *yylvp++ = yylval;
14040c8de5b0SBaptiste Daroussin             yylve++;
14050c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
14060c8de5b0SBaptiste Daroussin             *yylpp++ = yylloc;
14070c8de5b0SBaptiste Daroussin             yylpe++;
14080c8de5b0SBaptiste Daroussin #endif
14090c8de5b0SBaptiste Daroussin             yychar = *yylexp++;
14100c8de5b0SBaptiste Daroussin             break;
14110c8de5b0SBaptiste Daroussin         }
14120c8de5b0SBaptiste Daroussin         /* normal operation, no conflict encountered */
14130c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
14140c8de5b0SBaptiste Daroussin         yychar = YYLEX;
14150c8de5b0SBaptiste Daroussin #if YYBTYACC
14160c8de5b0SBaptiste Daroussin         } while (0);
14170c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
14180c8de5b0SBaptiste Daroussin         if (yychar < 0) yychar = YYEOF;
14190c8de5b0SBaptiste Daroussin #if YYDEBUG
14200c8de5b0SBaptiste Daroussin         if (yydebug)
14210c8de5b0SBaptiste Daroussin         {
1422c5b5d71aSJung-uk Kim             if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
14230c8de5b0SBaptiste Daroussin             fprintf(stderr, "%s[%d]: state %d, reading token %d (%s)",
14240c8de5b0SBaptiste Daroussin                             YYDEBUGSTR, yydepth, yystate, yychar, yys);
14250c8de5b0SBaptiste Daroussin #ifdef YYSTYPE_TOSTRING
14260c8de5b0SBaptiste Daroussin #if YYBTYACC
14270c8de5b0SBaptiste Daroussin             if (!yytrial)
14280c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
14290c8de5b0SBaptiste Daroussin                 fprintf(stderr, " <%s>", YYSTYPE_TOSTRING(yychar, yylval));
14300c8de5b0SBaptiste Daroussin #endif
14310c8de5b0SBaptiste Daroussin             fputc('\n', stderr);
14320c8de5b0SBaptiste Daroussin         }
14330c8de5b0SBaptiste Daroussin #endif
14340c8de5b0SBaptiste Daroussin     }
14350c8de5b0SBaptiste Daroussin #if YYBTYACC
14360c8de5b0SBaptiste Daroussin 
14370c8de5b0SBaptiste Daroussin     /* Do we have a conflict? */
14380c8de5b0SBaptiste Daroussin     if (((yyn = yycindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
14390c8de5b0SBaptiste Daroussin         yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
14400c8de5b0SBaptiste Daroussin     {
14410c8de5b0SBaptiste Daroussin         YYINT ctry;
14420c8de5b0SBaptiste Daroussin 
14430c8de5b0SBaptiste Daroussin         if (yypath)
14440c8de5b0SBaptiste Daroussin         {
14450c8de5b0SBaptiste Daroussin             YYParseState *save;
14460c8de5b0SBaptiste Daroussin #if YYDEBUG
14470c8de5b0SBaptiste Daroussin             if (yydebug)
14480c8de5b0SBaptiste Daroussin                 fprintf(stderr, "%s[%d]: CONFLICT in state %d: following successful trial parse\n",
14490c8de5b0SBaptiste Daroussin                                 YYDEBUGSTR, yydepth, yystate);
14500c8de5b0SBaptiste Daroussin #endif
14510c8de5b0SBaptiste Daroussin             /* Switch to the next conflict context */
14520c8de5b0SBaptiste Daroussin             save = yypath;
14530c8de5b0SBaptiste Daroussin             yypath = save->save;
14540c8de5b0SBaptiste Daroussin             save->save = NULL;
14550c8de5b0SBaptiste Daroussin             ctry = save->ctry;
14560c8de5b0SBaptiste Daroussin             if (save->state != yystate) YYABORT;
14570c8de5b0SBaptiste Daroussin             yyFreeState(save);
14580c8de5b0SBaptiste Daroussin 
14590c8de5b0SBaptiste Daroussin         }
14600c8de5b0SBaptiste Daroussin         else
14610c8de5b0SBaptiste Daroussin         {
14620c8de5b0SBaptiste Daroussin 
14630c8de5b0SBaptiste Daroussin             /* Unresolved conflict - start/continue trial parse */
14640c8de5b0SBaptiste Daroussin             YYParseState *save;
14650c8de5b0SBaptiste Daroussin #if YYDEBUG
14660c8de5b0SBaptiste Daroussin             if (yydebug)
14670c8de5b0SBaptiste Daroussin             {
14680c8de5b0SBaptiste Daroussin                 fprintf(stderr, "%s[%d]: CONFLICT in state %d. ", YYDEBUGSTR, yydepth, yystate);
14690c8de5b0SBaptiste Daroussin                 if (yyps->save)
14700c8de5b0SBaptiste Daroussin                     fputs("ALREADY in conflict, continuing trial parse.\n", stderr);
14710c8de5b0SBaptiste Daroussin                 else
14720c8de5b0SBaptiste Daroussin                     fputs("Starting trial parse.\n", stderr);
14730c8de5b0SBaptiste Daroussin             }
14740c8de5b0SBaptiste Daroussin #endif
14750c8de5b0SBaptiste Daroussin             save                  = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1));
14760c8de5b0SBaptiste Daroussin             if (save == NULL) goto yyenomem;
14770c8de5b0SBaptiste Daroussin             save->save            = yyps->save;
14780c8de5b0SBaptiste Daroussin             save->state           = yystate;
14790c8de5b0SBaptiste Daroussin             save->errflag         = yyerrflag;
14800c8de5b0SBaptiste Daroussin             save->yystack.s_mark  = save->yystack.s_base + (yystack.s_mark - yystack.s_base);
1481c5b5d71aSJung-uk Kim             memcpy (save->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
14820c8de5b0SBaptiste Daroussin             save->yystack.l_mark  = save->yystack.l_base + (yystack.l_mark - yystack.l_base);
148311fce282SBaptiste Daroussin             memcpy (save->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
14840c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
14850c8de5b0SBaptiste Daroussin             save->yystack.p_mark  = save->yystack.p_base + (yystack.p_mark - yystack.p_base);
148611fce282SBaptiste Daroussin             memcpy (save->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
14870c8de5b0SBaptiste Daroussin #endif
14880c8de5b0SBaptiste Daroussin             ctry                  = yytable[yyn];
14890c8de5b0SBaptiste Daroussin             if (yyctable[ctry] == -1)
14900c8de5b0SBaptiste Daroussin             {
14910c8de5b0SBaptiste Daroussin #if YYDEBUG
14920c8de5b0SBaptiste Daroussin                 if (yydebug && yychar >= YYEOF)
14930c8de5b0SBaptiste Daroussin                     fprintf(stderr, "%s[%d]: backtracking 1 token\n", YYDEBUGSTR, yydepth);
14940c8de5b0SBaptiste Daroussin #endif
14950c8de5b0SBaptiste Daroussin                 ctry++;
14960c8de5b0SBaptiste Daroussin             }
14970c8de5b0SBaptiste Daroussin             save->ctry = ctry;
14980c8de5b0SBaptiste Daroussin             if (yyps->save == NULL)
14990c8de5b0SBaptiste Daroussin             {
15000c8de5b0SBaptiste Daroussin                 /* If this is a first conflict in the stack, start saving lexemes */
15010c8de5b0SBaptiste Daroussin                 if (!yylexemes)
15020c8de5b0SBaptiste Daroussin                 {
1503b53bb29fSJung-uk Kim                     yylexemes = (YYINT *) malloc((YYLVQUEUEGROWTH) * sizeof(YYINT));
15040c8de5b0SBaptiste Daroussin                     if (yylexemes == NULL) goto yyenomem;
15050c8de5b0SBaptiste Daroussin                     yylvals   = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
15060c8de5b0SBaptiste Daroussin                     if (yylvals == NULL) goto yyenomem;
15070c8de5b0SBaptiste Daroussin                     yylvlim   = yylvals + YYLVQUEUEGROWTH;
15080c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
15090c8de5b0SBaptiste Daroussin                     yylpsns   = (YYLTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYLTYPE));
15100c8de5b0SBaptiste Daroussin                     if (yylpsns == NULL) goto yyenomem;
15110c8de5b0SBaptiste Daroussin                     yylplim   = yylpsns + YYLVQUEUEGROWTH;
15120c8de5b0SBaptiste Daroussin #endif
15130c8de5b0SBaptiste Daroussin                 }
15140c8de5b0SBaptiste Daroussin                 if (yylvp == yylve)
15150c8de5b0SBaptiste Daroussin                 {
15160c8de5b0SBaptiste Daroussin                     yylvp  = yylve = yylvals;
15170c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
15180c8de5b0SBaptiste Daroussin                     yylpp  = yylpe = yylpsns;
15190c8de5b0SBaptiste Daroussin #endif
15200c8de5b0SBaptiste Daroussin                     yylexp = yylexemes;
15210c8de5b0SBaptiste Daroussin                     if (yychar >= YYEOF)
15220c8de5b0SBaptiste Daroussin                     {
15230c8de5b0SBaptiste Daroussin                         *yylve++ = yylval;
15240c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
15250c8de5b0SBaptiste Daroussin                         *yylpe++ = yylloc;
15260c8de5b0SBaptiste Daroussin #endif
15272aca18c7SJung-uk Kim                         *yylexp  = (YYINT) yychar;
15280c8de5b0SBaptiste Daroussin                         yychar   = YYEMPTY;
15290c8de5b0SBaptiste Daroussin                     }
15300c8de5b0SBaptiste Daroussin                 }
15310c8de5b0SBaptiste Daroussin             }
15320c8de5b0SBaptiste Daroussin             if (yychar >= YYEOF)
15330c8de5b0SBaptiste Daroussin             {
15340c8de5b0SBaptiste Daroussin                 yylvp--;
15350c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
15360c8de5b0SBaptiste Daroussin                 yylpp--;
15370c8de5b0SBaptiste Daroussin #endif
15380c8de5b0SBaptiste Daroussin                 yylexp--;
15390c8de5b0SBaptiste Daroussin                 yychar = YYEMPTY;
15400c8de5b0SBaptiste Daroussin             }
154111fce282SBaptiste Daroussin             save->lexeme = (int) (yylvp - yylvals);
15420c8de5b0SBaptiste Daroussin             yyps->save   = save;
15430c8de5b0SBaptiste Daroussin         }
15440c8de5b0SBaptiste Daroussin         if (yytable[yyn] == ctry)
15450c8de5b0SBaptiste Daroussin         {
15460c8de5b0SBaptiste Daroussin #if YYDEBUG
15470c8de5b0SBaptiste Daroussin             if (yydebug)
15480c8de5b0SBaptiste Daroussin                 fprintf(stderr, "%s[%d]: state %d, shifting to state %d\n",
15490c8de5b0SBaptiste Daroussin                                 YYDEBUGSTR, yydepth, yystate, yyctable[ctry]);
15500c8de5b0SBaptiste Daroussin #endif
15510c8de5b0SBaptiste Daroussin             if (yychar < 0)
15520c8de5b0SBaptiste Daroussin             {
15530c8de5b0SBaptiste Daroussin                 yylvp++;
15540c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
15550c8de5b0SBaptiste Daroussin                 yylpp++;
15560c8de5b0SBaptiste Daroussin #endif
15570c8de5b0SBaptiste Daroussin                 yylexp++;
15580c8de5b0SBaptiste Daroussin             }
15590c8de5b0SBaptiste Daroussin             if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM)
15600c8de5b0SBaptiste Daroussin                 goto yyoverflow;
15610c8de5b0SBaptiste Daroussin             yystate = yyctable[ctry];
1562c5b5d71aSJung-uk Kim             *++yystack.s_mark = (YYINT) yystate;
15630c8de5b0SBaptiste Daroussin             *++yystack.l_mark = yylval;
15640c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
15650c8de5b0SBaptiste Daroussin             *++yystack.p_mark = yylloc;
15660c8de5b0SBaptiste Daroussin #endif
15670c8de5b0SBaptiste Daroussin             yychar  = YYEMPTY;
15680c8de5b0SBaptiste Daroussin             if (yyerrflag > 0) --yyerrflag;
15690c8de5b0SBaptiste Daroussin             goto yyloop;
15700c8de5b0SBaptiste Daroussin         }
15710c8de5b0SBaptiste Daroussin         else
15720c8de5b0SBaptiste Daroussin         {
15730c8de5b0SBaptiste Daroussin             yyn = yyctable[ctry];
15740c8de5b0SBaptiste Daroussin             goto yyreduce;
15750c8de5b0SBaptiste Daroussin         }
15760c8de5b0SBaptiste Daroussin     } /* End of code dealing with conflicts */
15770c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
15780c8de5b0SBaptiste Daroussin     if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
15790c8de5b0SBaptiste Daroussin             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
15800c8de5b0SBaptiste Daroussin     {
15810c8de5b0SBaptiste Daroussin #if YYDEBUG
15820c8de5b0SBaptiste Daroussin         if (yydebug)
15830c8de5b0SBaptiste Daroussin             fprintf(stderr, "%s[%d]: state %d, shifting to state %d\n",
15840c8de5b0SBaptiste Daroussin                             YYDEBUGSTR, yydepth, yystate, yytable[yyn]);
15850c8de5b0SBaptiste Daroussin #endif
15860c8de5b0SBaptiste Daroussin         if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
15870c8de5b0SBaptiste Daroussin         yystate = yytable[yyn];
15880c8de5b0SBaptiste Daroussin         *++yystack.s_mark = yytable[yyn];
15890c8de5b0SBaptiste Daroussin         *++yystack.l_mark = yylval;
15900c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
15910c8de5b0SBaptiste Daroussin         *++yystack.p_mark = yylloc;
15920c8de5b0SBaptiste Daroussin #endif
15930c8de5b0SBaptiste Daroussin         yychar = YYEMPTY;
15940c8de5b0SBaptiste Daroussin         if (yyerrflag > 0)  --yyerrflag;
15950c8de5b0SBaptiste Daroussin         goto yyloop;
15960c8de5b0SBaptiste Daroussin     }
15970c8de5b0SBaptiste Daroussin     if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
15980c8de5b0SBaptiste Daroussin             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
15990c8de5b0SBaptiste Daroussin     {
16000c8de5b0SBaptiste Daroussin         yyn = yytable[yyn];
16010c8de5b0SBaptiste Daroussin         goto yyreduce;
16020c8de5b0SBaptiste Daroussin     }
16030c8de5b0SBaptiste Daroussin     if (yyerrflag != 0) goto yyinrecovery;
16040c8de5b0SBaptiste Daroussin #if YYBTYACC
16050c8de5b0SBaptiste Daroussin 
16060c8de5b0SBaptiste Daroussin     yynewerrflag = 1;
16070c8de5b0SBaptiste Daroussin     goto yyerrhandler;
1608c5b5d71aSJung-uk Kim     goto yyerrlab; /* redundant goto avoids 'unused label' warning */
16090c8de5b0SBaptiste Daroussin 
16100c8de5b0SBaptiste Daroussin yyerrlab:
1611c5b5d71aSJung-uk Kim     /* explicit YYERROR from an action -- pop the rhs of the rule reduced
1612c5b5d71aSJung-uk Kim      * before looking for error recovery */
1613c5b5d71aSJung-uk Kim     yystack.s_mark -= yym;
1614c5b5d71aSJung-uk Kim     yystate = *yystack.s_mark;
1615c5b5d71aSJung-uk Kim     yystack.l_mark -= yym;
1616c5b5d71aSJung-uk Kim #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1617c5b5d71aSJung-uk Kim     yystack.p_mark -= yym;
1618c5b5d71aSJung-uk Kim #endif
1619c5b5d71aSJung-uk Kim 
16200c8de5b0SBaptiste Daroussin     yynewerrflag = 0;
16210c8de5b0SBaptiste Daroussin yyerrhandler:
16220c8de5b0SBaptiste Daroussin     while (yyps->save)
16230c8de5b0SBaptiste Daroussin     {
16240c8de5b0SBaptiste Daroussin         int ctry;
16250c8de5b0SBaptiste Daroussin         YYParseState *save = yyps->save;
16260c8de5b0SBaptiste Daroussin #if YYDEBUG
16270c8de5b0SBaptiste Daroussin         if (yydebug)
16280c8de5b0SBaptiste Daroussin             fprintf(stderr, "%s[%d]: ERROR in state %d, CONFLICT BACKTRACKING to state %d, %d tokens\n",
16290c8de5b0SBaptiste Daroussin                             YYDEBUGSTR, yydepth, yystate, yyps->save->state,
16300c8de5b0SBaptiste Daroussin                     (int)(yylvp - yylvals - yyps->save->lexeme));
16310c8de5b0SBaptiste Daroussin #endif
16320c8de5b0SBaptiste Daroussin         /* Memorize most forward-looking error state in case it's really an error. */
16330c8de5b0SBaptiste Daroussin         if (yyerrctx == NULL || yyerrctx->lexeme < yylvp - yylvals)
16340c8de5b0SBaptiste Daroussin         {
16350c8de5b0SBaptiste Daroussin             /* Free old saved error context state */
16360c8de5b0SBaptiste Daroussin             if (yyerrctx) yyFreeState(yyerrctx);
16370c8de5b0SBaptiste Daroussin             /* Create and fill out new saved error context state */
16380c8de5b0SBaptiste Daroussin             yyerrctx                 = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1));
16390c8de5b0SBaptiste Daroussin             if (yyerrctx == NULL) goto yyenomem;
16400c8de5b0SBaptiste Daroussin             yyerrctx->save           = yyps->save;
16410c8de5b0SBaptiste Daroussin             yyerrctx->state          = yystate;
16420c8de5b0SBaptiste Daroussin             yyerrctx->errflag        = yyerrflag;
16430c8de5b0SBaptiste Daroussin             yyerrctx->yystack.s_mark = yyerrctx->yystack.s_base + (yystack.s_mark - yystack.s_base);
1644c5b5d71aSJung-uk Kim             memcpy (yyerrctx->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
16450c8de5b0SBaptiste Daroussin             yyerrctx->yystack.l_mark = yyerrctx->yystack.l_base + (yystack.l_mark - yystack.l_base);
164611fce282SBaptiste Daroussin             memcpy (yyerrctx->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
16470c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
16480c8de5b0SBaptiste Daroussin             yyerrctx->yystack.p_mark = yyerrctx->yystack.p_base + (yystack.p_mark - yystack.p_base);
164911fce282SBaptiste Daroussin             memcpy (yyerrctx->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
16500c8de5b0SBaptiste Daroussin #endif
165111fce282SBaptiste Daroussin             yyerrctx->lexeme         = (int) (yylvp - yylvals);
16520c8de5b0SBaptiste Daroussin         }
16530c8de5b0SBaptiste Daroussin         yylvp          = yylvals   + save->lexeme;
16540c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
16550c8de5b0SBaptiste Daroussin         yylpp          = yylpsns   + save->lexeme;
16560c8de5b0SBaptiste Daroussin #endif
16570c8de5b0SBaptiste Daroussin         yylexp         = yylexemes + save->lexeme;
16580c8de5b0SBaptiste Daroussin         yychar         = YYEMPTY;
16590c8de5b0SBaptiste Daroussin         yystack.s_mark = yystack.s_base + (save->yystack.s_mark - save->yystack.s_base);
1660c5b5d71aSJung-uk Kim         memcpy (yystack.s_base, save->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
16610c8de5b0SBaptiste Daroussin         yystack.l_mark = yystack.l_base + (save->yystack.l_mark - save->yystack.l_base);
166211fce282SBaptiste Daroussin         memcpy (yystack.l_base, save->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
16630c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
16640c8de5b0SBaptiste Daroussin         yystack.p_mark = yystack.p_base + (save->yystack.p_mark - save->yystack.p_base);
166511fce282SBaptiste Daroussin         memcpy (yystack.p_base, save->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
16660c8de5b0SBaptiste Daroussin #endif
16670c8de5b0SBaptiste Daroussin         ctry           = ++save->ctry;
16680c8de5b0SBaptiste Daroussin         yystate        = save->state;
16690c8de5b0SBaptiste Daroussin         /* We tried shift, try reduce now */
16700c8de5b0SBaptiste Daroussin         if ((yyn = yyctable[ctry]) >= 0) goto yyreduce;
16710c8de5b0SBaptiste Daroussin         yyps->save     = save->save;
16720c8de5b0SBaptiste Daroussin         save->save     = NULL;
16730c8de5b0SBaptiste Daroussin         yyFreeState(save);
16740c8de5b0SBaptiste Daroussin 
16750c8de5b0SBaptiste Daroussin         /* Nothing left on the stack -- error */
16760c8de5b0SBaptiste Daroussin         if (!yyps->save)
16770c8de5b0SBaptiste Daroussin         {
16780c8de5b0SBaptiste Daroussin #if YYDEBUG
16790c8de5b0SBaptiste Daroussin             if (yydebug)
16800c8de5b0SBaptiste Daroussin                 fprintf(stderr, "%sdebug[%d,trial]: trial parse FAILED, entering ERROR mode\n",
16810c8de5b0SBaptiste Daroussin                                 YYPREFIX, yydepth);
16820c8de5b0SBaptiste Daroussin #endif
16830c8de5b0SBaptiste Daroussin             /* Restore state as it was in the most forward-advanced error */
16840c8de5b0SBaptiste Daroussin             yylvp          = yylvals   + yyerrctx->lexeme;
16850c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
16860c8de5b0SBaptiste Daroussin             yylpp          = yylpsns   + yyerrctx->lexeme;
16870c8de5b0SBaptiste Daroussin #endif
16880c8de5b0SBaptiste Daroussin             yylexp         = yylexemes + yyerrctx->lexeme;
16890c8de5b0SBaptiste Daroussin             yychar         = yylexp[-1];
16900c8de5b0SBaptiste Daroussin             yylval         = yylvp[-1];
16910c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
16920c8de5b0SBaptiste Daroussin             yylloc         = yylpp[-1];
16930c8de5b0SBaptiste Daroussin #endif
16940c8de5b0SBaptiste Daroussin             yystack.s_mark = yystack.s_base + (yyerrctx->yystack.s_mark - yyerrctx->yystack.s_base);
1695c5b5d71aSJung-uk Kim             memcpy (yystack.s_base, yyerrctx->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
16960c8de5b0SBaptiste Daroussin             yystack.l_mark = yystack.l_base + (yyerrctx->yystack.l_mark - yyerrctx->yystack.l_base);
169711fce282SBaptiste Daroussin             memcpy (yystack.l_base, yyerrctx->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
16980c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
16990c8de5b0SBaptiste Daroussin             yystack.p_mark = yystack.p_base + (yyerrctx->yystack.p_mark - yyerrctx->yystack.p_base);
170011fce282SBaptiste Daroussin             memcpy (yystack.p_base, yyerrctx->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
17010c8de5b0SBaptiste Daroussin #endif
17020c8de5b0SBaptiste Daroussin             yystate        = yyerrctx->state;
17030c8de5b0SBaptiste Daroussin             yyFreeState(yyerrctx);
17040c8de5b0SBaptiste Daroussin             yyerrctx       = NULL;
17050c8de5b0SBaptiste Daroussin         }
17060c8de5b0SBaptiste Daroussin         yynewerrflag = 1;
17070c8de5b0SBaptiste Daroussin     }
17080c8de5b0SBaptiste Daroussin     if (yynewerrflag == 0) goto yyinrecovery;
17090c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
17100c8de5b0SBaptiste Daroussin 
17110c8de5b0SBaptiste Daroussin     YYERROR_CALL("syntax error");
17120c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
1713b53bb29fSJung-uk Kim     yyerror_loc_range[1] = yylloc; /* lookahead position is error start position */
17140c8de5b0SBaptiste Daroussin #endif
17150c8de5b0SBaptiste Daroussin 
17160c8de5b0SBaptiste Daroussin #if !YYBTYACC
1717c5b5d71aSJung-uk Kim     goto yyerrlab; /* redundant goto avoids 'unused label' warning */
17180c8de5b0SBaptiste Daroussin yyerrlab:
17190c8de5b0SBaptiste Daroussin #endif
17200c8de5b0SBaptiste Daroussin     ++yynerrs;
17210c8de5b0SBaptiste Daroussin 
17220c8de5b0SBaptiste Daroussin yyinrecovery:
17230c8de5b0SBaptiste Daroussin     if (yyerrflag < 3)
17240c8de5b0SBaptiste Daroussin     {
17250c8de5b0SBaptiste Daroussin         yyerrflag = 3;
17260c8de5b0SBaptiste Daroussin         for (;;)
17270c8de5b0SBaptiste Daroussin         {
17280c8de5b0SBaptiste Daroussin             if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 &&
17290c8de5b0SBaptiste Daroussin                     yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE)
17300c8de5b0SBaptiste Daroussin             {
17310c8de5b0SBaptiste Daroussin #if YYDEBUG
17320c8de5b0SBaptiste Daroussin                 if (yydebug)
17330c8de5b0SBaptiste Daroussin                     fprintf(stderr, "%s[%d]: state %d, error recovery shifting to state %d\n",
17340c8de5b0SBaptiste Daroussin                                     YYDEBUGSTR, yydepth, *yystack.s_mark, yytable[yyn]);
17350c8de5b0SBaptiste Daroussin #endif
17360c8de5b0SBaptiste Daroussin                 if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
17370c8de5b0SBaptiste Daroussin                 yystate = yytable[yyn];
17380c8de5b0SBaptiste Daroussin                 *++yystack.s_mark = yytable[yyn];
17390c8de5b0SBaptiste Daroussin                 *++yystack.l_mark = yylval;
17400c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
17410c8de5b0SBaptiste Daroussin                 /* lookahead position is error end position */
1742b53bb29fSJung-uk Kim                 yyerror_loc_range[2] = yylloc;
17430c8de5b0SBaptiste Daroussin                 YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
17440c8de5b0SBaptiste Daroussin                 *++yystack.p_mark = yyloc;
17450c8de5b0SBaptiste Daroussin #endif
17460c8de5b0SBaptiste Daroussin                 goto yyloop;
17470c8de5b0SBaptiste Daroussin             }
17480c8de5b0SBaptiste Daroussin             else
17490c8de5b0SBaptiste Daroussin             {
17500c8de5b0SBaptiste Daroussin #if YYDEBUG
17510c8de5b0SBaptiste Daroussin                 if (yydebug)
17520c8de5b0SBaptiste Daroussin                     fprintf(stderr, "%s[%d]: error recovery discarding state %d\n",
17530c8de5b0SBaptiste Daroussin                                     YYDEBUGSTR, yydepth, *yystack.s_mark);
17540c8de5b0SBaptiste Daroussin #endif
17550c8de5b0SBaptiste Daroussin                 if (yystack.s_mark <= yystack.s_base) goto yyabort;
17560c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
17570c8de5b0SBaptiste Daroussin                 /* the current TOS position is the error start position */
1758b53bb29fSJung-uk Kim                 yyerror_loc_range[1] = *yystack.p_mark;
17590c8de5b0SBaptiste Daroussin #endif
17600c8de5b0SBaptiste Daroussin #if defined(YYDESTRUCT_CALL)
17610c8de5b0SBaptiste Daroussin #if YYBTYACC
17620c8de5b0SBaptiste Daroussin                 if (!yytrial)
17630c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
17640c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
17650c8de5b0SBaptiste Daroussin                     YYDESTRUCT_CALL("error: discarding state",
17660c8de5b0SBaptiste Daroussin                                     yystos[*yystack.s_mark], yystack.l_mark, yystack.p_mark);
17670c8de5b0SBaptiste Daroussin #else
17680c8de5b0SBaptiste Daroussin                     YYDESTRUCT_CALL("error: discarding state",
17690c8de5b0SBaptiste Daroussin                                     yystos[*yystack.s_mark], yystack.l_mark);
17700c8de5b0SBaptiste Daroussin #endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
17710c8de5b0SBaptiste Daroussin #endif /* defined(YYDESTRUCT_CALL) */
17720c8de5b0SBaptiste Daroussin                 --yystack.s_mark;
17730c8de5b0SBaptiste Daroussin                 --yystack.l_mark;
17740c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
17750c8de5b0SBaptiste Daroussin                 --yystack.p_mark;
17760c8de5b0SBaptiste Daroussin #endif
17770c8de5b0SBaptiste Daroussin             }
17780c8de5b0SBaptiste Daroussin         }
17790c8de5b0SBaptiste Daroussin     }
17800c8de5b0SBaptiste Daroussin     else
17810c8de5b0SBaptiste Daroussin     {
17820c8de5b0SBaptiste Daroussin         if (yychar == YYEOF) goto yyabort;
17830c8de5b0SBaptiste Daroussin #if YYDEBUG
17840c8de5b0SBaptiste Daroussin         if (yydebug)
17850c8de5b0SBaptiste Daroussin         {
1786c5b5d71aSJung-uk Kim             if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
17870c8de5b0SBaptiste Daroussin             fprintf(stderr, "%s[%d]: state %d, error recovery discarding token %d (%s)\n",
17880c8de5b0SBaptiste Daroussin                             YYDEBUGSTR, yydepth, yystate, yychar, yys);
17890c8de5b0SBaptiste Daroussin         }
17900c8de5b0SBaptiste Daroussin #endif
17910c8de5b0SBaptiste Daroussin #if defined(YYDESTRUCT_CALL)
17920c8de5b0SBaptiste Daroussin #if YYBTYACC
17930c8de5b0SBaptiste Daroussin         if (!yytrial)
17940c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
17950c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
17960c8de5b0SBaptiste Daroussin             YYDESTRUCT_CALL("error: discarding token", yychar, &yylval, &yylloc);
17970c8de5b0SBaptiste Daroussin #else
17980c8de5b0SBaptiste Daroussin             YYDESTRUCT_CALL("error: discarding token", yychar, &yylval);
17990c8de5b0SBaptiste Daroussin #endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
18000c8de5b0SBaptiste Daroussin #endif /* defined(YYDESTRUCT_CALL) */
18010c8de5b0SBaptiste Daroussin         yychar = YYEMPTY;
18020c8de5b0SBaptiste Daroussin         goto yyloop;
18030c8de5b0SBaptiste Daroussin     }
18040c8de5b0SBaptiste Daroussin 
18050c8de5b0SBaptiste Daroussin yyreduce:
18060c8de5b0SBaptiste Daroussin     yym = yylen[yyn];
18070c8de5b0SBaptiste Daroussin #if YYDEBUG
18080c8de5b0SBaptiste Daroussin     if (yydebug)
18090c8de5b0SBaptiste Daroussin     {
18100c8de5b0SBaptiste Daroussin         fprintf(stderr, "%s[%d]: state %d, reducing by rule %d (%s)",
18110c8de5b0SBaptiste Daroussin                         YYDEBUGSTR, yydepth, yystate, yyn, yyrule[yyn]);
18120c8de5b0SBaptiste Daroussin #ifdef YYSTYPE_TOSTRING
18130c8de5b0SBaptiste Daroussin #if YYBTYACC
18140c8de5b0SBaptiste Daroussin         if (!yytrial)
18150c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
18160c8de5b0SBaptiste Daroussin             if (yym > 0)
18170c8de5b0SBaptiste Daroussin             {
18180c8de5b0SBaptiste Daroussin                 int i;
18190c8de5b0SBaptiste Daroussin                 fputc('<', stderr);
18200c8de5b0SBaptiste Daroussin                 for (i = yym; i > 0; i--)
18210c8de5b0SBaptiste Daroussin                 {
18220c8de5b0SBaptiste Daroussin                     if (i != yym) fputs(", ", stderr);
18230c8de5b0SBaptiste Daroussin                     fputs(YYSTYPE_TOSTRING(yystos[yystack.s_mark[1-i]],
18240c8de5b0SBaptiste Daroussin                                            yystack.l_mark[1-i]), stderr);
18250c8de5b0SBaptiste Daroussin                 }
18260c8de5b0SBaptiste Daroussin                 fputc('>', stderr);
18270c8de5b0SBaptiste Daroussin             }
18280c8de5b0SBaptiste Daroussin #endif
18290c8de5b0SBaptiste Daroussin         fputc('\n', stderr);
18300c8de5b0SBaptiste Daroussin     }
18310c8de5b0SBaptiste Daroussin #endif
18320c8de5b0SBaptiste Daroussin     if (yym > 0)
18330c8de5b0SBaptiste Daroussin         yyval = yystack.l_mark[1-yym];
18340c8de5b0SBaptiste Daroussin     else
18350c8de5b0SBaptiste Daroussin         memset(&yyval, 0, sizeof yyval);
18360c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
18370c8de5b0SBaptiste Daroussin 
18380c8de5b0SBaptiste Daroussin     /* Perform position reduction */
18390c8de5b0SBaptiste Daroussin     memset(&yyloc, 0, sizeof(yyloc));
18400c8de5b0SBaptiste Daroussin #if YYBTYACC
18410c8de5b0SBaptiste Daroussin     if (!yytrial)
18420c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
18430c8de5b0SBaptiste Daroussin     {
1844b53bb29fSJung-uk Kim         YYLLOC_DEFAULT(yyloc, &yystack.p_mark[-yym], yym);
18450c8de5b0SBaptiste Daroussin         /* just in case YYERROR is invoked within the action, save
18460c8de5b0SBaptiste Daroussin            the start of the rhs as the error start position */
1847b53bb29fSJung-uk Kim         yyerror_loc_range[1] = yystack.p_mark[1-yym];
18480c8de5b0SBaptiste Daroussin     }
18490c8de5b0SBaptiste Daroussin #endif
18500c8de5b0SBaptiste Daroussin 
18510c8de5b0SBaptiste Daroussin     switch (yyn)
18520c8de5b0SBaptiste Daroussin     {
18530c8de5b0SBaptiste Daroussin case 1:
18540c8de5b0SBaptiste Daroussin #line 93 "btyacc_demo.y"
18550c8de5b0SBaptiste Daroussin { yyval.scope = yystack.l_mark[0].scope; }
18568e022d3cSDag-Erling Smørgrav #line 1857 "btyacc_demo.tab.c"
18570c8de5b0SBaptiste Daroussin break;
18580c8de5b0SBaptiste Daroussin case 2:
18590c8de5b0SBaptiste Daroussin #line 94 "btyacc_demo.y"
18600c8de5b0SBaptiste Daroussin { yyval.scope = global_scope; }
18618e022d3cSDag-Erling Smørgrav #line 1862 "btyacc_demo.tab.c"
18620c8de5b0SBaptiste Daroussin break;
18630c8de5b0SBaptiste Daroussin case 3:
18640c8de5b0SBaptiste Daroussin #line 95 "btyacc_demo.y"
18650c8de5b0SBaptiste Daroussin { Decl *d = lookup(yystack.l_mark[-2].scope, yystack.l_mark[-1].id);
18660c8de5b0SBaptiste Daroussin 			  if (!d || !d->scope) YYERROR;
18670c8de5b0SBaptiste Daroussin 			  yyval.scope = d->scope; }
18688e022d3cSDag-Erling Smørgrav #line 1869 "btyacc_demo.tab.c"
18690c8de5b0SBaptiste Daroussin break;
18700c8de5b0SBaptiste Daroussin case 4:
18710c8de5b0SBaptiste Daroussin #line 101 "btyacc_demo.y"
18720c8de5b0SBaptiste Daroussin { Decl *d = lookup(yystack.l_mark[-1].scope, yystack.l_mark[0].id);
18730c8de5b0SBaptiste Daroussin 	if (d == NULL || d->istype() == 0) YYERROR;
18740c8de5b0SBaptiste Daroussin 	yyval.type = d->type; }
18758e022d3cSDag-Erling Smørgrav #line 1876 "btyacc_demo.tab.c"
18760c8de5b0SBaptiste Daroussin break;
18770c8de5b0SBaptiste Daroussin case 5:
18780c8de5b0SBaptiste Daroussin #line 106 "btyacc_demo.y"
18790c8de5b0SBaptiste Daroussin yyval.scope = global_scope = new_scope(0);
18808e022d3cSDag-Erling Smørgrav #line 1881 "btyacc_demo.tab.c"
18810c8de5b0SBaptiste Daroussin break;
18820c8de5b0SBaptiste Daroussin case 8:
18830c8de5b0SBaptiste Daroussin #line 107 "btyacc_demo.y"
18840c8de5b0SBaptiste Daroussin yyval.scope = yystack.l_mark[-1].scope;
18858e022d3cSDag-Erling Smørgrav #line 1886 "btyacc_demo.tab.c"
18860c8de5b0SBaptiste Daroussin break;
18870c8de5b0SBaptiste Daroussin case 10:
18880c8de5b0SBaptiste Daroussin #line 109 "btyacc_demo.y"
18890c8de5b0SBaptiste Daroussin {YYVALID;}
18908e022d3cSDag-Erling Smørgrav #line 1891 "btyacc_demo.tab.c"
18910c8de5b0SBaptiste Daroussin break;
1892c5b5d71aSJung-uk Kim case 11:
18930c8de5b0SBaptiste Daroussin #line 110 "btyacc_demo.y"
1894c5b5d71aSJung-uk Kim yyval.scope = start_fn_def(yystack.l_mark[-2].scope, yystack.l_mark[0].decl);
18958e022d3cSDag-Erling Smørgrav #line 1896 "btyacc_demo.tab.c"
18960c8de5b0SBaptiste Daroussin break;
1897c5b5d71aSJung-uk Kim case 12:
18980c8de5b0SBaptiste Daroussin   if (!yytrial)
18990c8de5b0SBaptiste Daroussin #line 111 "btyacc_demo.y"
19000c8de5b0SBaptiste Daroussin 	{ /* demonstrate use of @$ & @N, although this is just the
19010c8de5b0SBaptiste Daroussin 	   default computation and so is not necessary */
1902c5b5d71aSJung-uk Kim 	yyloc.first_line   = yystack.p_mark[-3].first_line;
1903c5b5d71aSJung-uk Kim 	yyloc.first_column = yystack.p_mark[-3].first_column;
19040c8de5b0SBaptiste Daroussin 	yyloc.last_line    = yystack.p_mark[0].last_line;
19050c8de5b0SBaptiste Daroussin 	yyloc.last_column  = yystack.p_mark[0].last_column;
19060c8de5b0SBaptiste Daroussin 	finish_fn_def(yystack.l_mark[-2].decl, yystack.l_mark[0].code); }
19078e022d3cSDag-Erling Smørgrav #line 1908 "btyacc_demo.tab.c"
19080c8de5b0SBaptiste Daroussin break;
1909c5b5d71aSJung-uk Kim case 13:
19100c8de5b0SBaptiste Daroussin #line 121 "btyacc_demo.y"
19110c8de5b0SBaptiste Daroussin { yyval.type = yystack.l_mark[0].type; }
19128e022d3cSDag-Erling Smørgrav #line 1913 "btyacc_demo.tab.c"
19130c8de5b0SBaptiste Daroussin break;
1914c5b5d71aSJung-uk Kim case 14:
19150c8de5b0SBaptiste Daroussin #line 122 "btyacc_demo.y"
19160c8de5b0SBaptiste Daroussin { yyval.type = type_combine(yystack.l_mark[-2].type, yystack.l_mark[0].type); }
19178e022d3cSDag-Erling Smørgrav #line 1918 "btyacc_demo.tab.c"
19180c8de5b0SBaptiste Daroussin break;
1919c5b5d71aSJung-uk Kim case 15:
19200c8de5b0SBaptiste Daroussin #line 125 "btyacc_demo.y"
19210c8de5b0SBaptiste Daroussin { yyval.type = 0; }
19228e022d3cSDag-Erling Smørgrav #line 1923 "btyacc_demo.tab.c"
19230c8de5b0SBaptiste Daroussin break;
1924c5b5d71aSJung-uk Kim case 16:
19250c8de5b0SBaptiste Daroussin #line 126 "btyacc_demo.y"
19260c8de5b0SBaptiste Daroussin { yyval.type = type_combine(yystack.l_mark[-1].type, yystack.l_mark[0].type); }
19278e022d3cSDag-Erling Smørgrav #line 1928 "btyacc_demo.tab.c"
19280c8de5b0SBaptiste Daroussin break;
1929c5b5d71aSJung-uk Kim case 17:
19300c8de5b0SBaptiste Daroussin #line 130 "btyacc_demo.y"
19310c8de5b0SBaptiste Daroussin { yyval.type = yystack.l_mark[0].type; }
19328e022d3cSDag-Erling Smørgrav #line 1933 "btyacc_demo.tab.c"
19330c8de5b0SBaptiste Daroussin break;
1934c5b5d71aSJung-uk Kim case 18:
19350c8de5b0SBaptiste Daroussin #line 131 "btyacc_demo.y"
19360c8de5b0SBaptiste Daroussin { yyval.type = yystack.l_mark[0].type; }
19378e022d3cSDag-Erling Smørgrav #line 1938 "btyacc_demo.tab.c"
19380c8de5b0SBaptiste Daroussin break;
1939c5b5d71aSJung-uk Kim case 19:
19400c8de5b0SBaptiste Daroussin #line 132 "btyacc_demo.y"
19410c8de5b0SBaptiste Daroussin { yyval.type = bare_extern(); }
19428e022d3cSDag-Erling Smørgrav #line 1943 "btyacc_demo.tab.c"
19430c8de5b0SBaptiste Daroussin break;
1944c5b5d71aSJung-uk Kim case 20:
19450c8de5b0SBaptiste Daroussin #line 133 "btyacc_demo.y"
19460c8de5b0SBaptiste Daroussin { yyval.type = bare_register(); }
19478e022d3cSDag-Erling Smørgrav #line 1948 "btyacc_demo.tab.c"
19480c8de5b0SBaptiste Daroussin break;
1949c5b5d71aSJung-uk Kim case 21:
19500c8de5b0SBaptiste Daroussin #line 134 "btyacc_demo.y"
19510c8de5b0SBaptiste Daroussin { yyval.type = bare_static(); }
19528e022d3cSDag-Erling Smørgrav #line 1953 "btyacc_demo.tab.c"
19530c8de5b0SBaptiste Daroussin break;
1954c5b5d71aSJung-uk Kim case 22:
19550c8de5b0SBaptiste Daroussin #line 138 "btyacc_demo.y"
19560c8de5b0SBaptiste Daroussin { yyval.type = bare_const(); }
19578e022d3cSDag-Erling Smørgrav #line 1958 "btyacc_demo.tab.c"
19580c8de5b0SBaptiste Daroussin break;
1959c5b5d71aSJung-uk Kim case 23:
19600c8de5b0SBaptiste Daroussin #line 139 "btyacc_demo.y"
19610c8de5b0SBaptiste Daroussin { yyval.type = bare_volatile(); }
19628e022d3cSDag-Erling Smørgrav #line 1963 "btyacc_demo.tab.c"
19630c8de5b0SBaptiste Daroussin break;
1964c5b5d71aSJung-uk Kim case 24:
19650c8de5b0SBaptiste Daroussin #line 143 "btyacc_demo.y"
19660c8de5b0SBaptiste Daroussin yyval.scope = yystack.l_mark[-3].scope;
19678e022d3cSDag-Erling Smørgrav #line 1968 "btyacc_demo.tab.c"
19680c8de5b0SBaptiste Daroussin break;
1969c5b5d71aSJung-uk Kim case 25:
19700c8de5b0SBaptiste Daroussin #line 143 "btyacc_demo.y"
19710c8de5b0SBaptiste Daroussin yyval.type =  yystack.l_mark[-3].type;
19728e022d3cSDag-Erling Smørgrav #line 1973 "btyacc_demo.tab.c"
19730c8de5b0SBaptiste Daroussin break;
1974c5b5d71aSJung-uk Kim case 28:
19750c8de5b0SBaptiste Daroussin #line 148 "btyacc_demo.y"
19760c8de5b0SBaptiste Daroussin { if (!yystack.l_mark[0].type) YYERROR; }  if (!yytrial)
19770c8de5b0SBaptiste Daroussin #line 149 "btyacc_demo.y"
19780c8de5b0SBaptiste Daroussin { yyval.decl = declare(yystack.l_mark[-1].scope, 0, yystack.l_mark[0].type); }
19798e022d3cSDag-Erling Smørgrav #line 1980 "btyacc_demo.tab.c"
19800c8de5b0SBaptiste Daroussin break;
1981c5b5d71aSJung-uk Kim case 29:
19820c8de5b0SBaptiste Daroussin   if (!yytrial)
19830c8de5b0SBaptiste Daroussin #line 150 "btyacc_demo.y"
19840c8de5b0SBaptiste Daroussin 	{ yyval.decl = declare(yystack.l_mark[-2].scope, yystack.l_mark[0].id, yystack.l_mark[-1].type); }
19858e022d3cSDag-Erling Smørgrav #line 1986 "btyacc_demo.tab.c"
19860c8de5b0SBaptiste Daroussin break;
1987c5b5d71aSJung-uk Kim case 30:
19880c8de5b0SBaptiste Daroussin #line 151 "btyacc_demo.y"
19890c8de5b0SBaptiste Daroussin yyval.scope = yystack.l_mark[-2].scope;
19908e022d3cSDag-Erling Smørgrav #line 1991 "btyacc_demo.tab.c"
19910c8de5b0SBaptiste Daroussin break;
1992c5b5d71aSJung-uk Kim case 31:
19930c8de5b0SBaptiste Daroussin #line 151 "btyacc_demo.y"
19940c8de5b0SBaptiste Daroussin yyval.type =  yystack.l_mark[-2].type;
19958e022d3cSDag-Erling Smørgrav #line 1996 "btyacc_demo.tab.c"
19960c8de5b0SBaptiste Daroussin break;
1997c5b5d71aSJung-uk Kim case 32:
19980c8de5b0SBaptiste Daroussin   if (!yytrial)
19990c8de5b0SBaptiste Daroussin #line 151 "btyacc_demo.y"
20000c8de5b0SBaptiste Daroussin 	{ yyval.decl = yystack.l_mark[-1].decl; }
20018e022d3cSDag-Erling Smørgrav #line 2002 "btyacc_demo.tab.c"
20020c8de5b0SBaptiste Daroussin break;
2003c5b5d71aSJung-uk Kim case 33:
20040c8de5b0SBaptiste Daroussin   if (!yytrial)
20050c8de5b0SBaptiste Daroussin #line 153 "btyacc_demo.y"
20060c8de5b0SBaptiste Daroussin 	{ yyval.decl = make_pointer(yystack.l_mark[0].decl, yystack.l_mark[-3].type); }
20078e022d3cSDag-Erling Smørgrav #line 2008 "btyacc_demo.tab.c"
20080c8de5b0SBaptiste Daroussin break;
2009c5b5d71aSJung-uk Kim case 34:
20100c8de5b0SBaptiste Daroussin   if (!yytrial)
20110c8de5b0SBaptiste Daroussin #line 155 "btyacc_demo.y"
20120c8de5b0SBaptiste Daroussin 	{ yyval.decl = make_array(yystack.l_mark[-4].decl->type, yystack.l_mark[-1].expr); }
20138e022d3cSDag-Erling Smørgrav #line 2014 "btyacc_demo.tab.c"
20140c8de5b0SBaptiste Daroussin break;
2015c5b5d71aSJung-uk Kim case 35:
20160c8de5b0SBaptiste Daroussin   if (!yytrial)
20170c8de5b0SBaptiste Daroussin #line 157 "btyacc_demo.y"
20180c8de5b0SBaptiste Daroussin 	{ yyval.decl = build_function(yystack.l_mark[-5].decl, yystack.l_mark[-2].dlist, yystack.l_mark[0].type); }
20198e022d3cSDag-Erling Smørgrav #line 2020 "btyacc_demo.tab.c"
20200c8de5b0SBaptiste Daroussin break;
2021c5b5d71aSJung-uk Kim case 36:
20220c8de5b0SBaptiste Daroussin   if (!yytrial)
20230c8de5b0SBaptiste Daroussin #line 160 "btyacc_demo.y"
20240c8de5b0SBaptiste Daroussin 	{ yyval.dlist = 0; }
20258e022d3cSDag-Erling Smørgrav #line 2026 "btyacc_demo.tab.c"
20260c8de5b0SBaptiste Daroussin break;
2027c5b5d71aSJung-uk Kim case 37:
20280c8de5b0SBaptiste Daroussin   if (!yytrial)
20290c8de5b0SBaptiste Daroussin #line 161 "btyacc_demo.y"
20300c8de5b0SBaptiste Daroussin 	{ yyval.dlist = yystack.l_mark[0].dlist; }
20318e022d3cSDag-Erling Smørgrav #line 2032 "btyacc_demo.tab.c"
20320c8de5b0SBaptiste Daroussin break;
2033c5b5d71aSJung-uk Kim case 38:
20340c8de5b0SBaptiste Daroussin   if (!yytrial)
20350c8de5b0SBaptiste Daroussin #line 164 "btyacc_demo.y"
20360c8de5b0SBaptiste Daroussin 	{ yyval.dlist = append_dlist(yystack.l_mark[-3].dlist, yystack.l_mark[0].decl); }
20378e022d3cSDag-Erling Smørgrav #line 2038 "btyacc_demo.tab.c"
20380c8de5b0SBaptiste Daroussin break;
2039c5b5d71aSJung-uk Kim case 39:
20400c8de5b0SBaptiste Daroussin   if (!yytrial)
20410c8de5b0SBaptiste Daroussin #line 165 "btyacc_demo.y"
20420c8de5b0SBaptiste Daroussin 	{ yyval.dlist = build_dlist(yystack.l_mark[0].decl); }
20438e022d3cSDag-Erling Smørgrav #line 2044 "btyacc_demo.tab.c"
20440c8de5b0SBaptiste Daroussin break;
2045c5b5d71aSJung-uk Kim case 40:
20460c8de5b0SBaptiste Daroussin   if (!yytrial)
20470c8de5b0SBaptiste Daroussin #line 168 "btyacc_demo.y"
20480c8de5b0SBaptiste Daroussin 	{ yyval.decl = yystack.l_mark[0].decl; }
20498e022d3cSDag-Erling Smørgrav #line 2050 "btyacc_demo.tab.c"
20500c8de5b0SBaptiste Daroussin break;
2051c5b5d71aSJung-uk Kim case 41:
20520c8de5b0SBaptiste Daroussin   if (!yytrial)
20530c8de5b0SBaptiste Daroussin #line 172 "btyacc_demo.y"
20540c8de5b0SBaptiste Daroussin 	{ yyval.expr = build_expr(yystack.l_mark[-3].expr, ADD, yystack.l_mark[0].expr); }
20558e022d3cSDag-Erling Smørgrav #line 2056 "btyacc_demo.tab.c"
20560c8de5b0SBaptiste Daroussin break;
2057c5b5d71aSJung-uk Kim case 42:
20580c8de5b0SBaptiste Daroussin   if (!yytrial)
20590c8de5b0SBaptiste Daroussin #line 173 "btyacc_demo.y"
20600c8de5b0SBaptiste Daroussin 	{ yyval.expr = build_expr(yystack.l_mark[-3].expr, SUB, yystack.l_mark[0].expr); }
20618e022d3cSDag-Erling Smørgrav #line 2062 "btyacc_demo.tab.c"
20620c8de5b0SBaptiste Daroussin break;
2063c5b5d71aSJung-uk Kim case 43:
20640c8de5b0SBaptiste Daroussin   if (!yytrial)
20650c8de5b0SBaptiste Daroussin #line 174 "btyacc_demo.y"
20660c8de5b0SBaptiste Daroussin 	{ yyval.expr = build_expr(yystack.l_mark[-3].expr, MUL, yystack.l_mark[0].expr); }
20678e022d3cSDag-Erling Smørgrav #line 2068 "btyacc_demo.tab.c"
20680c8de5b0SBaptiste Daroussin break;
2069c5b5d71aSJung-uk Kim case 44:
20700c8de5b0SBaptiste Daroussin   if (!yytrial)
20710c8de5b0SBaptiste Daroussin #line 175 "btyacc_demo.y"
20720c8de5b0SBaptiste Daroussin 	{ yyval.expr = build_expr(yystack.l_mark[-3].expr, MOD, yystack.l_mark[0].expr); }
20738e022d3cSDag-Erling Smørgrav #line 2074 "btyacc_demo.tab.c"
20740c8de5b0SBaptiste Daroussin break;
2075c5b5d71aSJung-uk Kim case 45:
20760c8de5b0SBaptiste Daroussin   if (!yytrial)
20770c8de5b0SBaptiste Daroussin #line 176 "btyacc_demo.y"
20780c8de5b0SBaptiste Daroussin 	{ yyval.expr = build_expr(yystack.l_mark[-3].expr, DIV, yystack.l_mark[0].expr); }
20798e022d3cSDag-Erling Smørgrav #line 2080 "btyacc_demo.tab.c"
20800c8de5b0SBaptiste Daroussin break;
2081c5b5d71aSJung-uk Kim case 46:
20820c8de5b0SBaptiste Daroussin   if (!yytrial)
20830c8de5b0SBaptiste Daroussin #line 177 "btyacc_demo.y"
20840c8de5b0SBaptiste Daroussin 	{ yyval.expr = build_expr(0, DEREF, yystack.l_mark[0].expr); }
20858e022d3cSDag-Erling Smørgrav #line 2086 "btyacc_demo.tab.c"
20860c8de5b0SBaptiste Daroussin break;
2087c5b5d71aSJung-uk Kim case 47:
20880c8de5b0SBaptiste Daroussin   if (!yytrial)
20890c8de5b0SBaptiste Daroussin #line 178 "btyacc_demo.y"
20900c8de5b0SBaptiste Daroussin 	{ yyval.expr = var_expr(yystack.l_mark[-1].scope, yystack.l_mark[0].id); }
20918e022d3cSDag-Erling Smørgrav #line 2092 "btyacc_demo.tab.c"
20920c8de5b0SBaptiste Daroussin break;
2093c5b5d71aSJung-uk Kim case 48:
20940c8de5b0SBaptiste Daroussin   if (!yytrial)
20950c8de5b0SBaptiste Daroussin #line 179 "btyacc_demo.y"
20960c8de5b0SBaptiste Daroussin 	{ yyval.expr = yystack.l_mark[0].expr; }
20978e022d3cSDag-Erling Smørgrav #line 2098 "btyacc_demo.tab.c"
20980c8de5b0SBaptiste Daroussin break;
2099c5b5d71aSJung-uk Kim case 49:
21000c8de5b0SBaptiste Daroussin   if (!yytrial)
21010c8de5b0SBaptiste Daroussin #line 183 "btyacc_demo.y"
21020c8de5b0SBaptiste Daroussin 	{ yyval.code = 0; }
21038e022d3cSDag-Erling Smørgrav #line 2104 "btyacc_demo.tab.c"
21040c8de5b0SBaptiste Daroussin break;
2105c5b5d71aSJung-uk Kim case 50:
21060c8de5b0SBaptiste Daroussin #line 184 "btyacc_demo.y"
21070c8de5b0SBaptiste Daroussin {YYVALID;}  if (!yytrial)
21080c8de5b0SBaptiste Daroussin #line 184 "btyacc_demo.y"
21090c8de5b0SBaptiste Daroussin { yyval.code = build_expr_code(yystack.l_mark[-1].expr); }
21108e022d3cSDag-Erling Smørgrav #line 2111 "btyacc_demo.tab.c"
21110c8de5b0SBaptiste Daroussin break;
2112c5b5d71aSJung-uk Kim case 51:
21130c8de5b0SBaptiste Daroussin #line 185 "btyacc_demo.y"
21140c8de5b0SBaptiste Daroussin yyval.scope = yystack.l_mark[-6].scope;
21158e022d3cSDag-Erling Smørgrav #line 2116 "btyacc_demo.tab.c"
21160c8de5b0SBaptiste Daroussin break;
2117c5b5d71aSJung-uk Kim case 52:
21180c8de5b0SBaptiste Daroussin #line 185 "btyacc_demo.y"
21190c8de5b0SBaptiste Daroussin yyval.scope = yystack.l_mark[-9].scope;
21208e022d3cSDag-Erling Smørgrav #line 2121 "btyacc_demo.tab.c"
21210c8de5b0SBaptiste Daroussin break;
2122c5b5d71aSJung-uk Kim case 53:
21230c8de5b0SBaptiste Daroussin #line 185 "btyacc_demo.y"
21240c8de5b0SBaptiste Daroussin {YYVALID;}  if (!yytrial)
21250c8de5b0SBaptiste Daroussin #line 186 "btyacc_demo.y"
21260c8de5b0SBaptiste Daroussin { yyval.code = build_if(yystack.l_mark[-7].expr, yystack.l_mark[-3].code, yystack.l_mark[0].code); }
21278e022d3cSDag-Erling Smørgrav #line 2128 "btyacc_demo.tab.c"
21280c8de5b0SBaptiste Daroussin break;
2129c5b5d71aSJung-uk Kim case 54:
21300c8de5b0SBaptiste Daroussin #line 187 "btyacc_demo.y"
21310c8de5b0SBaptiste Daroussin {YYVALID;}  if (!yytrial)
21320c8de5b0SBaptiste Daroussin #line 188 "btyacc_demo.y"
21330c8de5b0SBaptiste Daroussin { yyval.code = build_if(yystack.l_mark[-4].expr, yystack.l_mark[0].code, 0); }
21348e022d3cSDag-Erling Smørgrav #line 2135 "btyacc_demo.tab.c"
21350c8de5b0SBaptiste Daroussin break;
2136c5b5d71aSJung-uk Kim case 55:
21370c8de5b0SBaptiste Daroussin #line 189 "btyacc_demo.y"
21380c8de5b0SBaptiste Daroussin yyval.scope = new_scope(yystack.l_mark[0].scope);
21398e022d3cSDag-Erling Smørgrav #line 2140 "btyacc_demo.tab.c"
21400c8de5b0SBaptiste Daroussin break;
2141c5b5d71aSJung-uk Kim case 56:
21420c8de5b0SBaptiste Daroussin #line 189 "btyacc_demo.y"
21430c8de5b0SBaptiste Daroussin {YYVALID;}  if (!yytrial)
21440c8de5b0SBaptiste Daroussin #line 189 "btyacc_demo.y"
21450c8de5b0SBaptiste Daroussin { yyval.code = yystack.l_mark[0].code; }
21468e022d3cSDag-Erling Smørgrav #line 2147 "btyacc_demo.tab.c"
21470c8de5b0SBaptiste Daroussin break;
2148c5b5d71aSJung-uk Kim case 57:
21490c8de5b0SBaptiste Daroussin   if (!yytrial)
21500c8de5b0SBaptiste Daroussin #line 192 "btyacc_demo.y"
21510c8de5b0SBaptiste Daroussin 	{ yyval.code = 0; }
21528e022d3cSDag-Erling Smørgrav #line 2153 "btyacc_demo.tab.c"
21530c8de5b0SBaptiste Daroussin break;
2154c5b5d71aSJung-uk Kim case 58:
21550c8de5b0SBaptiste Daroussin   if (!yytrial)
21560c8de5b0SBaptiste Daroussin #line 193 "btyacc_demo.y"
21570c8de5b0SBaptiste Daroussin 	{ yyval.code = code_append(yystack.l_mark[-2].code, yystack.l_mark[0].code); }
21588e022d3cSDag-Erling Smørgrav #line 2159 "btyacc_demo.tab.c"
21590c8de5b0SBaptiste Daroussin break;
2160c5b5d71aSJung-uk Kim case 59:
21610c8de5b0SBaptiste Daroussin   if (!yytrial)
21620c8de5b0SBaptiste Daroussin #line 197 "btyacc_demo.y"
21630c8de5b0SBaptiste Daroussin 	{ yyval.code = yystack.l_mark[-1].code; }
21648e022d3cSDag-Erling Smørgrav #line 2165 "btyacc_demo.tab.c"
21650c8de5b0SBaptiste Daroussin break;
21668e022d3cSDag-Erling Smørgrav #line 2167 "btyacc_demo.tab.c"
21670c8de5b0SBaptiste Daroussin     default:
21680c8de5b0SBaptiste Daroussin         break;
21690c8de5b0SBaptiste Daroussin     }
21700c8de5b0SBaptiste Daroussin     yystack.s_mark -= yym;
21710c8de5b0SBaptiste Daroussin     yystate = *yystack.s_mark;
21720c8de5b0SBaptiste Daroussin     yystack.l_mark -= yym;
21730c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
21740c8de5b0SBaptiste Daroussin     yystack.p_mark -= yym;
21750c8de5b0SBaptiste Daroussin #endif
21760c8de5b0SBaptiste Daroussin     yym = yylhs[yyn];
21770c8de5b0SBaptiste Daroussin     if (yystate == 0 && yym == 0)
21780c8de5b0SBaptiste Daroussin     {
21790c8de5b0SBaptiste Daroussin #if YYDEBUG
21800c8de5b0SBaptiste Daroussin         if (yydebug)
21810c8de5b0SBaptiste Daroussin         {
21820c8de5b0SBaptiste Daroussin             fprintf(stderr, "%s[%d]: after reduction, ", YYDEBUGSTR, yydepth);
21830c8de5b0SBaptiste Daroussin #ifdef YYSTYPE_TOSTRING
21840c8de5b0SBaptiste Daroussin #if YYBTYACC
21850c8de5b0SBaptiste Daroussin             if (!yytrial)
21860c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
21870c8de5b0SBaptiste Daroussin                 fprintf(stderr, "result is <%s>, ", YYSTYPE_TOSTRING(yystos[YYFINAL], yyval));
21880c8de5b0SBaptiste Daroussin #endif
21890c8de5b0SBaptiste Daroussin             fprintf(stderr, "shifting from state 0 to final state %d\n", YYFINAL);
21900c8de5b0SBaptiste Daroussin         }
21910c8de5b0SBaptiste Daroussin #endif
21920c8de5b0SBaptiste Daroussin         yystate = YYFINAL;
21930c8de5b0SBaptiste Daroussin         *++yystack.s_mark = YYFINAL;
21940c8de5b0SBaptiste Daroussin         *++yystack.l_mark = yyval;
21950c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
21960c8de5b0SBaptiste Daroussin         *++yystack.p_mark = yyloc;
21970c8de5b0SBaptiste Daroussin #endif
21980c8de5b0SBaptiste Daroussin         if (yychar < 0)
21990c8de5b0SBaptiste Daroussin         {
22000c8de5b0SBaptiste Daroussin #if YYBTYACC
22010c8de5b0SBaptiste Daroussin             do {
22020c8de5b0SBaptiste Daroussin             if (yylvp < yylve)
22030c8de5b0SBaptiste Daroussin             {
22040c8de5b0SBaptiste Daroussin                 /* we're currently re-reading tokens */
22050c8de5b0SBaptiste Daroussin                 yylval = *yylvp++;
22060c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
22070c8de5b0SBaptiste Daroussin                 yylloc = *yylpp++;
22080c8de5b0SBaptiste Daroussin #endif
22090c8de5b0SBaptiste Daroussin                 yychar = *yylexp++;
22100c8de5b0SBaptiste Daroussin                 break;
22110c8de5b0SBaptiste Daroussin             }
22120c8de5b0SBaptiste Daroussin             if (yyps->save)
22130c8de5b0SBaptiste Daroussin             {
22140c8de5b0SBaptiste Daroussin                 /* in trial mode; save scanner results for future parse attempts */
22150c8de5b0SBaptiste Daroussin                 if (yylvp == yylvlim)
22160c8de5b0SBaptiste Daroussin                 {   /* Enlarge lexical value queue */
221711fce282SBaptiste Daroussin                     size_t p = (size_t) (yylvp - yylvals);
221811fce282SBaptiste Daroussin                     size_t s = (size_t) (yylvlim - yylvals);
22190c8de5b0SBaptiste Daroussin 
22200c8de5b0SBaptiste Daroussin                     s += YYLVQUEUEGROWTH;
2221b53bb29fSJung-uk Kim                     if ((yylexemes = (YYINT *)realloc(yylexemes, s * sizeof(YYINT))) == NULL)
22220c8de5b0SBaptiste Daroussin                         goto yyenomem;
2223b53bb29fSJung-uk Kim                     if ((yylvals   = (YYSTYPE *)realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
22240c8de5b0SBaptiste Daroussin                         goto yyenomem;
22250c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
2226b53bb29fSJung-uk Kim                     if ((yylpsns   = (YYLTYPE *)realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
22270c8de5b0SBaptiste Daroussin                         goto yyenomem;
22280c8de5b0SBaptiste Daroussin #endif
22290c8de5b0SBaptiste Daroussin                     yylvp   = yylve = yylvals + p;
22300c8de5b0SBaptiste Daroussin                     yylvlim = yylvals + s;
22310c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
22320c8de5b0SBaptiste Daroussin                     yylpp   = yylpe = yylpsns + p;
22330c8de5b0SBaptiste Daroussin                     yylplim = yylpsns + s;
22340c8de5b0SBaptiste Daroussin #endif
22350c8de5b0SBaptiste Daroussin                     yylexp  = yylexemes + p;
22360c8de5b0SBaptiste Daroussin                 }
22372aca18c7SJung-uk Kim                 *yylexp = (YYINT) YYLEX;
22380c8de5b0SBaptiste Daroussin                 *yylvp++ = yylval;
22390c8de5b0SBaptiste Daroussin                 yylve++;
22400c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
22410c8de5b0SBaptiste Daroussin                 *yylpp++ = yylloc;
22420c8de5b0SBaptiste Daroussin                 yylpe++;
22430c8de5b0SBaptiste Daroussin #endif
22440c8de5b0SBaptiste Daroussin                 yychar = *yylexp++;
22450c8de5b0SBaptiste Daroussin                 break;
22460c8de5b0SBaptiste Daroussin             }
22470c8de5b0SBaptiste Daroussin             /* normal operation, no conflict encountered */
22480c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
22490c8de5b0SBaptiste Daroussin             yychar = YYLEX;
22500c8de5b0SBaptiste Daroussin #if YYBTYACC
22510c8de5b0SBaptiste Daroussin             } while (0);
22520c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
22530c8de5b0SBaptiste Daroussin             if (yychar < 0) yychar = YYEOF;
22540c8de5b0SBaptiste Daroussin #if YYDEBUG
22550c8de5b0SBaptiste Daroussin             if (yydebug)
22560c8de5b0SBaptiste Daroussin             {
2257c5b5d71aSJung-uk Kim                 if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
2258c5b5d71aSJung-uk Kim                 fprintf(stderr, "%s[%d]: state %d, reading token %d (%s)\n",
22590c8de5b0SBaptiste Daroussin                                 YYDEBUGSTR, yydepth, YYFINAL, yychar, yys);
22600c8de5b0SBaptiste Daroussin             }
22610c8de5b0SBaptiste Daroussin #endif
22620c8de5b0SBaptiste Daroussin         }
22630c8de5b0SBaptiste Daroussin         if (yychar == YYEOF) goto yyaccept;
22640c8de5b0SBaptiste Daroussin         goto yyloop;
22650c8de5b0SBaptiste Daroussin     }
22660c8de5b0SBaptiste Daroussin     if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 &&
22670c8de5b0SBaptiste Daroussin             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate)
22680c8de5b0SBaptiste Daroussin         yystate = yytable[yyn];
22690c8de5b0SBaptiste Daroussin     else
22700c8de5b0SBaptiste Daroussin         yystate = yydgoto[yym];
22710c8de5b0SBaptiste Daroussin #if YYDEBUG
22720c8de5b0SBaptiste Daroussin     if (yydebug)
22730c8de5b0SBaptiste Daroussin     {
22740c8de5b0SBaptiste Daroussin         fprintf(stderr, "%s[%d]: after reduction, ", YYDEBUGSTR, yydepth);
22750c8de5b0SBaptiste Daroussin #ifdef YYSTYPE_TOSTRING
22760c8de5b0SBaptiste Daroussin #if YYBTYACC
22770c8de5b0SBaptiste Daroussin         if (!yytrial)
22780c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
22790c8de5b0SBaptiste Daroussin             fprintf(stderr, "result is <%s>, ", YYSTYPE_TOSTRING(yystos[yystate], yyval));
22800c8de5b0SBaptiste Daroussin #endif
22810c8de5b0SBaptiste Daroussin         fprintf(stderr, "shifting from state %d to state %d\n", *yystack.s_mark, yystate);
22820c8de5b0SBaptiste Daroussin     }
22830c8de5b0SBaptiste Daroussin #endif
22840c8de5b0SBaptiste Daroussin     if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
2285c5b5d71aSJung-uk Kim     *++yystack.s_mark = (YYINT) yystate;
22860c8de5b0SBaptiste Daroussin     *++yystack.l_mark = yyval;
22870c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
22880c8de5b0SBaptiste Daroussin     *++yystack.p_mark = yyloc;
22890c8de5b0SBaptiste Daroussin #endif
22900c8de5b0SBaptiste Daroussin     goto yyloop;
22910c8de5b0SBaptiste Daroussin #if YYBTYACC
22920c8de5b0SBaptiste Daroussin 
22930c8de5b0SBaptiste Daroussin     /* Reduction declares that this path is valid. Set yypath and do a full parse */
22940c8de5b0SBaptiste Daroussin yyvalid:
22950c8de5b0SBaptiste Daroussin     if (yypath) YYABORT;
22960c8de5b0SBaptiste Daroussin     while (yyps->save)
22970c8de5b0SBaptiste Daroussin     {
22980c8de5b0SBaptiste Daroussin         YYParseState *save = yyps->save;
22990c8de5b0SBaptiste Daroussin         yyps->save = save->save;
23000c8de5b0SBaptiste Daroussin         save->save = yypath;
23010c8de5b0SBaptiste Daroussin         yypath = save;
23020c8de5b0SBaptiste Daroussin     }
23030c8de5b0SBaptiste Daroussin #if YYDEBUG
23040c8de5b0SBaptiste Daroussin     if (yydebug)
23050c8de5b0SBaptiste Daroussin         fprintf(stderr, "%s[%d]: state %d, CONFLICT trial successful, backtracking to state %d, %d tokens\n",
23060c8de5b0SBaptiste Daroussin                         YYDEBUGSTR, yydepth, yystate, yypath->state, (int)(yylvp - yylvals - yypath->lexeme));
23070c8de5b0SBaptiste Daroussin #endif
23080c8de5b0SBaptiste Daroussin     if (yyerrctx)
23090c8de5b0SBaptiste Daroussin     {
23100c8de5b0SBaptiste Daroussin         yyFreeState(yyerrctx);
23110c8de5b0SBaptiste Daroussin         yyerrctx = NULL;
23120c8de5b0SBaptiste Daroussin     }
23130c8de5b0SBaptiste Daroussin     yylvp          = yylvals + yypath->lexeme;
23140c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
23150c8de5b0SBaptiste Daroussin     yylpp          = yylpsns + yypath->lexeme;
23160c8de5b0SBaptiste Daroussin #endif
23170c8de5b0SBaptiste Daroussin     yylexp         = yylexemes + yypath->lexeme;
23180c8de5b0SBaptiste Daroussin     yychar         = YYEMPTY;
23190c8de5b0SBaptiste Daroussin     yystack.s_mark = yystack.s_base + (yypath->yystack.s_mark - yypath->yystack.s_base);
2320c5b5d71aSJung-uk Kim     memcpy (yystack.s_base, yypath->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(YYINT));
23210c8de5b0SBaptiste Daroussin     yystack.l_mark = yystack.l_base + (yypath->yystack.l_mark - yypath->yystack.l_base);
232211fce282SBaptiste Daroussin     memcpy (yystack.l_base, yypath->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
23230c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
23240c8de5b0SBaptiste Daroussin     yystack.p_mark = yystack.p_base + (yypath->yystack.p_mark - yypath->yystack.p_base);
232511fce282SBaptiste Daroussin     memcpy (yystack.p_base, yypath->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
23260c8de5b0SBaptiste Daroussin #endif
23270c8de5b0SBaptiste Daroussin     yystate        = yypath->state;
23280c8de5b0SBaptiste Daroussin     goto yyloop;
23290c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
23300c8de5b0SBaptiste Daroussin 
23310c8de5b0SBaptiste Daroussin yyoverflow:
23320c8de5b0SBaptiste Daroussin     YYERROR_CALL("yacc stack overflow");
23330c8de5b0SBaptiste Daroussin #if YYBTYACC
23340c8de5b0SBaptiste Daroussin     goto yyabort_nomem;
23350c8de5b0SBaptiste Daroussin yyenomem:
23360c8de5b0SBaptiste Daroussin     YYERROR_CALL("memory exhausted");
23370c8de5b0SBaptiste Daroussin yyabort_nomem:
23380c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
23390c8de5b0SBaptiste Daroussin     yyresult = 2;
23400c8de5b0SBaptiste Daroussin     goto yyreturn;
23410c8de5b0SBaptiste Daroussin 
23420c8de5b0SBaptiste Daroussin yyabort:
23430c8de5b0SBaptiste Daroussin     yyresult = 1;
23440c8de5b0SBaptiste Daroussin     goto yyreturn;
23450c8de5b0SBaptiste Daroussin 
23460c8de5b0SBaptiste Daroussin yyaccept:
23470c8de5b0SBaptiste Daroussin #if YYBTYACC
23480c8de5b0SBaptiste Daroussin     if (yyps->save) goto yyvalid;
23490c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
23500c8de5b0SBaptiste Daroussin     yyresult = 0;
23510c8de5b0SBaptiste Daroussin 
23520c8de5b0SBaptiste Daroussin yyreturn:
23530c8de5b0SBaptiste Daroussin #if defined(YYDESTRUCT_CALL)
23540c8de5b0SBaptiste Daroussin     if (yychar != YYEOF && yychar != YYEMPTY)
23550c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
23560c8de5b0SBaptiste Daroussin         YYDESTRUCT_CALL("cleanup: discarding token", yychar, &yylval, &yylloc);
23570c8de5b0SBaptiste Daroussin #else
23580c8de5b0SBaptiste Daroussin         YYDESTRUCT_CALL("cleanup: discarding token", yychar, &yylval);
23590c8de5b0SBaptiste Daroussin #endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
23600c8de5b0SBaptiste Daroussin 
23610c8de5b0SBaptiste Daroussin     {
23620c8de5b0SBaptiste Daroussin         YYSTYPE *pv;
23630c8de5b0SBaptiste Daroussin #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
23640c8de5b0SBaptiste Daroussin         YYLTYPE *pp;
23650c8de5b0SBaptiste Daroussin 
23660c8de5b0SBaptiste Daroussin         for (pv = yystack.l_base, pp = yystack.p_base; pv <= yystack.l_mark; ++pv, ++pp)
23670c8de5b0SBaptiste Daroussin              YYDESTRUCT_CALL("cleanup: discarding state",
23680c8de5b0SBaptiste Daroussin                              yystos[*(yystack.s_base + (pv - yystack.l_base))], pv, pp);
23690c8de5b0SBaptiste Daroussin #else
23700c8de5b0SBaptiste Daroussin         for (pv = yystack.l_base; pv <= yystack.l_mark; ++pv)
23710c8de5b0SBaptiste Daroussin              YYDESTRUCT_CALL("cleanup: discarding state",
23720c8de5b0SBaptiste Daroussin                              yystos[*(yystack.s_base + (pv - yystack.l_base))], pv);
23730c8de5b0SBaptiste Daroussin #endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
23740c8de5b0SBaptiste Daroussin     }
23750c8de5b0SBaptiste Daroussin #endif /* defined(YYDESTRUCT_CALL) */
23760c8de5b0SBaptiste Daroussin 
23770c8de5b0SBaptiste Daroussin #if YYBTYACC
23780c8de5b0SBaptiste Daroussin     if (yyerrctx)
23790c8de5b0SBaptiste Daroussin     {
23800c8de5b0SBaptiste Daroussin         yyFreeState(yyerrctx);
23810c8de5b0SBaptiste Daroussin         yyerrctx = NULL;
23820c8de5b0SBaptiste Daroussin     }
23830c8de5b0SBaptiste Daroussin     while (yyps)
23840c8de5b0SBaptiste Daroussin     {
23850c8de5b0SBaptiste Daroussin         YYParseState *save = yyps;
23860c8de5b0SBaptiste Daroussin         yyps = save->save;
23870c8de5b0SBaptiste Daroussin         save->save = NULL;
23880c8de5b0SBaptiste Daroussin         yyFreeState(save);
23890c8de5b0SBaptiste Daroussin     }
23900c8de5b0SBaptiste Daroussin     while (yypath)
23910c8de5b0SBaptiste Daroussin     {
23920c8de5b0SBaptiste Daroussin         YYParseState *save = yypath;
23930c8de5b0SBaptiste Daroussin         yypath = save->save;
23940c8de5b0SBaptiste Daroussin         save->save = NULL;
23950c8de5b0SBaptiste Daroussin         yyFreeState(save);
23960c8de5b0SBaptiste Daroussin     }
23970c8de5b0SBaptiste Daroussin #endif /* YYBTYACC */
23980c8de5b0SBaptiste Daroussin     yyfreestack(&yystack);
23990c8de5b0SBaptiste Daroussin     return (yyresult);
24000c8de5b0SBaptiste Daroussin }
2401