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