Home | History | Annotate | Line # | Download | only in btyacc
btyacc_destroy1.tab.c revision 1.1.1.2
      1  1.1  christos /* original parser id follows */
      2  1.1  christos /* yysccsid[] = "@(#)yaccpar	1.9 (Berkeley) 02/21/93" */
      3  1.1  christos /* (use YYMAJOR/YYMINOR for ifdefs dependent of parser version) */
      4  1.1  christos 
      5  1.1  christos #define YYBYACC 1
      6  1.1  christos #define YYMAJOR 1
      7  1.1  christos #define YYMINOR 9
      8  1.1  christos #define YYCHECK "yyyymmdd"
      9  1.1  christos 
     10  1.1  christos #define YYEMPTY        (-1)
     11  1.1  christos #define yyclearin      (yychar = YYEMPTY)
     12  1.1  christos #define yyerrok        (yyerrflag = 0)
     13  1.1  christos #define YYRECOVERING() (yyerrflag != 0)
     14  1.1  christos #define YYENOMEM       (-2)
     15  1.1  christos #define YYEOF          0
     16  1.1  christos #undef YYBTYACC
     17  1.1  christos #define YYBTYACC 1
     18  1.1  christos #define YYDEBUGSTR (yytrial ? YYPREFIX "debug(trial)" : YYPREFIX "debug")
     19  1.1  christos 
     20  1.1  christos #ifndef yyparse
     21  1.1  christos #define yyparse    destroy1_parse
     22  1.1  christos #endif /* yyparse */
     23  1.1  christos 
     24  1.1  christos #ifndef yylex
     25  1.1  christos #define yylex      destroy1_lex
     26  1.1  christos #endif /* yylex */
     27  1.1  christos 
     28  1.1  christos #ifndef yyerror
     29  1.1  christos #define yyerror    destroy1_error
     30  1.1  christos #endif /* yyerror */
     31  1.1  christos 
     32  1.1  christos #ifndef yychar
     33  1.1  christos #define yychar     destroy1_char
     34  1.1  christos #endif /* yychar */
     35  1.1  christos 
     36  1.1  christos #ifndef yyval
     37  1.1  christos #define yyval      destroy1_val
     38  1.1  christos #endif /* yyval */
     39  1.1  christos 
     40  1.1  christos #ifndef yylval
     41  1.1  christos #define yylval     destroy1_lval
     42  1.1  christos #endif /* yylval */
     43  1.1  christos 
     44  1.1  christos #ifndef yydebug
     45  1.1  christos #define yydebug    destroy1_debug
     46  1.1  christos #endif /* yydebug */
     47  1.1  christos 
     48  1.1  christos #ifndef yynerrs
     49  1.1  christos #define yynerrs    destroy1_nerrs
     50  1.1  christos #endif /* yynerrs */
     51  1.1  christos 
     52  1.1  christos #ifndef yyerrflag
     53  1.1  christos #define yyerrflag  destroy1_errflag
     54  1.1  christos #endif /* yyerrflag */
     55  1.1  christos 
     56  1.1  christos #ifndef yylhs
     57  1.1  christos #define yylhs      destroy1_lhs
     58  1.1  christos #endif /* yylhs */
     59  1.1  christos 
     60  1.1  christos #ifndef yylen
     61  1.1  christos #define yylen      destroy1_len
     62  1.1  christos #endif /* yylen */
     63  1.1  christos 
     64  1.1  christos #ifndef yydefred
     65  1.1  christos #define yydefred   destroy1_defred
     66  1.1  christos #endif /* yydefred */
     67  1.1  christos 
     68  1.1  christos #ifndef yystos
     69  1.1  christos #define yystos     destroy1_stos
     70  1.1  christos #endif /* yystos */
     71  1.1  christos 
     72  1.1  christos #ifndef yydgoto
     73  1.1  christos #define yydgoto    destroy1_dgoto
     74  1.1  christos #endif /* yydgoto */
     75  1.1  christos 
     76  1.1  christos #ifndef yysindex
     77  1.1  christos #define yysindex   destroy1_sindex
     78  1.1  christos #endif /* yysindex */
     79  1.1  christos 
     80  1.1  christos #ifndef yyrindex
     81  1.1  christos #define yyrindex   destroy1_rindex
     82  1.1  christos #endif /* yyrindex */
     83  1.1  christos 
     84  1.1  christos #ifndef yygindex
     85  1.1  christos #define yygindex   destroy1_gindex
     86  1.1  christos #endif /* yygindex */
     87  1.1  christos 
     88  1.1  christos #ifndef yytable
     89  1.1  christos #define yytable    destroy1_table
     90  1.1  christos #endif /* yytable */
     91  1.1  christos 
     92  1.1  christos #ifndef yycheck
     93  1.1  christos #define yycheck    destroy1_check
     94  1.1  christos #endif /* yycheck */
     95  1.1  christos 
     96  1.1  christos #ifndef yyname
     97  1.1  christos #define yyname     destroy1_name
     98  1.1  christos #endif /* yyname */
     99  1.1  christos 
    100  1.1  christos #ifndef yyrule
    101  1.1  christos #define yyrule     destroy1_rule
    102  1.1  christos #endif /* yyrule */
    103  1.1  christos 
    104  1.1  christos #if YYBTYACC
    105  1.1  christos 
    106  1.1  christos #ifndef yycindex
    107  1.1  christos #define yycindex   destroy1_cindex
    108  1.1  christos #endif /* yycindex */
    109  1.1  christos 
    110  1.1  christos #ifndef yyctable
    111  1.1  christos #define yyctable   destroy1_ctable
    112  1.1  christos #endif /* yyctable */
    113  1.1  christos 
    114  1.1  christos #endif /* YYBTYACC */
    115  1.1  christos 
    116  1.1  christos #define YYPREFIX "destroy1_"
    117  1.1  christos 
    118  1.1  christos #define YYPURE 0
    119  1.1  christos 
    120  1.1  christos #line 4 "btyacc_destroy1.y"
    121  1.1  christos #include <stdlib.h>
    122  1.1  christos 
    123  1.1  christos typedef enum {cGLOBAL, cLOCAL} class;
    124  1.1  christos typedef enum {tREAL, tINTEGER} type;
    125  1.1  christos typedef char * name;
    126  1.1  christos 
    127  1.1  christos struct symbol { class c; type t; name id; };
    128  1.1  christos typedef struct symbol symbol;
    129  1.1  christos 
    130  1.1  christos struct namelist { symbol *s; struct namelist *next; };
    131  1.1  christos typedef struct namelist namelist;
    132  1.1  christos 
    133  1.1  christos struct parser_param {
    134  1.1  christos 	int *rtrn;
    135  1.1  christos 	symbol ss;
    136  1.1  christos };
    137  1.1  christos 
    138  1.1  christos extern symbol *mksymbol(type t, class c, name id);
    139  1.1  christos 
    140  1.1  christos #ifdef YYBISON
    141  1.1  christos #define YYLEX_DECL() yylex(void)
    142  1.1  christos #define YYERROR_DECL() yyerror(const char *s)
    143  1.1  christos #endif
    144  1.1  christos #line 50 "btyacc_destroy1.y"
    145  1.1  christos #ifdef YYSTYPE
    146  1.1  christos #undef  YYSTYPE_IS_DECLARED
    147  1.1  christos #define YYSTYPE_IS_DECLARED 1
    148  1.1  christos #endif
    149  1.1  christos #ifndef YYSTYPE_IS_DECLARED
    150  1.1  christos #define YYSTYPE_IS_DECLARED 1
    151  1.1  christos typedef union
    152  1.1  christos {
    153  1.1  christos     class	cval;
    154  1.1  christos     type	tval;
    155  1.1  christos     namelist *	nlist;
    156  1.1  christos     name	id;
    157  1.1  christos } YYSTYPE;
    158  1.1  christos #endif /* !YYSTYPE_IS_DECLARED */
    159  1.1  christos #line 160 "btyacc_destroy1.tab.c"
    160  1.1  christos 
    161  1.1  christos /* compatibility with bison */
    162  1.1  christos #ifdef YYPARSE_PARAM
    163  1.1  christos /* compatibility with FreeBSD */
    164  1.1  christos # ifdef YYPARSE_PARAM_TYPE
    165  1.1  christos #  define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM)
    166  1.1  christos # else
    167  1.1  christos #  define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM)
    168  1.1  christos # endif
    169  1.1  christos #else
    170  1.1  christos # define YYPARSE_DECL() yyparse(struct parser_param *param, int flag)
    171  1.1  christos #endif
    172  1.1  christos 
    173  1.1  christos /* Parameters sent to lex. */
    174  1.1  christos #ifdef YYLEX_PARAM
    175  1.1  christos # define YYLEX_DECL() yylex(void *YYLEX_PARAM)
    176  1.1  christos # define YYLEX yylex(YYLEX_PARAM)
    177  1.1  christos #else
    178  1.1  christos # define YYLEX_DECL() yylex(void)
    179  1.1  christos # define YYLEX yylex()
    180  1.1  christos #endif
    181  1.1  christos 
    182  1.1  christos /* Parameters sent to yyerror. */
    183  1.1  christos #ifndef YYERROR_DECL
    184  1.1  christos #define YYERROR_DECL() yyerror(struct parser_param *param, int flag, const char *s)
    185  1.1  christos #endif
    186  1.1  christos #ifndef YYERROR_CALL
    187  1.1  christos #define YYERROR_CALL(msg) yyerror(param, flag, msg)
    188  1.1  christos #endif
    189  1.1  christos 
    190  1.1  christos #ifndef YYDESTRUCT_DECL
    191  1.1  christos #define YYDESTRUCT_DECL() yydestruct(const char *msg, int psymb, YYSTYPE *val, struct parser_param *param, int flag)
    192  1.1  christos #endif
    193  1.1  christos #ifndef YYDESTRUCT_CALL
    194  1.1  christos #define YYDESTRUCT_CALL(msg, psymb, val) yydestruct(msg, psymb, val, param, flag)
    195  1.1  christos #endif
    196  1.1  christos 
    197  1.1  christos extern int YYPARSE_DECL();
    198  1.1  christos 
    199  1.1  christos #define GLOBAL 257
    200  1.1  christos #define LOCAL 258
    201  1.1  christos #define REAL 259
    202  1.1  christos #define INTEGER 260
    203  1.1  christos #define NAME 261
    204  1.1  christos #define YYERRCODE 256
    205  1.1  christos typedef short YYINT;
    206  1.1  christos static const YYINT destroy1_lhs[] = {                    -1,
    207  1.1  christos     0,    0,    2,    2,    3,    3,    4,    4,    1,
    208  1.1  christos };
    209  1.1  christos static const YYINT destroy1_len[] = {                     2,
    210  1.1  christos     8,    5,    1,    1,    1,    1,    2,    1,    6,
    211  1.1  christos };
    212  1.1  christos static const YYINT destroy1_defred[] = {                  0,
    213  1.1  christos     3,    4,    5,    6,    0,    0,    0,    0,    8,    0,
    214  1.1  christos     0,    0,    0,    7,    0,    0,    0,    0,    0,    2,
    215  1.1  christos     0,    0,    0,    0,    9,    1,
    216  1.1  christos };
    217  1.1  christos static const YYINT destroy1_stos[] = {                    0,
    218  1.1  christos   257,  258,  259,  260,  263,  265,  266,  266,  261,  264,
    219  1.1  christos   267,  267,   40,  261,   40,   40,  265,  258,  265,   41,
    220  1.1  christos    44,   44,  266,  266,   41,   41,
    221  1.1  christos };
    222  1.1  christos static const YYINT destroy1_dgoto[] = {                   5,
    223  1.1  christos    10,    6,    7,   11,
    224  1.1  christos };
    225  1.1  christos static const YYINT destroy1_sindex[] = {               -254,
    226  1.1  christos     0,    0,    0,    0,    0, -251, -248, -248,    0,  -26,
    227  1.1  christos   -40,  -39, -246,    0, -243, -246,  -25,  -24,  -23,    0,
    228  1.1  christos  -251, -251,  -22,  -19,    0,    0,
    229  1.1  christos };
    230  1.1  christos static const YYINT destroy1_rindex[] = {                  0,
    231  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    232  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    233  1.1  christos     0,    0,    0,    0,    0,    0,
    234  1.1  christos };
    235  1.1  christos #if YYBTYACC
    236  1.1  christos static const YYINT destroy1_cindex[] = {                  0,
    237  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    238  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    239  1.1  christos     0,    0,    0,    0,    0,    0,
    240  1.1  christos };
    241  1.1  christos #endif
    242  1.1  christos static const YYINT destroy1_gindex[] = {                  0,
    243  1.1  christos     0,   -6,   -4,   15,
    244  1.1  christos };
    245  1.1  christos #define YYTABLESIZE 222
    246  1.1  christos static const YYINT destroy1_table[] = {                  15,
    247  1.1  christos    16,    8,    1,    2,    3,    4,   17,    3,    4,   19,
    248  1.1  christos     1,    2,    9,   13,   18,   20,   23,   24,   25,   21,
    249  1.1  christos    22,   26,   12,    0,    0,    0,    0,    0,    0,    0,
    250  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    251  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    252  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    253  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    254  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    255  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    256  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    257  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    258  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    259  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    260  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    261  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    262  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    263  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    264  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    265  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    266  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    267  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    268  1.1  christos     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    269  1.1  christos    14,   14,
    270  1.1  christos };
    271  1.1  christos static const YYINT destroy1_check[] = {                  40,
    272  1.1  christos    40,    6,  257,  258,  259,  260,   13,  259,  260,   16,
    273  1.1  christos   257,  258,  261,   40,  258,   41,   21,   22,   41,   44,
    274  1.1  christos    44,   41,    8,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    275  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    276  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    277  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    278  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    279  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    280  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    281  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    282  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    283  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    284  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    285  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    286  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    287  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    288  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    289  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    290  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    291  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    292  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    293  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    294  1.1  christos   261,  261,
    295  1.1  christos };
    296  1.1  christos #if YYBTYACC
    297  1.1  christos static const YYINT destroy1_ctable[] = {                 -1,
    298  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    299  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    300  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    301  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    302  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    303  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    304  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    305  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    306  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    307  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    308  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    309  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    310  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    311  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    312  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    313  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    314  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    315  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    316  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    317  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    318  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    319  1.1  christos    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
    320  1.1  christos    -1,
    321  1.1  christos };
    322  1.1  christos #endif
    323  1.1  christos #define YYFINAL 5
    324  1.1  christos #ifndef YYDEBUG
    325  1.1  christos #define YYDEBUG 0
    326  1.1  christos #endif
    327  1.1  christos #define YYMAXTOKEN 261
    328  1.1  christos #define YYUNDFTOKEN 268
    329  1.1  christos #define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
    330  1.1  christos #if YYDEBUG
    331  1.1  christos static const char *const destroy1_name[] = {
    332  1.1  christos 
    333  1.1  christos "$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,
    334  1.1  christos 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,
    335  1.1  christos 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,
    336  1.1  christos 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,
    337  1.1  christos 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,
    338  1.1  christos 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,
    339  1.1  christos 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"error","GLOBAL","LOCAL",
    340  1.1  christos "REAL","INTEGER","NAME","$accept","declaration","locnamelist","class","type",
    341  1.1  christos "namelist","illegal-symbol",
    342  1.1  christos };
    343  1.1  christos static const char *const destroy1_rule[] = {
    344  1.1  christos "$accept : declaration",
    345  1.1  christos "declaration : class type namelist '(' class ',' type ')'",
    346  1.1  christos "declaration : type locnamelist '(' class ')'",
    347  1.1  christos "class : GLOBAL",
    348  1.1  christos "class : LOCAL",
    349  1.1  christos "type : REAL",
    350  1.1  christos "type : INTEGER",
    351  1.1  christos "namelist : namelist NAME",
    352  1.1  christos "namelist : NAME",
    353  1.1  christos "locnamelist : namelist '(' LOCAL ',' type ')'",
    354  1.1  christos 
    355  1.1  christos };
    356  1.1  christos #endif
    357  1.1  christos 
    358  1.1  christos int      yydebug;
    359  1.1  christos int      yynerrs;
    360  1.1  christos 
    361  1.1  christos int      yyerrflag;
    362  1.1  christos int      yychar;
    363  1.1  christos YYSTYPE  yyval;
    364  1.1  christos YYSTYPE  yylval;
    365  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    366  1.1  christos YYLTYPE  yyloc; /* position returned by actions */
    367  1.1  christos YYLTYPE  yylloc; /* position from the lexer */
    368  1.1  christos #endif
    369  1.1  christos 
    370  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    371  1.1  christos #ifndef YYLLOC_DEFAULT
    372  1.1  christos #define YYLLOC_DEFAULT(loc, rhs, n) \
    373  1.1  christos do \
    374  1.1  christos { \
    375  1.1  christos     if (n == 0) \
    376  1.1  christos     { \
    377  1.1  christos         (loc).first_line   = ((rhs)[-1]).last_line; \
    378  1.1  christos         (loc).first_column = ((rhs)[-1]).last_column; \
    379  1.1  christos         (loc).last_line    = ((rhs)[-1]).last_line; \
    380  1.1  christos         (loc).last_column  = ((rhs)[-1]).last_column; \
    381  1.1  christos     } \
    382  1.1  christos     else \
    383  1.1  christos     { \
    384  1.1  christos         (loc).first_line   = ((rhs)[ 0 ]).first_line; \
    385  1.1  christos         (loc).first_column = ((rhs)[ 0 ]).first_column; \
    386  1.1  christos         (loc).last_line    = ((rhs)[n-1]).last_line; \
    387  1.1  christos         (loc).last_column  = ((rhs)[n-1]).last_column; \
    388  1.1  christos     } \
    389  1.1  christos } while (0)
    390  1.1  christos #endif /* YYLLOC_DEFAULT */
    391  1.1  christos #endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
    392  1.1  christos #if YYBTYACC
    393  1.1  christos 
    394  1.1  christos #ifndef YYLVQUEUEGROWTH
    395  1.1  christos #define YYLVQUEUEGROWTH 32
    396  1.1  christos #endif
    397  1.1  christos #endif /* YYBTYACC */
    398  1.1  christos 
    399  1.1  christos /* define the initial stack-sizes */
    400  1.1  christos #ifdef YYSTACKSIZE
    401  1.1  christos #undef YYMAXDEPTH
    402  1.1  christos #define YYMAXDEPTH  YYSTACKSIZE
    403  1.1  christos #else
    404  1.1  christos #ifdef YYMAXDEPTH
    405  1.1  christos #define YYSTACKSIZE YYMAXDEPTH
    406  1.1  christos #else
    407  1.1  christos #define YYSTACKSIZE 10000
    408  1.1  christos #define YYMAXDEPTH  10000
    409  1.1  christos #endif
    410  1.1  christos #endif
    411  1.1  christos 
    412  1.1  christos #ifndef YYINITSTACKSIZE
    413  1.1  christos #define YYINITSTACKSIZE 200
    414  1.1  christos #endif
    415  1.1  christos 
    416  1.1  christos typedef struct {
    417  1.1  christos     unsigned stacksize;
    418  1.1  christos     short    *s_base;
    419  1.1  christos     short    *s_mark;
    420  1.1  christos     short    *s_last;
    421  1.1  christos     YYSTYPE  *l_base;
    422  1.1  christos     YYSTYPE  *l_mark;
    423  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    424  1.1  christos     YYLTYPE  *p_base;
    425  1.1  christos     YYLTYPE  *p_mark;
    426  1.1  christos #endif
    427  1.1  christos } YYSTACKDATA;
    428  1.1  christos #if YYBTYACC
    429  1.1  christos 
    430  1.1  christos struct YYParseState_s
    431  1.1  christos {
    432  1.1  christos     struct YYParseState_s *save;    /* Previously saved parser state */
    433  1.1  christos     YYSTACKDATA            yystack; /* saved parser stack */
    434  1.1  christos     int                    state;   /* saved parser state */
    435  1.1  christos     int                    errflag; /* saved error recovery status */
    436  1.1  christos     int                    lexeme;  /* saved index of the conflict lexeme in the lexical queue */
    437  1.1  christos     YYINT                  ctry;    /* saved index in yyctable[] for this conflict */
    438  1.1  christos };
    439  1.1  christos typedef struct YYParseState_s YYParseState;
    440  1.1  christos #endif /* YYBTYACC */
    441  1.1  christos /* variables for the parser stack */
    442  1.1  christos static YYSTACKDATA yystack;
    443  1.1  christos #if YYBTYACC
    444  1.1  christos 
    445  1.1  christos /* Current parser state */
    446  1.1  christos static YYParseState *yyps = 0;
    447  1.1  christos 
    448  1.1  christos /* yypath != NULL: do the full parse, starting at *yypath parser state. */
    449  1.1  christos static YYParseState *yypath = 0;
    450  1.1  christos 
    451  1.1  christos /* Base of the lexical value queue */
    452  1.1  christos static YYSTYPE *yylvals = 0;
    453  1.1  christos 
    454  1.1  christos /* Current position at lexical value queue */
    455  1.1  christos static YYSTYPE *yylvp = 0;
    456  1.1  christos 
    457  1.1  christos /* End position of lexical value queue */
    458  1.1  christos static YYSTYPE *yylve = 0;
    459  1.1  christos 
    460  1.1  christos /* The last allocated position at the lexical value queue */
    461  1.1  christos static YYSTYPE *yylvlim = 0;
    462  1.1  christos 
    463  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    464  1.1  christos /* Base of the lexical position queue */
    465  1.1  christos static YYLTYPE *yylpsns = 0;
    466  1.1  christos 
    467  1.1  christos /* Current position at lexical position queue */
    468  1.1  christos static YYLTYPE *yylpp = 0;
    469  1.1  christos 
    470  1.1  christos /* End position of lexical position queue */
    471  1.1  christos static YYLTYPE *yylpe = 0;
    472  1.1  christos 
    473  1.1  christos /* The last allocated position at the lexical position queue */
    474  1.1  christos static YYLTYPE *yylplim = 0;
    475  1.1  christos #endif
    476  1.1  christos 
    477  1.1  christos /* Current position at lexical token queue */
    478  1.1  christos static short  *yylexp = 0;
    479  1.1  christos 
    480  1.1  christos static short  *yylexemes = 0;
    481  1.1  christos #endif /* YYBTYACC */
    482  1.1  christos #line 89 "btyacc_destroy1.y"
    483  1.1  christos 
    484  1.1  christos extern int YYLEX_DECL();
    485  1.1  christos extern void YYERROR_DECL();
    486  1.1  christos #line 487 "btyacc_destroy1.tab.c"
    487  1.1  christos 
    488  1.1  christos /* Release memory associated with symbol. */
    489  1.1  christos #if ! defined YYDESTRUCT_IS_DECLARED
    490  1.1  christos static void
    491  1.1  christos YYDESTRUCT_DECL()
    492  1.1  christos {
    493  1.1  christos     switch (psymb)
    494  1.1  christos     {
    495  1.1  christos 	case 263:
    496  1.1  christos #line 41 "btyacc_destroy1.y"
    497  1.1  christos 	{
    498  1.1  christos 		  namelist *p = (*val).nlist;
    499  1.1  christos 		  while (p != NULL)
    500  1.1  christos 		  { namelist *pp = p;
    501  1.1  christos 		    p = p->next;
    502  1.1  christos 		    free(pp->s); free(pp);
    503  1.1  christos 		  }
    504  1.1  christos 		}
    505  1.1  christos 	break;
    506  1.1  christos #line 507 "btyacc_destroy1.tab.c"
    507  1.1  christos     }
    508  1.1  christos }
    509  1.1  christos #define YYDESTRUCT_IS_DECLARED 1
    510  1.1  christos #endif
    511  1.1  christos 
    512  1.1  christos /* For use in generated program */
    513  1.1  christos #define yydepth (int)(yystack.s_mark - yystack.s_base)
    514  1.1  christos #if YYBTYACC
    515  1.1  christos #define yytrial (yyps->save)
    516  1.1  christos #endif /* YYBTYACC */
    517  1.1  christos 
    518  1.1  christos #if YYDEBUG
    519  1.1  christos #include <stdio.h>         /* needed for printf */
    520  1.1  christos #endif
    521  1.1  christos 
    522  1.1  christos #include <stdlib.h>        /* needed for malloc, etc */
    523  1.1  christos #include <string.h>        /* needed for memset */
    524  1.1  christos 
    525  1.1  christos /* allocate initial stack or double stack size, up to YYMAXDEPTH */
    526  1.1  christos static int yygrowstack(YYSTACKDATA *data)
    527  1.1  christos {
    528  1.1  christos     int i;
    529  1.1  christos     unsigned newsize;
    530  1.1  christos     short *newss;
    531  1.1  christos     YYSTYPE *newvs;
    532  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    533  1.1  christos     YYLTYPE *newps;
    534  1.1  christos #endif
    535  1.1  christos 
    536  1.1  christos     if ((newsize = data->stacksize) == 0)
    537  1.1  christos         newsize = YYINITSTACKSIZE;
    538  1.1  christos     else if (newsize >= YYMAXDEPTH)
    539  1.1  christos         return YYENOMEM;
    540  1.1  christos     else if ((newsize *= 2) > YYMAXDEPTH)
    541  1.1  christos         newsize = YYMAXDEPTH;
    542  1.1  christos 
    543  1.1  christos     i = (int) (data->s_mark - data->s_base);
    544  1.1  christos     newss = (short *)realloc(data->s_base, newsize * sizeof(*newss));
    545  1.1  christos     if (newss == 0)
    546  1.1  christos         return YYENOMEM;
    547  1.1  christos 
    548  1.1  christos     data->s_base = newss;
    549  1.1  christos     data->s_mark = newss + i;
    550  1.1  christos 
    551  1.1  christos     newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));
    552  1.1  christos     if (newvs == 0)
    553  1.1  christos         return YYENOMEM;
    554  1.1  christos 
    555  1.1  christos     data->l_base = newvs;
    556  1.1  christos     data->l_mark = newvs + i;
    557  1.1  christos 
    558  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    559  1.1  christos     newps = (YYLTYPE *)realloc(data->p_base, newsize * sizeof(*newps));
    560  1.1  christos     if (newps == 0)
    561  1.1  christos         return YYENOMEM;
    562  1.1  christos 
    563  1.1  christos     data->p_base = newps;
    564  1.1  christos     data->p_mark = newps + i;
    565  1.1  christos #endif
    566  1.1  christos 
    567  1.1  christos     data->stacksize = newsize;
    568  1.1  christos     data->s_last = data->s_base + newsize - 1;
    569  1.1  christos 
    570  1.1  christos #if YYDEBUG
    571  1.1  christos     if (yydebug)
    572  1.1  christos         fprintf(stderr, "%sdebug: stack size increased to %d\n", YYPREFIX, newsize);
    573  1.1  christos #endif
    574  1.1  christos     return 0;
    575  1.1  christos }
    576  1.1  christos 
    577  1.1  christos #if YYPURE || defined(YY_NO_LEAKS)
    578  1.1  christos static void yyfreestack(YYSTACKDATA *data)
    579  1.1  christos {
    580  1.1  christos     free(data->s_base);
    581  1.1  christos     free(data->l_base);
    582  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    583  1.1  christos     free(data->p_base);
    584  1.1  christos #endif
    585  1.1  christos     memset(data, 0, sizeof(*data));
    586  1.1  christos }
    587  1.1  christos #else
    588  1.1  christos #define yyfreestack(data) /* nothing */
    589  1.1  christos #endif /* YYPURE || defined(YY_NO_LEAKS) */
    590  1.1  christos #if YYBTYACC
    591  1.1  christos 
    592  1.1  christos static YYParseState *
    593  1.1  christos yyNewState(unsigned size)
    594  1.1  christos {
    595  1.1  christos     YYParseState *p = (YYParseState *) malloc(sizeof(YYParseState));
    596  1.1  christos     if (p == NULL) return NULL;
    597  1.1  christos 
    598  1.1  christos     p->yystack.stacksize = size;
    599  1.1  christos     if (size == 0)
    600  1.1  christos     {
    601  1.1  christos         p->yystack.s_base = NULL;
    602  1.1  christos         p->yystack.l_base = NULL;
    603  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    604  1.1  christos         p->yystack.p_base = NULL;
    605  1.1  christos #endif
    606  1.1  christos         return p;
    607  1.1  christos     }
    608  1.1  christos     p->yystack.s_base    = (short *) malloc(size * sizeof(short));
    609  1.1  christos     if (p->yystack.s_base == NULL) return NULL;
    610  1.1  christos     p->yystack.l_base    = (YYSTYPE *) malloc(size * sizeof(YYSTYPE));
    611  1.1  christos     if (p->yystack.l_base == NULL) return NULL;
    612  1.1  christos     memset(p->yystack.l_base, 0, size * sizeof(YYSTYPE));
    613  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    614  1.1  christos     p->yystack.p_base    = (YYLTYPE *) malloc(size * sizeof(YYLTYPE));
    615  1.1  christos     if (p->yystack.p_base == NULL) return NULL;
    616  1.1  christos     memset(p->yystack.p_base, 0, size * sizeof(YYLTYPE));
    617  1.1  christos #endif
    618  1.1  christos 
    619  1.1  christos     return p;
    620  1.1  christos }
    621  1.1  christos 
    622  1.1  christos static void
    623  1.1  christos yyFreeState(YYParseState *p)
    624  1.1  christos {
    625  1.1  christos     yyfreestack(&p->yystack);
    626  1.1  christos     free(p);
    627  1.1  christos }
    628  1.1  christos #endif /* YYBTYACC */
    629  1.1  christos 
    630  1.1  christos #define YYABORT  goto yyabort
    631  1.1  christos #define YYREJECT goto yyabort
    632  1.1  christos #define YYACCEPT goto yyaccept
    633  1.1  christos #define YYERROR  goto yyerrlab
    634  1.1  christos #if YYBTYACC
    635  1.1  christos #define YYVALID        do { if (yyps->save)            goto yyvalid; } while(0)
    636  1.1  christos #define YYVALID_NESTED do { if (yyps->save && \
    637  1.1  christos                                 yyps->save->save == 0) goto yyvalid; } while(0)
    638  1.1  christos #endif /* YYBTYACC */
    639  1.1  christos 
    640  1.1  christos int
    641  1.1  christos YYPARSE_DECL()
    642  1.1  christos {
    643  1.1  christos     int yym, yyn, yystate, yyresult;
    644  1.1  christos #if YYBTYACC
    645  1.1  christos     int yynewerrflag;
    646  1.1  christos     YYParseState *yyerrctx = NULL;
    647  1.1  christos #endif /* YYBTYACC */
    648  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    649  1.1  christos     YYLTYPE  yyerror_loc_range[2]; /* position of error start & end */
    650  1.1  christos #endif
    651  1.1  christos #if YYDEBUG
    652  1.1  christos     const char *yys;
    653  1.1  christos 
    654  1.1  christos     if ((yys = getenv("YYDEBUG")) != 0)
    655  1.1  christos     {
    656  1.1  christos         yyn = *yys;
    657  1.1  christos         if (yyn >= '0' && yyn <= '9')
    658  1.1  christos             yydebug = yyn - '0';
    659  1.1  christos     }
    660  1.1  christos     if (yydebug)
    661  1.1  christos         fprintf(stderr, "%sdebug[<# of symbols on state stack>]\n", YYPREFIX);
    662  1.1  christos #endif
    663  1.1  christos 
    664  1.1  christos #if YYBTYACC
    665  1.1  christos     yyps = yyNewState(0); if (yyps == 0) goto yyenomem;
    666  1.1  christos     yyps->save = 0;
    667  1.1  christos #endif /* YYBTYACC */
    668  1.1  christos     yynerrs = 0;
    669  1.1  christos     yyerrflag = 0;
    670  1.1  christos     yychar = YYEMPTY;
    671  1.1  christos     yystate = 0;
    672  1.1  christos 
    673  1.1  christos #if YYPURE
    674  1.1  christos     memset(&yystack, 0, sizeof(yystack));
    675  1.1  christos #endif
    676  1.1  christos 
    677  1.1  christos     if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
    678  1.1  christos     yystack.s_mark = yystack.s_base;
    679  1.1  christos     yystack.l_mark = yystack.l_base;
    680  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    681  1.1  christos     yystack.p_mark = yystack.p_base;
    682  1.1  christos #endif
    683  1.1  christos     yystate = 0;
    684  1.1  christos     *yystack.s_mark = 0;
    685  1.1  christos 
    686  1.1  christos yyloop:
    687  1.1  christos     if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
    688  1.1  christos     if (yychar < 0)
    689  1.1  christos     {
    690  1.1  christos #if YYBTYACC
    691  1.1  christos         do {
    692  1.1  christos         if (yylvp < yylve)
    693  1.1  christos         {
    694  1.1  christos             /* we're currently re-reading tokens */
    695  1.1  christos             yylval = *yylvp++;
    696  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    697  1.1  christos             yylloc = *yylpp++;
    698  1.1  christos #endif
    699  1.1  christos             yychar = *yylexp++;
    700  1.1  christos             break;
    701  1.1  christos         }
    702  1.1  christos         if (yyps->save)
    703  1.1  christos         {
    704  1.1  christos             /* in trial mode; save scanner results for future parse attempts */
    705  1.1  christos             if (yylvp == yylvlim)
    706  1.1  christos             {   /* Enlarge lexical value queue */
    707  1.1  christos                 size_t p = (size_t) (yylvp - yylvals);
    708  1.1  christos                 size_t s = (size_t) (yylvlim - yylvals);
    709  1.1  christos 
    710  1.1  christos                 s += YYLVQUEUEGROWTH;
    711  1.1  christos                 if ((yylexemes = (short *)   realloc(yylexemes, s * sizeof(short))) == NULL) goto yyenomem;
    712  1.1  christos                 if ((yylvals   = (YYSTYPE *) realloc(yylvals, s * sizeof(YYSTYPE))) == NULL) goto yyenomem;
    713  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    714  1.1  christos                 if ((yylpsns   = (YYLTYPE *) realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL) goto yyenomem;
    715  1.1  christos #endif
    716  1.1  christos                 yylvp   = yylve = yylvals + p;
    717  1.1  christos                 yylvlim = yylvals + s;
    718  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    719  1.1  christos                 yylpp   = yylpe = yylpsns + p;
    720  1.1  christos                 yylplim = yylpsns + s;
    721  1.1  christos #endif
    722  1.1  christos                 yylexp  = yylexemes + p;
    723  1.1  christos             }
    724  1.1  christos             *yylexp = (short) YYLEX;
    725  1.1  christos             *yylvp++ = yylval;
    726  1.1  christos             yylve++;
    727  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    728  1.1  christos             *yylpp++ = yylloc;
    729  1.1  christos             yylpe++;
    730  1.1  christos #endif
    731  1.1  christos             yychar = *yylexp++;
    732  1.1  christos             break;
    733  1.1  christos         }
    734  1.1  christos         /* normal operation, no conflict encountered */
    735  1.1  christos #endif /* YYBTYACC */
    736  1.1  christos         yychar = YYLEX;
    737  1.1  christos #if YYBTYACC
    738  1.1  christos         } while (0);
    739  1.1  christos #endif /* YYBTYACC */
    740  1.1  christos         if (yychar < 0) yychar = YYEOF;
    741  1.1  christos         /* if ((yychar = YYLEX) < 0) yychar = YYEOF; */
    742  1.1  christos #if YYDEBUG
    743  1.1  christos         if (yydebug)
    744  1.1  christos         {
    745  1.1  christos             yys = yyname[YYTRANSLATE(yychar)];
    746  1.1  christos             fprintf(stderr, "%s[%d]: state %d, reading token %d (%s)",
    747  1.1  christos                             YYDEBUGSTR, yydepth, yystate, yychar, yys);
    748  1.1  christos #ifdef YYSTYPE_TOSTRING
    749  1.1  christos #if YYBTYACC
    750  1.1  christos             if (!yytrial)
    751  1.1  christos #endif /* YYBTYACC */
    752  1.1  christos                 fprintf(stderr, " <%s>", YYSTYPE_TOSTRING(yychar, yylval));
    753  1.1  christos #endif
    754  1.1  christos             fputc('\n', stderr);
    755  1.1  christos         }
    756  1.1  christos #endif
    757  1.1  christos     }
    758  1.1  christos #if YYBTYACC
    759  1.1  christos 
    760  1.1  christos     /* Do we have a conflict? */
    761  1.1  christos     if (((yyn = yycindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
    762  1.1  christos         yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
    763  1.1  christos     {
    764  1.1  christos         YYINT ctry;
    765  1.1  christos 
    766  1.1  christos         if (yypath)
    767  1.1  christos         {
    768  1.1  christos             YYParseState *save;
    769  1.1  christos #if YYDEBUG
    770  1.1  christos             if (yydebug)
    771  1.1  christos                 fprintf(stderr, "%s[%d]: CONFLICT in state %d: following successful trial parse\n",
    772  1.1  christos                                 YYDEBUGSTR, yydepth, yystate);
    773  1.1  christos #endif
    774  1.1  christos             /* Switch to the next conflict context */
    775  1.1  christos             save = yypath;
    776  1.1  christos             yypath = save->save;
    777  1.1  christos             save->save = NULL;
    778  1.1  christos             ctry = save->ctry;
    779  1.1  christos             if (save->state != yystate) YYABORT;
    780  1.1  christos             yyFreeState(save);
    781  1.1  christos 
    782  1.1  christos         }
    783  1.1  christos         else
    784  1.1  christos         {
    785  1.1  christos 
    786  1.1  christos             /* Unresolved conflict - start/continue trial parse */
    787  1.1  christos             YYParseState *save;
    788  1.1  christos #if YYDEBUG
    789  1.1  christos             if (yydebug)
    790  1.1  christos             {
    791  1.1  christos                 fprintf(stderr, "%s[%d]: CONFLICT in state %d. ", YYDEBUGSTR, yydepth, yystate);
    792  1.1  christos                 if (yyps->save)
    793  1.1  christos                     fputs("ALREADY in conflict, continuing trial parse.\n", stderr);
    794  1.1  christos                 else
    795  1.1  christos                     fputs("Starting trial parse.\n", stderr);
    796  1.1  christos             }
    797  1.1  christos #endif
    798  1.1  christos             save                  = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1));
    799  1.1  christos             if (save == NULL) goto yyenomem;
    800  1.1  christos             save->save            = yyps->save;
    801  1.1  christos             save->state           = yystate;
    802  1.1  christos             save->errflag         = yyerrflag;
    803  1.1  christos             save->yystack.s_mark  = save->yystack.s_base + (yystack.s_mark - yystack.s_base);
    804  1.1  christos             memcpy (save->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));
    805  1.1  christos             save->yystack.l_mark  = save->yystack.l_base + (yystack.l_mark - yystack.l_base);
    806  1.1  christos             memcpy (save->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
    807  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    808  1.1  christos             save->yystack.p_mark  = save->yystack.p_base + (yystack.p_mark - yystack.p_base);
    809  1.1  christos             memcpy (save->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
    810  1.1  christos #endif
    811  1.1  christos             ctry                  = yytable[yyn];
    812  1.1  christos             if (yyctable[ctry] == -1)
    813  1.1  christos             {
    814  1.1  christos #if YYDEBUG
    815  1.1  christos                 if (yydebug && yychar >= YYEOF)
    816  1.1  christos                     fprintf(stderr, "%s[%d]: backtracking 1 token\n", YYDEBUGSTR, yydepth);
    817  1.1  christos #endif
    818  1.1  christos                 ctry++;
    819  1.1  christos             }
    820  1.1  christos             save->ctry = ctry;
    821  1.1  christos             if (yyps->save == NULL)
    822  1.1  christos             {
    823  1.1  christos                 /* If this is a first conflict in the stack, start saving lexemes */
    824  1.1  christos                 if (!yylexemes)
    825  1.1  christos                 {
    826  1.1  christos                     yylexemes = (short *) malloc((YYLVQUEUEGROWTH) * sizeof(short));
    827  1.1  christos                     if (yylexemes == NULL) goto yyenomem;
    828  1.1  christos                     yylvals   = (YYSTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYSTYPE));
    829  1.1  christos                     if (yylvals == NULL) goto yyenomem;
    830  1.1  christos                     yylvlim   = yylvals + YYLVQUEUEGROWTH;
    831  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    832  1.1  christos                     yylpsns   = (YYLTYPE *) malloc((YYLVQUEUEGROWTH) * sizeof(YYLTYPE));
    833  1.1  christos                     if (yylpsns == NULL) goto yyenomem;
    834  1.1  christos                     yylplim   = yylpsns + YYLVQUEUEGROWTH;
    835  1.1  christos #endif
    836  1.1  christos                 }
    837  1.1  christos                 if (yylvp == yylve)
    838  1.1  christos                 {
    839  1.1  christos                     yylvp  = yylve = yylvals;
    840  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    841  1.1  christos                     yylpp  = yylpe = yylpsns;
    842  1.1  christos #endif
    843  1.1  christos                     yylexp = yylexemes;
    844  1.1  christos                     if (yychar >= YYEOF)
    845  1.1  christos                     {
    846  1.1  christos                         *yylve++ = yylval;
    847  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    848  1.1  christos                         *yylpe++ = yylloc;
    849  1.1  christos #endif
    850  1.1  christos                         *yylexp  = (short) yychar;
    851  1.1  christos                         yychar   = YYEMPTY;
    852  1.1  christos                     }
    853  1.1  christos                 }
    854  1.1  christos             }
    855  1.1  christos             if (yychar >= YYEOF)
    856  1.1  christos             {
    857  1.1  christos                 yylvp--;
    858  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    859  1.1  christos                 yylpp--;
    860  1.1  christos #endif
    861  1.1  christos                 yylexp--;
    862  1.1  christos                 yychar = YYEMPTY;
    863  1.1  christos             }
    864  1.1  christos             save->lexeme = (int) (yylvp - yylvals);
    865  1.1  christos             yyps->save   = save;
    866  1.1  christos         }
    867  1.1  christos         if (yytable[yyn] == ctry)
    868  1.1  christos         {
    869  1.1  christos #if YYDEBUG
    870  1.1  christos             if (yydebug)
    871  1.1  christos                 fprintf(stderr, "%s[%d]: state %d, shifting to state %d\n",
    872  1.1  christos                                 YYDEBUGSTR, yydepth, yystate, yyctable[ctry]);
    873  1.1  christos #endif
    874  1.1  christos             if (yychar < 0)
    875  1.1  christos             {
    876  1.1  christos                 yylvp++;
    877  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    878  1.1  christos                 yylpp++;
    879  1.1  christos #endif
    880  1.1  christos                 yylexp++;
    881  1.1  christos             }
    882  1.1  christos             if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM)
    883  1.1  christos                 goto yyoverflow;
    884  1.1  christos             yystate = yyctable[ctry];
    885  1.1  christos             *++yystack.s_mark = (short) yystate;
    886  1.1  christos             *++yystack.l_mark = yylval;
    887  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    888  1.1  christos             *++yystack.p_mark = yylloc;
    889  1.1  christos #endif
    890  1.1  christos             yychar  = YYEMPTY;
    891  1.1  christos             if (yyerrflag > 0) --yyerrflag;
    892  1.1  christos             goto yyloop;
    893  1.1  christos         }
    894  1.1  christos         else
    895  1.1  christos         {
    896  1.1  christos             yyn = yyctable[ctry];
    897  1.1  christos             goto yyreduce;
    898  1.1  christos         }
    899  1.1  christos     } /* End of code dealing with conflicts */
    900  1.1  christos #endif /* YYBTYACC */
    901  1.1  christos     if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
    902  1.1  christos             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
    903  1.1  christos     {
    904  1.1  christos #if YYDEBUG
    905  1.1  christos         if (yydebug)
    906  1.1  christos             fprintf(stderr, "%s[%d]: state %d, shifting to state %d\n",
    907  1.1  christos                             YYDEBUGSTR, yydepth, yystate, yytable[yyn]);
    908  1.1  christos #endif
    909  1.1  christos         if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
    910  1.1  christos         yystate = yytable[yyn];
    911  1.1  christos         *++yystack.s_mark = yytable[yyn];
    912  1.1  christos         *++yystack.l_mark = yylval;
    913  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    914  1.1  christos         *++yystack.p_mark = yylloc;
    915  1.1  christos #endif
    916  1.1  christos         yychar = YYEMPTY;
    917  1.1  christos         if (yyerrflag > 0)  --yyerrflag;
    918  1.1  christos         goto yyloop;
    919  1.1  christos     }
    920  1.1  christos     if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
    921  1.1  christos             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
    922  1.1  christos     {
    923  1.1  christos         yyn = yytable[yyn];
    924  1.1  christos         goto yyreduce;
    925  1.1  christos     }
    926  1.1  christos     if (yyerrflag != 0) goto yyinrecovery;
    927  1.1  christos #if YYBTYACC
    928  1.1  christos 
    929  1.1  christos     yynewerrflag = 1;
    930  1.1  christos     goto yyerrhandler;
    931  1.1  christos     goto yyerrlab;
    932  1.1  christos 
    933  1.1  christos yyerrlab:
    934  1.1  christos     yynewerrflag = 0;
    935  1.1  christos yyerrhandler:
    936  1.1  christos     while (yyps->save)
    937  1.1  christos     {
    938  1.1  christos         int ctry;
    939  1.1  christos         YYParseState *save = yyps->save;
    940  1.1  christos #if YYDEBUG
    941  1.1  christos         if (yydebug)
    942  1.1  christos             fprintf(stderr, "%s[%d]: ERROR in state %d, CONFLICT BACKTRACKING to state %d, %d tokens\n",
    943  1.1  christos                             YYDEBUGSTR, yydepth, yystate, yyps->save->state,
    944  1.1  christos                     (int)(yylvp - yylvals - yyps->save->lexeme));
    945  1.1  christos #endif
    946  1.1  christos         /* Memorize most forward-looking error state in case it's really an error. */
    947  1.1  christos         if (yyerrctx == NULL || yyerrctx->lexeme < yylvp - yylvals)
    948  1.1  christos         {
    949  1.1  christos             /* Free old saved error context state */
    950  1.1  christos             if (yyerrctx) yyFreeState(yyerrctx);
    951  1.1  christos             /* Create and fill out new saved error context state */
    952  1.1  christos             yyerrctx                 = yyNewState((unsigned)(yystack.s_mark - yystack.s_base + 1));
    953  1.1  christos             if (yyerrctx == NULL) goto yyenomem;
    954  1.1  christos             yyerrctx->save           = yyps->save;
    955  1.1  christos             yyerrctx->state          = yystate;
    956  1.1  christos             yyerrctx->errflag        = yyerrflag;
    957  1.1  christos             yyerrctx->yystack.s_mark = yyerrctx->yystack.s_base + (yystack.s_mark - yystack.s_base);
    958  1.1  christos             memcpy (yyerrctx->yystack.s_base, yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));
    959  1.1  christos             yyerrctx->yystack.l_mark = yyerrctx->yystack.l_base + (yystack.l_mark - yystack.l_base);
    960  1.1  christos             memcpy (yyerrctx->yystack.l_base, yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
    961  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    962  1.1  christos             yyerrctx->yystack.p_mark = yyerrctx->yystack.p_base + (yystack.p_mark - yystack.p_base);
    963  1.1  christos             memcpy (yyerrctx->yystack.p_base, yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
    964  1.1  christos #endif
    965  1.1  christos             yyerrctx->lexeme         = (int) (yylvp - yylvals);
    966  1.1  christos         }
    967  1.1  christos         yylvp          = yylvals   + save->lexeme;
    968  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    969  1.1  christos         yylpp          = yylpsns   + save->lexeme;
    970  1.1  christos #endif
    971  1.1  christos         yylexp         = yylexemes + save->lexeme;
    972  1.1  christos         yychar         = YYEMPTY;
    973  1.1  christos         yystack.s_mark = yystack.s_base + (save->yystack.s_mark - save->yystack.s_base);
    974  1.1  christos         memcpy (yystack.s_base, save->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));
    975  1.1  christos         yystack.l_mark = yystack.l_base + (save->yystack.l_mark - save->yystack.l_base);
    976  1.1  christos         memcpy (yystack.l_base, save->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
    977  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
    978  1.1  christos         yystack.p_mark = yystack.p_base + (save->yystack.p_mark - save->yystack.p_base);
    979  1.1  christos         memcpy (yystack.p_base, save->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
    980  1.1  christos #endif
    981  1.1  christos         ctry           = ++save->ctry;
    982  1.1  christos         yystate        = save->state;
    983  1.1  christos         /* We tried shift, try reduce now */
    984  1.1  christos         if ((yyn = yyctable[ctry]) >= 0) goto yyreduce;
    985  1.1  christos         yyps->save     = save->save;
    986  1.1  christos         save->save     = NULL;
    987  1.1  christos         yyFreeState(save);
    988  1.1  christos 
    989  1.1  christos         /* Nothing left on the stack -- error */
    990  1.1  christos         if (!yyps->save)
    991  1.1  christos         {
    992  1.1  christos #if YYDEBUG
    993  1.1  christos             if (yydebug)
    994  1.1  christos                 fprintf(stderr, "%sdebug[%d,trial]: trial parse FAILED, entering ERROR mode\n",
    995  1.1  christos                                 YYPREFIX, yydepth);
    996  1.1  christos #endif
    997  1.1  christos             /* Restore state as it was in the most forward-advanced error */
    998  1.1  christos             yylvp          = yylvals   + yyerrctx->lexeme;
    999  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1000  1.1  christos             yylpp          = yylpsns   + yyerrctx->lexeme;
   1001  1.1  christos #endif
   1002  1.1  christos             yylexp         = yylexemes + yyerrctx->lexeme;
   1003  1.1  christos             yychar         = yylexp[-1];
   1004  1.1  christos             yylval         = yylvp[-1];
   1005  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1006  1.1  christos             yylloc         = yylpp[-1];
   1007  1.1  christos #endif
   1008  1.1  christos             yystack.s_mark = yystack.s_base + (yyerrctx->yystack.s_mark - yyerrctx->yystack.s_base);
   1009  1.1  christos             memcpy (yystack.s_base, yyerrctx->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));
   1010  1.1  christos             yystack.l_mark = yystack.l_base + (yyerrctx->yystack.l_mark - yyerrctx->yystack.l_base);
   1011  1.1  christos             memcpy (yystack.l_base, yyerrctx->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
   1012  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1013  1.1  christos             yystack.p_mark = yystack.p_base + (yyerrctx->yystack.p_mark - yyerrctx->yystack.p_base);
   1014  1.1  christos             memcpy (yystack.p_base, yyerrctx->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
   1015  1.1  christos #endif
   1016  1.1  christos             yystate        = yyerrctx->state;
   1017  1.1  christos             yyFreeState(yyerrctx);
   1018  1.1  christos             yyerrctx       = NULL;
   1019  1.1  christos         }
   1020  1.1  christos         yynewerrflag = 1;
   1021  1.1  christos     }
   1022  1.1  christos     if (yynewerrflag == 0) goto yyinrecovery;
   1023  1.1  christos #endif /* YYBTYACC */
   1024  1.1  christos 
   1025  1.1  christos     YYERROR_CALL("syntax error");
   1026  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1027  1.1  christos     yyerror_loc_range[0] = yylloc; /* lookahead position is error start position */
   1028  1.1  christos #endif
   1029  1.1  christos 
   1030  1.1  christos #if !YYBTYACC
   1031  1.1  christos     goto yyerrlab;
   1032  1.1  christos yyerrlab:
   1033  1.1  christos #endif
   1034  1.1  christos     ++yynerrs;
   1035  1.1  christos 
   1036  1.1  christos yyinrecovery:
   1037  1.1  christos     if (yyerrflag < 3)
   1038  1.1  christos     {
   1039  1.1  christos         yyerrflag = 3;
   1040  1.1  christos         for (;;)
   1041  1.1  christos         {
   1042  1.1  christos             if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 &&
   1043  1.1  christos                     yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE)
   1044  1.1  christos             {
   1045  1.1  christos #if YYDEBUG
   1046  1.1  christos                 if (yydebug)
   1047  1.1  christos                     fprintf(stderr, "%s[%d]: state %d, error recovery shifting to state %d\n",
   1048  1.1  christos                                     YYDEBUGSTR, yydepth, *yystack.s_mark, yytable[yyn]);
   1049  1.1  christos #endif
   1050  1.1  christos                 if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
   1051  1.1  christos                 yystate = yytable[yyn];
   1052  1.1  christos                 *++yystack.s_mark = yytable[yyn];
   1053  1.1  christos                 *++yystack.l_mark = yylval;
   1054  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1055  1.1  christos                 /* lookahead position is error end position */
   1056  1.1  christos                 yyerror_loc_range[1] = yylloc;
   1057  1.1  christos                 YYLLOC_DEFAULT(yyloc, yyerror_loc_range, 2); /* position of error span */
   1058  1.1  christos                 *++yystack.p_mark = yyloc;
   1059  1.1  christos #endif
   1060  1.1  christos                 goto yyloop;
   1061  1.1  christos             }
   1062  1.1  christos             else
   1063  1.1  christos             {
   1064  1.1  christos #if YYDEBUG
   1065  1.1  christos                 if (yydebug)
   1066  1.1  christos                     fprintf(stderr, "%s[%d]: error recovery discarding state %d\n",
   1067  1.1  christos                                     YYDEBUGSTR, yydepth, *yystack.s_mark);
   1068  1.1  christos #endif
   1069  1.1  christos                 if (yystack.s_mark <= yystack.s_base) goto yyabort;
   1070  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1071  1.1  christos                 /* the current TOS position is the error start position */
   1072  1.1  christos                 yyerror_loc_range[0] = *yystack.p_mark;
   1073  1.1  christos #endif
   1074  1.1  christos #if defined(YYDESTRUCT_CALL)
   1075  1.1  christos #if YYBTYACC
   1076  1.1  christos                 if (!yytrial)
   1077  1.1  christos #endif /* YYBTYACC */
   1078  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1079  1.1  christos                     YYDESTRUCT_CALL("error: discarding state",
   1080  1.1  christos                                     yystos[*yystack.s_mark], yystack.l_mark, yystack.p_mark);
   1081  1.1  christos #else
   1082  1.1  christos                     YYDESTRUCT_CALL("error: discarding state",
   1083  1.1  christos                                     yystos[*yystack.s_mark], yystack.l_mark);
   1084  1.1  christos #endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
   1085  1.1  christos #endif /* defined(YYDESTRUCT_CALL) */
   1086  1.1  christos                 --yystack.s_mark;
   1087  1.1  christos                 --yystack.l_mark;
   1088  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1089  1.1  christos                 --yystack.p_mark;
   1090  1.1  christos #endif
   1091  1.1  christos             }
   1092  1.1  christos         }
   1093  1.1  christos     }
   1094  1.1  christos     else
   1095  1.1  christos     {
   1096  1.1  christos         if (yychar == YYEOF) goto yyabort;
   1097  1.1  christos #if YYDEBUG
   1098  1.1  christos         if (yydebug)
   1099  1.1  christos         {
   1100  1.1  christos             yys = yyname[YYTRANSLATE(yychar)];
   1101  1.1  christos             fprintf(stderr, "%s[%d]: state %d, error recovery discarding token %d (%s)\n",
   1102  1.1  christos                             YYDEBUGSTR, yydepth, yystate, yychar, yys);
   1103  1.1  christos         }
   1104  1.1  christos #endif
   1105  1.1  christos #if defined(YYDESTRUCT_CALL)
   1106  1.1  christos #if YYBTYACC
   1107  1.1  christos         if (!yytrial)
   1108  1.1  christos #endif /* YYBTYACC */
   1109  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1110  1.1  christos             YYDESTRUCT_CALL("error: discarding token", yychar, &yylval, &yylloc);
   1111  1.1  christos #else
   1112  1.1  christos             YYDESTRUCT_CALL("error: discarding token", yychar, &yylval);
   1113  1.1  christos #endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
   1114  1.1  christos #endif /* defined(YYDESTRUCT_CALL) */
   1115  1.1  christos         yychar = YYEMPTY;
   1116  1.1  christos         goto yyloop;
   1117  1.1  christos     }
   1118  1.1  christos 
   1119  1.1  christos yyreduce:
   1120  1.1  christos     yym = yylen[yyn];
   1121  1.1  christos #if YYDEBUG
   1122  1.1  christos     if (yydebug)
   1123  1.1  christos     {
   1124  1.1  christos         fprintf(stderr, "%s[%d]: state %d, reducing by rule %d (%s)",
   1125  1.1  christos                         YYDEBUGSTR, yydepth, yystate, yyn, yyrule[yyn]);
   1126  1.1  christos #ifdef YYSTYPE_TOSTRING
   1127  1.1  christos #if YYBTYACC
   1128  1.1  christos         if (!yytrial)
   1129  1.1  christos #endif /* YYBTYACC */
   1130  1.1  christos             if (yym > 0)
   1131  1.1  christos             {
   1132  1.1  christos                 int i;
   1133  1.1  christos                 fputc('<', stderr);
   1134  1.1  christos                 for (i = yym; i > 0; i--)
   1135  1.1  christos                 {
   1136  1.1  christos                     if (i != yym) fputs(", ", stderr);
   1137  1.1  christos                     fputs(YYSTYPE_TOSTRING(yystos[yystack.s_mark[1-i]],
   1138  1.1  christos                                            yystack.l_mark[1-i]), stderr);
   1139  1.1  christos                 }
   1140  1.1  christos                 fputc('>', stderr);
   1141  1.1  christos             }
   1142  1.1  christos #endif
   1143  1.1  christos         fputc('\n', stderr);
   1144  1.1  christos     }
   1145  1.1  christos #endif
   1146  1.1  christos     if (yym > 0)
   1147  1.1  christos         yyval = yystack.l_mark[1-yym];
   1148  1.1  christos     else
   1149  1.1  christos         memset(&yyval, 0, sizeof yyval);
   1150  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1151  1.1  christos 
   1152  1.1  christos     /* Perform position reduction */
   1153  1.1  christos     memset(&yyloc, 0, sizeof(yyloc));
   1154  1.1  christos #if YYBTYACC
   1155  1.1  christos     if (!yytrial)
   1156  1.1  christos #endif /* YYBTYACC */
   1157  1.1  christos     {
   1158  1.1  christos         YYLLOC_DEFAULT(yyloc, &yystack.p_mark[1-yym], yym);
   1159  1.1  christos         /* just in case YYERROR is invoked within the action, save
   1160  1.1  christos            the start of the rhs as the error start position */
   1161  1.1  christos         yyerror_loc_range[0] = yystack.p_mark[1-yym];
   1162  1.1  christos     }
   1163  1.1  christos #endif
   1164  1.1  christos 
   1165  1.1  christos     switch (yyn)
   1166  1.1  christos     {
   1167  1.1  christos case 1:
   1168  1.1  christos   if (!yytrial)
   1169  1.1  christos #line 62 "btyacc_destroy1.y"
   1170  1.1  christos 	{ yyval.nlist = yystack.l_mark[-5].nlist; }
   1171  1.1  christos break;
   1172  1.1  christos case 2:
   1173  1.1  christos   if (!yytrial)
   1174  1.1  christos #line 64 "btyacc_destroy1.y"
   1175  1.1  christos 	{ yyval.nlist = yystack.l_mark[-3].nlist; }
   1176  1.1  christos break;
   1177  1.1  christos case 3:
   1178  1.1  christos   if (!yytrial)
   1179  1.1  christos #line 67 "btyacc_destroy1.y"
   1180  1.1  christos 	{ yyval.cval = cGLOBAL; }
   1181  1.1  christos break;
   1182  1.1  christos case 4:
   1183  1.1  christos   if (!yytrial)
   1184  1.1  christos #line 68 "btyacc_destroy1.y"
   1185  1.1  christos 	{ yyval.cval = cLOCAL; }
   1186  1.1  christos break;
   1187  1.1  christos case 5:
   1188  1.1  christos   if (!yytrial)
   1189  1.1  christos #line 71 "btyacc_destroy1.y"
   1190  1.1  christos 	{ yyval.tval = tREAL; }
   1191  1.1  christos break;
   1192  1.1  christos case 6:
   1193  1.1  christos   if (!yytrial)
   1194  1.1  christos #line 72 "btyacc_destroy1.y"
   1195  1.1  christos 	{ yyval.tval = tINTEGER; }
   1196  1.1  christos break;
   1197  1.1  christos case 7:
   1198  1.1  christos   if (!yytrial)
   1199  1.1  christos #line 76 "btyacc_destroy1.y"
   1200  1.1  christos 	{ yyval.nlist->s = mksymbol(yystack.l_mark[-2].tval, yystack.l_mark[-2].cval, yystack.l_mark[0].id);
   1201  1.1  christos 	      yyval.nlist->next = yystack.l_mark[-1].nlist;
   1202  1.1  christos 	    }
   1203  1.1  christos break;
   1204  1.1  christos case 8:
   1205  1.1  christos   if (!yytrial)
   1206  1.1  christos #line 80 "btyacc_destroy1.y"
   1207  1.1  christos 	{ yyval.nlist->s = mksymbol(0, 0, yystack.l_mark[0].id);
   1208  1.1  christos 	      yyval.nlist->next = NULL;
   1209  1.1  christos 	    }
   1210  1.1  christos break;
   1211  1.1  christos case 9:
   1212  1.1  christos   if (!yytrial)
   1213  1.1  christos #line 86 "btyacc_destroy1.y"
   1214  1.1  christos 	{ yyval.nlist = yystack.l_mark[-5].nlist; }
   1215  1.1  christos break;
   1216  1.1  christos #line 1217 "btyacc_destroy1.tab.c"
   1217  1.1  christos     default:
   1218  1.1  christos         break;
   1219  1.1  christos     }
   1220  1.1  christos     yystack.s_mark -= yym;
   1221  1.1  christos     yystate = *yystack.s_mark;
   1222  1.1  christos     yystack.l_mark -= yym;
   1223  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1224  1.1  christos     yystack.p_mark -= yym;
   1225  1.1  christos #endif
   1226  1.1  christos     yym = yylhs[yyn];
   1227  1.1  christos     if (yystate == 0 && yym == 0)
   1228  1.1  christos     {
   1229  1.1  christos #if YYDEBUG
   1230  1.1  christos         if (yydebug)
   1231  1.1  christos         {
   1232  1.1  christos             fprintf(stderr, "%s[%d]: after reduction, ", YYDEBUGSTR, yydepth);
   1233  1.1  christos #ifdef YYSTYPE_TOSTRING
   1234  1.1  christos #if YYBTYACC
   1235  1.1  christos             if (!yytrial)
   1236  1.1  christos #endif /* YYBTYACC */
   1237  1.1  christos                 fprintf(stderr, "result is <%s>, ", YYSTYPE_TOSTRING(yystos[YYFINAL], yyval));
   1238  1.1  christos #endif
   1239  1.1  christos             fprintf(stderr, "shifting from state 0 to final state %d\n", YYFINAL);
   1240  1.1  christos         }
   1241  1.1  christos #endif
   1242  1.1  christos         yystate = YYFINAL;
   1243  1.1  christos         *++yystack.s_mark = YYFINAL;
   1244  1.1  christos         *++yystack.l_mark = yyval;
   1245  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1246  1.1  christos         *++yystack.p_mark = yyloc;
   1247  1.1  christos #endif
   1248  1.1  christos         if (yychar < 0)
   1249  1.1  christos         {
   1250  1.1  christos #if YYBTYACC
   1251  1.1  christos             do {
   1252  1.1  christos             if (yylvp < yylve)
   1253  1.1  christos             {
   1254  1.1  christos                 /* we're currently re-reading tokens */
   1255  1.1  christos                 yylval = *yylvp++;
   1256  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1257  1.1  christos                 yylloc = *yylpp++;
   1258  1.1  christos #endif
   1259  1.1  christos                 yychar = *yylexp++;
   1260  1.1  christos                 break;
   1261  1.1  christos             }
   1262  1.1  christos             if (yyps->save)
   1263  1.1  christos             {
   1264  1.1  christos                 /* in trial mode; save scanner results for future parse attempts */
   1265  1.1  christos                 if (yylvp == yylvlim)
   1266  1.1  christos                 {   /* Enlarge lexical value queue */
   1267  1.1  christos                     size_t p = (size_t) (yylvp - yylvals);
   1268  1.1  christos                     size_t s = (size_t) (yylvlim - yylvals);
   1269  1.1  christos 
   1270  1.1  christos                     s += YYLVQUEUEGROWTH;
   1271  1.1  christos                     if ((yylexemes = (short *)   realloc(yylexemes, s * sizeof(short))) == NULL)
   1272  1.1  christos                         goto yyenomem;
   1273  1.1  christos                     if ((yylvals   = (YYSTYPE *) realloc(yylvals, s * sizeof(YYSTYPE))) == NULL)
   1274  1.1  christos                         goto yyenomem;
   1275  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1276  1.1  christos                     if ((yylpsns   = (YYLTYPE *) realloc(yylpsns, s * sizeof(YYLTYPE))) == NULL)
   1277  1.1  christos                         goto yyenomem;
   1278  1.1  christos #endif
   1279  1.1  christos                     yylvp   = yylve = yylvals + p;
   1280  1.1  christos                     yylvlim = yylvals + s;
   1281  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1282  1.1  christos                     yylpp   = yylpe = yylpsns + p;
   1283  1.1  christos                     yylplim = yylpsns + s;
   1284  1.1  christos #endif
   1285  1.1  christos                     yylexp  = yylexemes + p;
   1286  1.1  christos                 }
   1287  1.1  christos                 *yylexp = (short) YYLEX;
   1288  1.1  christos                 *yylvp++ = yylval;
   1289  1.1  christos                 yylve++;
   1290  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1291  1.1  christos                 *yylpp++ = yylloc;
   1292  1.1  christos                 yylpe++;
   1293  1.1  christos #endif
   1294  1.1  christos                 yychar = *yylexp++;
   1295  1.1  christos                 break;
   1296  1.1  christos             }
   1297  1.1  christos             /* normal operation, no conflict encountered */
   1298  1.1  christos #endif /* YYBTYACC */
   1299  1.1  christos             yychar = YYLEX;
   1300  1.1  christos #if YYBTYACC
   1301  1.1  christos             } while (0);
   1302  1.1  christos #endif /* YYBTYACC */
   1303  1.1  christos             if (yychar < 0) yychar = YYEOF;
   1304  1.1  christos             /* if ((yychar = YYLEX) < 0) yychar = YYEOF; */
   1305  1.1  christos #if YYDEBUG
   1306  1.1  christos             if (yydebug)
   1307  1.1  christos             {
   1308  1.1  christos                 yys = yyname[YYTRANSLATE(yychar)];
   1309  1.1  christos                 fprintf(stderr, "%s[%d]: state %d, reading %d (%s)\n",
   1310  1.1  christos                                 YYDEBUGSTR, yydepth, YYFINAL, yychar, yys);
   1311  1.1  christos             }
   1312  1.1  christos #endif
   1313  1.1  christos         }
   1314  1.1  christos         if (yychar == YYEOF) goto yyaccept;
   1315  1.1  christos         goto yyloop;
   1316  1.1  christos     }
   1317  1.1  christos     if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 &&
   1318  1.1  christos             yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate)
   1319  1.1  christos         yystate = yytable[yyn];
   1320  1.1  christos     else
   1321  1.1  christos         yystate = yydgoto[yym];
   1322  1.1  christos #if YYDEBUG
   1323  1.1  christos     if (yydebug)
   1324  1.1  christos     {
   1325  1.1  christos         fprintf(stderr, "%s[%d]: after reduction, ", YYDEBUGSTR, yydepth);
   1326  1.1  christos #ifdef YYSTYPE_TOSTRING
   1327  1.1  christos #if YYBTYACC
   1328  1.1  christos         if (!yytrial)
   1329  1.1  christos #endif /* YYBTYACC */
   1330  1.1  christos             fprintf(stderr, "result is <%s>, ", YYSTYPE_TOSTRING(yystos[yystate], yyval));
   1331  1.1  christos #endif
   1332  1.1  christos         fprintf(stderr, "shifting from state %d to state %d\n", *yystack.s_mark, yystate);
   1333  1.1  christos     }
   1334  1.1  christos #endif
   1335  1.1  christos     if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
   1336  1.1  christos     *++yystack.s_mark = (short) yystate;
   1337  1.1  christos     *++yystack.l_mark = yyval;
   1338  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1339  1.1  christos     *++yystack.p_mark = yyloc;
   1340  1.1  christos #endif
   1341  1.1  christos     goto yyloop;
   1342  1.1  christos #if YYBTYACC
   1343  1.1  christos 
   1344  1.1  christos     /* Reduction declares that this path is valid. Set yypath and do a full parse */
   1345  1.1  christos yyvalid:
   1346  1.1  christos     if (yypath) YYABORT;
   1347  1.1  christos     while (yyps->save)
   1348  1.1  christos     {
   1349  1.1  christos         YYParseState *save = yyps->save;
   1350  1.1  christos         yyps->save = save->save;
   1351  1.1  christos         save->save = yypath;
   1352  1.1  christos         yypath = save;
   1353  1.1  christos     }
   1354  1.1  christos #if YYDEBUG
   1355  1.1  christos     if (yydebug)
   1356  1.1  christos         fprintf(stderr, "%s[%d]: state %d, CONFLICT trial successful, backtracking to state %d, %d tokens\n",
   1357  1.1  christos                         YYDEBUGSTR, yydepth, yystate, yypath->state, (int)(yylvp - yylvals - yypath->lexeme));
   1358  1.1  christos #endif
   1359  1.1  christos     if (yyerrctx)
   1360  1.1  christos     {
   1361  1.1  christos         yyFreeState(yyerrctx);
   1362  1.1  christos         yyerrctx = NULL;
   1363  1.1  christos     }
   1364  1.1  christos     yylvp          = yylvals + yypath->lexeme;
   1365  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1366  1.1  christos     yylpp          = yylpsns + yypath->lexeme;
   1367  1.1  christos #endif
   1368  1.1  christos     yylexp         = yylexemes + yypath->lexeme;
   1369  1.1  christos     yychar         = YYEMPTY;
   1370  1.1  christos     yystack.s_mark = yystack.s_base + (yypath->yystack.s_mark - yypath->yystack.s_base);
   1371  1.1  christos     memcpy (yystack.s_base, yypath->yystack.s_base, (size_t) (yystack.s_mark - yystack.s_base + 1) * sizeof(short));
   1372  1.1  christos     yystack.l_mark = yystack.l_base + (yypath->yystack.l_mark - yypath->yystack.l_base);
   1373  1.1  christos     memcpy (yystack.l_base, yypath->yystack.l_base, (size_t) (yystack.l_mark - yystack.l_base + 1) * sizeof(YYSTYPE));
   1374  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1375  1.1  christos     yystack.p_mark = yystack.p_base + (yypath->yystack.p_mark - yypath->yystack.p_base);
   1376  1.1  christos     memcpy (yystack.p_base, yypath->yystack.p_base, (size_t) (yystack.p_mark - yystack.p_base + 1) * sizeof(YYLTYPE));
   1377  1.1  christos #endif
   1378  1.1  christos     yystate        = yypath->state;
   1379  1.1  christos     goto yyloop;
   1380  1.1  christos #endif /* YYBTYACC */
   1381  1.1  christos 
   1382  1.1  christos yyoverflow:
   1383  1.1  christos     YYERROR_CALL("yacc stack overflow");
   1384  1.1  christos #if YYBTYACC
   1385  1.1  christos     goto yyabort_nomem;
   1386  1.1  christos yyenomem:
   1387  1.1  christos     YYERROR_CALL("memory exhausted");
   1388  1.1  christos yyabort_nomem:
   1389  1.1  christos #endif /* YYBTYACC */
   1390  1.1  christos     yyresult = 2;
   1391  1.1  christos     goto yyreturn;
   1392  1.1  christos 
   1393  1.1  christos yyabort:
   1394  1.1  christos     yyresult = 1;
   1395  1.1  christos     goto yyreturn;
   1396  1.1  christos 
   1397  1.1  christos yyaccept:
   1398  1.1  christos #if YYBTYACC
   1399  1.1  christos     if (yyps->save) goto yyvalid;
   1400  1.1  christos #endif /* YYBTYACC */
   1401  1.1  christos     yyresult = 0;
   1402  1.1  christos 
   1403  1.1  christos yyreturn:
   1404  1.1  christos #if defined(YYDESTRUCT_CALL)
   1405  1.1  christos     if (yychar != YYEOF && yychar != YYEMPTY)
   1406  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1407  1.1  christos         YYDESTRUCT_CALL("cleanup: discarding token", yychar, &yylval, &yylloc);
   1408  1.1  christos #else
   1409  1.1  christos         YYDESTRUCT_CALL("cleanup: discarding token", yychar, &yylval);
   1410  1.1  christos #endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
   1411  1.1  christos 
   1412  1.1  christos     {
   1413  1.1  christos         YYSTYPE *pv;
   1414  1.1  christos #if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)
   1415  1.1  christos         YYLTYPE *pp;
   1416  1.1  christos 
   1417  1.1  christos         for (pv = yystack.l_base, pp = yystack.p_base; pv <= yystack.l_mark; ++pv, ++pp)
   1418  1.1  christos              YYDESTRUCT_CALL("cleanup: discarding state",
   1419  1.1  christos                              yystos[*(yystack.s_base + (pv - yystack.l_base))], pv, pp);
   1420  1.1  christos #else
   1421  1.1  christos         for (pv = yystack.l_base; pv <= yystack.l_mark; ++pv)
   1422  1.1  christos              YYDESTRUCT_CALL("cleanup: discarding state",
   1423  1.1  christos                              yystos[*(yystack.s_base + (pv - yystack.l_base))], pv);
   1424  1.1  christos #endif /* defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED) */
   1425  1.1  christos     }
   1426  1.1  christos #endif /* defined(YYDESTRUCT_CALL) */
   1427  1.1  christos 
   1428  1.1  christos #if YYBTYACC
   1429  1.1  christos     if (yyerrctx)
   1430  1.1  christos     {
   1431  1.1  christos         yyFreeState(yyerrctx);
   1432  1.1  christos         yyerrctx = NULL;
   1433  1.1  christos     }
   1434  1.1  christos     while (yyps)
   1435  1.1  christos     {
   1436  1.1  christos         YYParseState *save = yyps;
   1437  1.1  christos         yyps = save->save;
   1438  1.1  christos         save->save = NULL;
   1439  1.1  christos         yyFreeState(save);
   1440  1.1  christos     }
   1441  1.1  christos     while (yypath)
   1442  1.1  christos     {
   1443  1.1  christos         YYParseState *save = yypath;
   1444  1.1  christos         yypath = save->save;
   1445  1.1  christos         save->save = NULL;
   1446  1.1  christos         yyFreeState(save);
   1447  1.1  christos     }
   1448  1.1  christos #endif /* YYBTYACC */
   1449  1.1  christos     yyfreestack(&yystack);
   1450  1.1  christos     return (yyresult);
   1451  1.1  christos }
   1452