[BACK]Return to ytab.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / parse

Annotation of OpenXM_contrib2/asir2000/parse/ytab.c, Revision 1.8

1.8     ! noro        1: /* A Bison parser, made by GNU Bison 1.875b.  */
1.5       noro        2:
1.8     ! noro        3: /* Skeleton parser for Yacc-like parsing with Bison,
        !             4:    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
1.5       noro        5:
1.8     ! noro        6:    This program is free software; you can redistribute it and/or modify
        !             7:    it under the terms of the GNU General Public License as published by
        !             8:    the Free Software Foundation; either version 2, or (at your option)
        !             9:    any later version.
        !            10:
        !            11:    This program is distributed in the hope that it will be useful,
        !            12:    but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            13:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            14:    GNU General Public License for more details.
        !            15:
        !            16:    You should have received a copy of the GNU General Public License
        !            17:    along with this program; if not, write to the Free Software
        !            18:    Foundation, Inc., 59 Temple Place - Suite 330,
        !            19:    Boston, MA 02111-1307, USA.  */
        !            20:
        !            21: /* As a special exception, when this file is copied by Bison into a
        !            22:    Bison output file, you may use that output file without restriction.
        !            23:    This special exception was added by the Free Software Foundation
        !            24:    in version 1.24 of Bison.  */
        !            25:
        !            26: /* Written by Richard Stallman by simplifying the original so called
        !            27:    ``semantic'' parser.  */
        !            28:
        !            29: /* All symbols defined below should begin with yy or YY, to avoid
        !            30:    infringing on user name space.  This should be done even for local
        !            31:    variables, as they might otherwise be expanded by user macros.
        !            32:    There are some unavoidable exceptions within include files to
        !            33:    define necessary library symbols; they are noted "INFRINGES ON
        !            34:    USER NAME SPACE" below.  */
        !            35:
        !            36: /* Identify Bison output.  */
        !            37: #define YYBISON 1
        !            38:
        !            39: /* Skeleton name.  */
        !            40: #define YYSKELETON_NAME "yacc.c"
        !            41:
        !            42: /* Pure parsers.  */
        !            43: #define YYPURE 0
1.5       noro       44:
1.8     ! noro       45: /* Using locations.  */
        !            46: #define YYLSP_NEEDED 0
        !            47:
        !            48:
        !            49:
        !            50: /* Tokens.  */
        !            51: #ifndef YYTOKENTYPE
        !            52: # define YYTOKENTYPE
        !            53:    /* Put the tokens into the symbol table, so that GDB and other debuggers
        !            54:       know about them.  */
        !            55:    enum yytokentype {
        !            56:      STRUCT = 258,
        !            57:      POINT = 259,
        !            58:      NEWSTRUCT = 260,
        !            59:      ANS = 261,
        !            60:      FDEF = 262,
        !            61:      PFDEF = 263,
        !            62:      MODDEF = 264,
        !            63:      MODEND = 265,
        !            64:      GLOBAL = 266,
        !            65:      MGLOBAL = 267,
        !            66:      LOCAL = 268,
        !            67:      LOCALF = 269,
        !            68:      CMP = 270,
        !            69:      OR = 271,
        !            70:      AND = 272,
        !            71:      CAR = 273,
        !            72:      CDR = 274,
        !            73:      QUOTED = 275,
        !            74:      COLONCOLON = 276,
        !            75:      DO = 277,
        !            76:      WHILE = 278,
        !            77:      FOR = 279,
        !            78:      IF = 280,
        !            79:      ELSE = 281,
        !            80:      BREAK = 282,
        !            81:      RETURN = 283,
        !            82:      CONTINUE = 284,
        !            83:      PARIF = 285,
        !            84:      MAP = 286,
        !            85:      RECMAP = 287,
        !            86:      TIMER = 288,
        !            87:      GF2NGEN = 289,
        !            88:      GFPNGEN = 290,
        !            89:      GFSNGEN = 291,
        !            90:      GETOPT = 292,
        !            91:      FOP_AND = 293,
        !            92:      FOP_OR = 294,
        !            93:      FOP_IMPL = 295,
        !            94:      FOP_REPL = 296,
        !            95:      FOP_EQUIV = 297,
        !            96:      FOP_NOT = 298,
        !            97:      LOP = 299,
        !            98:      FORMULA = 300,
        !            99:      UCASE = 301,
        !           100:      LCASE = 302,
        !           101:      STR = 303,
        !           102:      SELF = 304,
        !           103:      BOPASS = 305,
        !           104:      PLUS = 306,
        !           105:      MINUS = 307
        !           106:    };
        !           107: #endif
        !           108: #define STRUCT 258
        !           109: #define POINT 259
        !           110: #define NEWSTRUCT 260
        !           111: #define ANS 261
        !           112: #define FDEF 262
        !           113: #define PFDEF 263
        !           114: #define MODDEF 264
        !           115: #define MODEND 265
        !           116: #define GLOBAL 266
        !           117: #define MGLOBAL 267
        !           118: #define LOCAL 268
        !           119: #define LOCALF 269
        !           120: #define CMP 270
        !           121: #define OR 271
        !           122: #define AND 272
        !           123: #define CAR 273
        !           124: #define CDR 274
        !           125: #define QUOTED 275
        !           126: #define COLONCOLON 276
        !           127: #define DO 277
        !           128: #define WHILE 278
        !           129: #define FOR 279
        !           130: #define IF 280
        !           131: #define ELSE 281
        !           132: #define BREAK 282
        !           133: #define RETURN 283
        !           134: #define CONTINUE 284
        !           135: #define PARIF 285
        !           136: #define MAP 286
        !           137: #define RECMAP 287
        !           138: #define TIMER 288
        !           139: #define GF2NGEN 289
        !           140: #define GFPNGEN 290
        !           141: #define GFSNGEN 291
        !           142: #define GETOPT 292
        !           143: #define FOP_AND 293
        !           144: #define FOP_OR 294
        !           145: #define FOP_IMPL 295
        !           146: #define FOP_REPL 296
        !           147: #define FOP_EQUIV 297
        !           148: #define FOP_NOT 298
        !           149: #define LOP 299
        !           150: #define FORMULA 300
        !           151: #define UCASE 301
        !           152: #define LCASE 302
        !           153: #define STR 303
        !           154: #define SELF 304
        !           155: #define BOPASS 305
        !           156: #define PLUS 306
        !           157: #define MINUS 307
        !           158:
        !           159:
        !           160:
        !           161:
        !           162: /* Copy the first part of user declarations.  */
1.5       noro      163: #line 50 "parse.y"
                    164:
1.1       noro      165: #define malloc(x) GC_malloc(x)
                    166: #define realloc(x,y) GC_realloc(x,y)
                    167: #define free(x) GC_free(x)
                    168:
                    169: #if defined(TOWNS)
                    170: #include <alloca.h>
                    171: #endif
                    172: #include <ctype.h>
                    173: #include "ca.h"
                    174: #include <sys/types.h>
                    175: #include <sys/stat.h>
                    176: #include "parse.h"
                    177:
                    178: #define NOPR (prresult=0)
                    179:
1.4       noro      180: extern int gdef,mgdef,ldef;
1.1       noro      181: extern SNODE parse_snode;
1.4       noro      182: extern int main_parser, allow_create_var;
1.1       noro      183:
1.8     ! noro      184: int prresult,saveresult;
1.1       noro      185:
                    186: static int ind;
                    187: static FNODE t;
                    188: static NODE a,b;
                    189: static NODE2 a2;
                    190: static pointer val;
1.2       noro      191: static QUOTE quote;
1.1       noro      192: extern jmp_buf env;
1.5       noro      193:
1.8     ! noro      194:
        !           195: /* Enabling traces.  */
        !           196: #ifndef YYDEBUG
        !           197: # define YYDEBUG 0
        !           198: #endif
        !           199:
        !           200: /* Enabling verbose error messages.  */
        !           201: #ifdef YYERROR_VERBOSE
        !           202: # undef YYERROR_VERBOSE
        !           203: # define YYERROR_VERBOSE 1
        !           204: #else
        !           205: # define YYERROR_VERBOSE 0
        !           206: #endif
        !           207:
        !           208: #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
1.2       noro      209: #line 83 "parse.y"
1.8     ! noro      210: typedef union YYSTYPE {
1.1       noro      211:        FNODE f;
                    212:        SNODE s;
                    213:        NODE n;
                    214:        NODE2 n2;
                    215:        int i;
                    216:        pointer p;
1.8     ! noro      217: } YYSTYPE;
        !           218: /* Line 191 of yacc.c.  */
        !           219: #line 220 "y.tab.c"
        !           220: # define yystype YYSTYPE /* obsolescent; will be withdrawn */
        !           221: # define YYSTYPE_IS_DECLARED 1
1.5       noro      222: # define YYSTYPE_IS_TRIVIAL 1
                    223: #endif
1.8     ! noro      224:
        !           225:
        !           226:
        !           227: /* Copy the second part of user declarations.  */
        !           228:
        !           229:
        !           230: /* Line 214 of yacc.c.  */
        !           231: #line 232 "y.tab.c"
        !           232:
        !           233: #if ! defined (yyoverflow) || YYERROR_VERBOSE
        !           234:
        !           235: /* The parser invokes alloca or malloc; define the necessary symbols.  */
        !           236:
        !           237: # if YYSTACK_USE_ALLOCA
        !           238: #  define YYSTACK_ALLOC alloca
        !           239: # else
        !           240: #  ifndef YYSTACK_USE_ALLOCA
        !           241: #   if defined (alloca) || defined (_ALLOCA_H)
        !           242: #    define YYSTACK_ALLOC alloca
        !           243: #   else
        !           244: #    ifdef __GNUC__
        !           245: #     define YYSTACK_ALLOC __builtin_alloca
        !           246: #    endif
        !           247: #   endif
        !           248: #  endif
        !           249: # endif
        !           250:
        !           251: # ifdef YYSTACK_ALLOC
        !           252:    /* Pacify GCC's `empty if-body' warning. */
        !           253: #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
        !           254: # else
        !           255: #  if defined (__STDC__) || defined (__cplusplus)
        !           256: #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
        !           257: #   define YYSIZE_T size_t
        !           258: #  endif
        !           259: #  define YYSTACK_ALLOC malloc
        !           260: #  define YYSTACK_FREE free
        !           261: # endif
        !           262: #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
        !           263:
        !           264:
        !           265: #if (! defined (yyoverflow) \
        !           266:      && (! defined (__cplusplus) \
        !           267:         || (YYSTYPE_IS_TRIVIAL)))
        !           268:
        !           269: /* A type that is properly aligned for any stack member.  */
        !           270: union yyalloc
        !           271: {
        !           272:   short yyss;
        !           273:   YYSTYPE yyvs;
        !           274:   };
        !           275:
        !           276: /* The size of the maximum gap between one aligned stack and the next.  */
        !           277: # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
        !           278:
        !           279: /* The size of an array large to enough to hold all stacks, each with
        !           280:    N elements.  */
        !           281: # define YYSTACK_BYTES(N) \
        !           282:      ((N) * (sizeof (short) + sizeof (YYSTYPE))                                \
        !           283:       + YYSTACK_GAP_MAXIMUM)
        !           284:
        !           285: /* Copy COUNT objects from FROM to TO.  The source and destination do
        !           286:    not overlap.  */
        !           287: # ifndef YYCOPY
        !           288: #  if 1 < __GNUC__
        !           289: #   define YYCOPY(To, From, Count) \
        !           290:       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
        !           291: #  else
        !           292: #   define YYCOPY(To, From, Count)             \
        !           293:       do                                       \
        !           294:        {                                       \
        !           295:          register YYSIZE_T yyi;                \
        !           296:          for (yyi = 0; yyi < (Count); yyi++)   \
        !           297:            (To)[yyi] = (From)[yyi];            \
        !           298:        }                                       \
        !           299:       while (0)
        !           300: #  endif
        !           301: # endif
        !           302:
        !           303: /* Relocate STACK from its old location to the new one.  The
        !           304:    local variables YYSIZE and YYSTACKSIZE give the old and new number of
        !           305:    elements in the stack, and YYPTR gives the new location of the
        !           306:    stack.  Advance YYPTR to a properly aligned location for the next
        !           307:    stack.  */
        !           308: # define YYSTACK_RELOCATE(Stack)                                       \
        !           309:     do                                                                 \
        !           310:       {                                                                        \
        !           311:        YYSIZE_T yynewbytes;                                            \
        !           312:        YYCOPY (&yyptr->Stack, Stack, yysize);                          \
        !           313:        Stack = &yyptr->Stack;                                          \
        !           314:        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
        !           315:        yyptr += yynewbytes / sizeof (*yyptr);                          \
        !           316:       }                                                                        \
        !           317:     while (0)
        !           318:
1.5       noro      319: #endif
                    320:
1.8     ! noro      321: #if defined (__STDC__) || defined (__cplusplus)
        !           322:    typedef signed char yysigned_char;
        !           323: #else
        !           324:    typedef short yysigned_char;
        !           325: #endif
1.5       noro      326:
1.8     ! noro      327: /* YYFINAL -- State number of the termination state. */
        !           328: #define YYFINAL  101
        !           329: /* YYLAST -- Last index in YYTABLE.  */
        !           330: #define YYLAST   1290
        !           331:
        !           332: /* YYNTOKENS -- Number of terminals. */
        !           333: #define YYNTOKENS  77
        !           334: /* YYNNTS -- Number of nonterminals. */
        !           335: #define YYNNTS  26
        !           336: /* YYNRULES -- Number of rules. */
        !           337: #define YYNRULES  113
        !           338: /* YYNRULES -- Number of states. */
        !           339: #define YYNSTATES  280
        !           340:
        !           341: /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
        !           342: #define YYUNDEFTOK  2
        !           343: #define YYMAXUTOK   307
1.5       noro      344:
1.8     ! noro      345: #define YYTRANSLATE(YYX)                                               \
        !           346:   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1.5       noro      347:
1.8     ! noro      348: /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
        !           349: static const unsigned char yytranslate[] =
1.5       noro      350: {
                    351:        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    352:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    353:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    354:        2,     2,     2,    64,     2,     2,    70,    56,    61,     2,
                    355:       67,    68,    53,    51,    71,    52,     2,    54,     2,     2,
                    356:        2,     2,     2,     2,     2,     2,     2,     2,    59,    69,
                    357:       75,    57,    76,    58,     2,     2,     2,     2,     2,     2,
                    358:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    359:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    360:        2,    73,     2,    74,    55,     2,    60,     2,     2,     2,
                    361:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    362:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    363:        2,     2,     2,    65,    72,    66,     2,     2,     2,     2,
                    364:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    365:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    366:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    367:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    368:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    369:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    370:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    371:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    372:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    373:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    374:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
                    375:        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1.8     ! noro      376:        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
        !           377:        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
        !           378:       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
        !           379:       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
        !           380:       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
        !           381:       45,    46,    47,    48,    49,    50,    62,    63
1.5       noro      382: };
                    383:
                    384: #if YYDEBUG
1.8     ! noro      385: /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
        !           386:    YYRHS.  */
        !           387: static const unsigned short yyprhs[] =
        !           388: {
        !           389:        0,     0,     3,     5,     7,     8,     9,    15,    16,    17,
        !           390:       23,    24,    25,    31,    35,    42,    45,    47,    50,    53,
        !           391:       56,    60,    66,    74,    84,    90,    98,   107,   114,   115,
        !           392:      116,   117,   130,   134,   137,   140,   142,   144,   145,   147,
        !           393:      151,   153,   157,   159,   163,   165,   169,   170,   173,   174,
        !           394:      176,   178,   182,   184,   188,   190,   192,   196,   198,   200,
        !           395:      202,   204,   206,   208,   210,   215,   222,   229,   236,   244,
        !           396:      249,   253,   262,   267,   274,   282,   287,   292,   297,   301,
        !           397:      303,   308,   312,   314,   320,   324,   328,   331,   334,   338,
        !           398:      341,   344,   348,   352,   356,   360,   364,   368,   372,   375,
        !           399:      379,   383,   386,   390,   394,   398,   402,   406,   410,   416,
        !           400:      420,   425,   430,   436
1.5       noro      401: };
1.8     ! noro      402:
        !           403: /* YYRHS -- A `-1'-separated list of the rules' RHS. */
        !           404: static const yysigned_char yyrhs[] =
1.5       noro      405: {
1.8     ! noro      406:       78,     0,    -1,    79,    -1,    89,    -1,    -1,    -1,    11,
        !           407:       80,    94,    81,    89,    -1,    -1,    -1,    12,    82,    94,
        !           408:       83,    89,    -1,    -1,    -1,    13,    84,    94,    85,    89,
        !           409:       -1,    14,    93,    89,    -1,     3,    99,    65,    92,    66,
        !           410:       89,    -1,   102,    89,    -1,    91,    -1,    27,    89,    -1,
        !           411:       29,    89,    -1,    28,    89,    -1,    28,   102,    89,    -1,
        !           412:       25,    67,    96,    68,    79,    -1,    25,    67,    96,    68,
        !           413:       79,    26,    79,    -1,    24,    67,    96,    69,    96,    69,
        !           414:       96,    68,    79,    -1,    23,    67,    96,    68,    79,    -1,
        !           415:       22,    79,    23,    67,    96,    68,    89,    -1,    47,    67,
        !           416:       96,    68,    59,    57,   102,    89,    -1,     8,    47,    67,
        !           417:       96,    68,    89,    -1,    -1,    -1,    -1,     7,    47,    86,
        !           418:       67,    87,    96,    88,    68,    90,    65,    95,    66,    -1,
        !           419:        9,    47,    89,    -1,    10,    89,    -1,     1,    89,    -1,
        !           420:       69,    -1,    70,    -1,    -1,    48,    -1,    65,    95,    66,
        !           421:       -1,    99,    -1,    92,    71,    99,    -1,    47,    -1,    93,
        !           422:       71,    47,    -1,    46,    -1,    94,    71,    46,    -1,    -1,
        !           423:       95,    79,    -1,    -1,    97,    -1,   102,    -1,    97,    71,
        !           424:      102,    -1,   100,    -1,    98,    71,   100,    -1,    46,    -1,
        !           425:       47,    -1,    99,    57,   102,    -1,    48,    -1,    45,    -1,
        !           426:        6,    -1,    34,    -1,    35,    -1,    36,    -1,    47,    -1,
        !           427:       47,    67,    96,    68,    -1,    47,    67,    96,    72,    98,
        !           428:       68,    -1,    31,    67,    47,    71,    96,    68,    -1,    32,
        !           429:       67,    47,    71,    96,    68,    -1,    47,    65,    96,    66,
        !           430:       67,    96,    68,    -1,    37,    67,    99,    68,    -1,    37,
        !           431:       67,    68,    -1,    33,    67,   102,    71,   102,    71,   102,
        !           432:       68,    -1,    30,    67,    47,    68,    -1,    30,    67,    47,
        !           433:       71,    96,    68,    -1,    67,    53,   102,    68,    67,    96,
        !           434:       68,    -1,    46,    67,    96,    68,    -1,    18,    67,   102,
        !           435:       68,    -1,    19,    67,   102,    68,    -1,    67,   102,    68,
        !           436:       -1,    46,    -1,   101,    73,   102,    74,    -1,   101,     4,
        !           437:       99,    -1,   101,    -1,    67,     3,    99,    68,   101,    -1,
        !           438:      102,    57,   102,    -1,   102,    50,   102,    -1,   102,    49,
        !           439:       -1,    49,   102,    -1,    73,    96,    74,    -1,    51,   102,
        !           440:       -1,    52,   102,    -1,   102,    51,   102,    -1,   102,    52,
        !           441:      102,    -1,   102,    53,   102,    -1,   102,    54,   102,    -1,
        !           442:      102,    56,   102,    -1,   102,    55,   102,    -1,   102,    15,
        !           443:      102,    -1,    64,   102,    -1,   102,    16,   102,    -1,   102,
        !           444:       17,   102,    -1,    43,   102,    -1,   102,    38,   102,    -1,
        !           445:      102,    39,   102,    -1,   102,    40,   102,    -1,   102,    41,
        !           446:      102,    -1,   102,    42,   102,    -1,   102,    44,   102,    -1,
        !           447:      102,    58,   102,    59,   102,    -1,    75,    96,    76,    -1,
        !           448:        5,    67,    99,    68,    -1,    20,    67,   102,    68,    -1,
        !           449:       73,    96,    72,   102,    74,    -1,    60,   102,    -1
1.1       noro      450: };
1.5       noro      451:
1.8     ! noro      452: /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
        !           453: static const unsigned short yyrline[] =
1.5       noro      454: {
1.8     ! noro      455:        0,   130,   130,   139,   141,   141,   141,   143,   143,   143,
        !           456:      145,   145,   145,   147,   149,   151,   153,   155,   157,   159,
        !           457:      161,   163,   165,   167,   169,   171,   173,   175,   177,   177,
        !           458:      177,   177,   183,   189,   191,   194,   196,   200,   201,   204,
        !           459:      207,   209,   212,   214,   217,   219,   223,   224,   228,   229,
        !           460:      232,   234,   237,   239,   242,   244,   247,   250,   252,   254,
        !           461:      256,   258,   260,   262,   283,   290,   297,   303,   309,   314,
        !           462:      318,   322,   326,   333,   340,   344,   358,   360,   362,   364,
        !           463:      377,   387,   390,   392,   394,   396,   398,   400,   402,   404,
        !           464:      406,   408,   410,   412,   414,   416,   418,   420,   422,   424,
        !           465:      426,   428,   430,   432,   434,   436,   438,   440,   442,   444,
        !           466:      446,   448,   450,   452
1.1       noro      467: };
1.5       noro      468: #endif
                    469:
1.8     ! noro      470: #if YYDEBUG || YYERROR_VERBOSE
        !           471: /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
        !           472:    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1.5       noro      473: static const char *const yytname[] =
                    474: {
1.8     ! noro      475:   "$end", "error", "$undefined", "STRUCT", "POINT", "NEWSTRUCT", "ANS",
1.5       noro      476:   "FDEF", "PFDEF", "MODDEF", "MODEND", "GLOBAL", "MGLOBAL", "LOCAL",
                    477:   "LOCALF", "CMP", "OR", "AND", "CAR", "CDR", "QUOTED", "COLONCOLON",
                    478:   "DO", "WHILE", "FOR", "IF", "ELSE", "BREAK", "RETURN", "CONTINUE",
                    479:   "PARIF", "MAP", "RECMAP", "TIMER", "GF2NGEN", "GFPNGEN", "GFSNGEN",
                    480:   "GETOPT", "FOP_AND", "FOP_OR", "FOP_IMPL", "FOP_REPL", "FOP_EQUIV",
                    481:   "FOP_NOT", "LOP", "FORMULA", "UCASE", "LCASE", "STR", "SELF", "BOPASS",
                    482:   "'+'", "'-'", "'*'", "'/'", "'^'", "'%'", "'='", "'?'", "':'", "'`'",
                    483:   "'&'", "PLUS", "MINUS", "'!'", "'{'", "'}'", "'('", "')'", "';'", "'$'",
1.8     ! noro      484:   "','", "'|'", "'['", "']'", "'<'", "'>'", "$accept", "start", "stat",
        !           485:   "@1", "@2", "@3", "@4", "@5", "@6", "@7", "@8", "@9", "tail", "desc",
        !           486:   "complex", "members", "vars", "pvars", "stats", "node", "_node",
        !           487:   "optlist", "rawstr", "opt", "pexpr", "expr", 0
1.1       noro      488: };
1.5       noro      489: #endif
                    490:
1.8     ! noro      491: # ifdef YYPRINT
        !           492: /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
        !           493:    token YYLEX-NUM.  */
        !           494: static const unsigned short yytoknum[] =
        !           495: {
        !           496:        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
        !           497:      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
        !           498:      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
        !           499:      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
        !           500:      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
        !           501:      305,    43,    45,    42,    47,    94,    37,    61,    63,    58,
        !           502:       96,    38,   306,   307,    33,   123,   125,    40,    41,    59,
        !           503:       36,    44,   124,    91,    93,    60,    62
        !           504: };
        !           505: # endif
        !           506:
        !           507: /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
        !           508: static const unsigned char yyr1[] =
1.5       noro      509: {
1.8     ! noro      510:        0,    77,    78,    79,    80,    81,    79,    82,    83,    79,
        !           511:       84,    85,    79,    79,    79,    79,    79,    79,    79,    79,
        !           512:       79,    79,    79,    79,    79,    79,    79,    79,    86,    87,
        !           513:       88,    79,    79,    79,    79,    89,    89,    90,    90,    91,
        !           514:       92,    92,    93,    93,    94,    94,    95,    95,    96,    96,
        !           515:       97,    97,    98,    98,    99,    99,   100,   101,   101,   101,
1.5       noro      516:      101,   101,   101,   101,   101,   101,   101,   101,   101,   101,
                    517:      101,   101,   101,   101,   101,   101,   101,   101,   101,   101,
1.8     ! noro      518:      101,   101,   102,   102,   102,   102,   102,   102,   102,   102,
        !           519:      102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
        !           520:      102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
        !           521:      102,   102,   102,   102
1.1       noro      522: };
1.5       noro      523:
1.8     ! noro      524: /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
        !           525: static const unsigned char yyr2[] =
1.5       noro      526: {
1.8     ! noro      527:        0,     2,     1,     1,     0,     0,     5,     0,     0,     5,
        !           528:        0,     0,     5,     3,     6,     2,     1,     2,     2,     2,
        !           529:        3,     5,     7,     9,     5,     7,     8,     6,     0,     0,
        !           530:        0,    12,     3,     2,     2,     1,     1,     0,     1,     3,
        !           531:        1,     3,     1,     3,     1,     3,     0,     2,     0,     1,
        !           532:        1,     3,     1,     3,     1,     1,     3,     1,     1,     1,
        !           533:        1,     1,     1,     1,     4,     6,     6,     6,     7,     4,
        !           534:        3,     8,     4,     6,     7,     4,     4,     4,     3,     1,
        !           535:        4,     3,     1,     5,     3,     3,     2,     2,     3,     2,
        !           536:        2,     3,     3,     3,     3,     3,     3,     3,     2,     3,
        !           537:        3,     2,     3,     3,     3,     3,     3,     3,     5,     3,
        !           538:        4,     4,     5,     2
1.1       noro      539: };
1.5       noro      540:
1.8     ! noro      541: /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
        !           542:    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
        !           543:    means the default is an error.  */
        !           544: static const unsigned char yydefact[] =
        !           545: {
        !           546:        0,     0,     0,     0,    59,     0,     0,     0,     0,     4,
        !           547:        7,    10,     0,     0,     0,     0,     0,     0,     0,     0,
        !           548:        0,     0,     0,     0,     0,     0,     0,    60,    61,    62,
        !           549:        0,     0,    58,    79,    63,    57,     0,     0,     0,     0,
        !           550:        0,    46,     0,    35,    36,    48,    48,     0,     2,     3,
        !           551:       16,    82,     0,    34,    54,    55,     0,     0,    28,     0,
        !           552:        0,    33,     0,     0,     0,    42,     0,     0,     0,     0,
        !           553:        0,    48,    48,    48,    17,    63,    19,     0,    18,     0,
        !           554:        0,     0,     0,     0,   101,    48,    48,    48,    87,    89,
        !           555:       90,   113,    98,     0,     0,     0,     0,     0,    49,    50,
        !           556:        0,     1,     0,     0,     0,     0,     0,     0,     0,     0,
        !           557:        0,     0,     0,    86,     0,     0,     0,     0,     0,     0,
        !           558:        0,     0,     0,    15,     0,     0,     0,    48,    32,    44,
        !           559:        5,     8,    11,     0,    13,     0,     0,     0,     0,     0,
        !           560:        0,     0,    48,    20,     0,     0,     0,     0,    70,     0,
        !           561:        0,     0,     0,    39,    47,     0,     0,    78,     0,    88,
        !           562:        0,   109,    81,     0,    97,    99,   100,   102,   103,   104,
        !           563:      105,   106,   107,    85,    91,    92,    93,    94,    96,    95,
        !           564:       84,     0,     0,    40,   110,    29,     0,     0,     0,     0,
        !           565:        0,    43,    76,    77,   111,    48,     0,    48,     0,     0,
        !           566:       72,    48,    48,    48,     0,    69,    75,     0,    64,     0,
        !           567:        0,     0,     0,    51,    80,     0,     0,     0,    48,     0,
        !           568:       45,     6,     9,    12,     0,    24,     0,    21,    64,     0,
        !           569:        0,     0,     0,    48,     0,     0,     0,    52,     0,    83,
        !           570:       48,   112,   108,    14,    41,    30,    27,     0,    48,     0,
        !           571:       73,    66,    67,     0,     0,     0,    65,     0,     0,     0,
        !           572:        0,    25,     0,    22,     0,    68,     0,    53,    56,    74,
        !           573:       37,     0,    71,    26,    38,     0,    23,    46,     0,    31
1.1       noro      574: };
1.5       noro      575:
1.8     ! noro      576: /* YYDEFGOTO[NTERM-NUM]. */
1.5       noro      577: static const short yydefgoto[] =
                    578: {
1.8     ! noro      579:       -1,    47,   154,    62,   188,    63,   189,    64,   190,   126,
        !           580:      218,   260,    49,   275,    50,   182,    66,   130,    93,    97,
        !           581:       98,   235,   236,   237,    51,    99
1.1       noro      582: };
1.5       noro      583:
1.8     ! noro      584: /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
        !           585:    STATE-NUM.  */
        !           586: #define YYPACT_NINF -65
1.5       noro      587: static const short yypact[] =
                    588: {
1.8     ! noro      589:      465,   -36,     8,   -64,   -65,   -27,    19,    26,   -36,   -65,
        !           590:      -65,   -65,    33,   -16,    21,    24,   465,    56,    60,    64,
        !           591:      -36,   586,   -36,    67,    68,    70,    78,   -65,   -65,   -65,
        !           592:       80,   696,   -65,    81,    25,   -65,   696,   696,   696,   696,
        !           593:      696,   -65,   536,   -65,   -65,   696,   696,   133,   -65,   -65,
        !           594:      -65,    -2,   853,   -65,   -65,   -65,    84,     8,   -65,    86,
        !           595:      -36,   -65,   100,   100,   100,   -65,   -12,   696,   696,   696,
        !           596:      132,   696,   696,   696,   -65,    61,   -65,   853,   -65,   112,
        !           597:      114,   115,   696,   -33,  1173,   696,   696,   696,   118,   -26,
        !           598:      -26,  1173,   118,   323,     8,   696,   897,    -9,    92,  1113,
        !           599:      101,   -65,     8,   696,   696,   696,   696,   696,   696,   696,
        !           600:      696,   696,   696,   -65,   696,   696,   696,   696,   696,   696,
        !           601:      696,   696,   696,   -65,     8,   108,   111,   696,   -65,   -65,
        !           602:      109,   109,   109,   134,   -65,   928,   959,   990,   120,   123,
        !           603:      110,   127,   696,   -65,   -19,   129,   130,   765,   -65,   135,
        !           604:      139,   116,   -53,   -65,   -65,   140,  1021,   -65,   696,   -65,
        !           605:      696,   -65,   -65,   249,    23,   262,    87,  1234,  1217,  1192,
        !           606:      173,    45,    -8,  1113,   -26,   -26,   -45,   -45,   -45,   -45,
        !           607:     1113,  1083,   -60,   -65,   -65,   -65,   141,   156,   -36,   -36,
        !           608:      -36,   -65,   -65,   -65,   -65,   696,   465,   696,   465,   -50,
        !           609:      -65,   696,   696,   696,   696,   -65,   -65,   143,   155,     8,
        !           610:      138,   149,   734,  1113,   -65,   696,   -36,     8,   696,   -36,
        !           611:      -65,   -65,   -65,   -65,   150,   -65,   161,   193,   -65,   163,
        !           612:      164,   165,   809,   696,   177,   -18,   178,   -65,   646,    -2,
        !           613:      696,   -65,  1143,   -65,   -65,   -65,   -65,   -36,   696,   465,
        !           614:      -65,   -65,   -65,   696,   168,   696,   -65,     8,   696,   169,
        !           615:      171,   -65,   172,   -65,  1052,   -65,   853,   -65,  1113,   -65,
        !           616:      194,   465,   -65,   -65,   -65,   176,   -65,   -65,   394,   -65
1.1       noro      617: };
1.5       noro      618:
1.8     ! noro      619: /* YYPGOTO[NTERM-NUM].  */
        !           620: static const yysigned_char yypgoto[] =
1.5       noro      621: {
1.8     ! noro      622:      -65,   -65,     1,   -65,   -65,   -65,   -65,   -65,   -65,   -65,
        !           623:      -65,   -65,     4,   -65,   -65,   -65,   -65,    66,   -34,    79,
        !           624:      -65,   -65,    30,   -13,    35,     0
1.1       noro      625: };
1.5       noro      626:
1.8     ! noro      627: /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
        !           628:    positive, shift that token.  If negative, reduce the rule which
        !           629:    number is the opposite.  If zero, do what YYDEFACT says.
        !           630:    If YYTABLE_NINF, syntax error.  */
        !           631: #define YYTABLE_NINF -1
        !           632: static const unsigned short yytable[] =
        !           633: {
        !           634:       52,    48,   102,    57,   113,    53,   216,   104,   105,   106,
        !           635:      119,   217,    61,    54,    55,   208,    52,    70,   228,   209,
        !           636:       58,    77,   209,   113,    74,    76,    78,   117,   118,   119,
        !           637:      120,    84,    56,    43,    44,   148,    88,    89,    90,    91,
        !           638:       92,   113,    96,   115,   116,   117,   118,   119,   120,   200,
        !           639:      256,    67,   201,   257,    54,    55,   123,    43,    44,   133,
        !           640:      104,   105,   106,   158,   128,   159,    59,   135,   136,   137,
        !           641:      134,   103,   113,    60,   115,   116,   117,   118,   119,   120,
        !           642:       65,   143,   147,   107,   108,   109,   110,   125,    68,   112,
        !           643:       86,    69,    87,    52,   113,   156,   115,   116,   117,   118,
        !           644:      119,   120,   104,   163,   164,   165,   166,   167,   168,   169,
        !           645:      170,   171,   172,   149,   173,   174,   175,   176,   177,   178,
        !           646:      179,   180,   181,    71,   155,   100,    86,    72,   142,   131,
        !           647:      132,    73,   162,   101,    79,    80,   113,    81,   115,   116,
        !           648:      117,   118,   119,   120,     4,    82,   129,    83,    85,   124,
        !           649:      139,   140,   141,   127,   183,   138,    13,    14,   212,   144,
        !           650:      213,   145,   146,   160,   150,   151,   152,   113,    23,    24,
        !           651:       25,    26,    27,    28,    29,    30,   184,   161,   185,   197,
        !           652:      187,   191,   207,    32,    33,    75,    35,   195,   104,   105,
        !           653:      106,   196,   221,   222,   223,   198,    52,   225,    52,   227,
        !           654:      202,   203,   220,   205,   232,   238,   186,   206,   210,   219,
        !           655:      233,   107,   108,   109,   234,   242,   240,   112,   247,   249,
        !           656:      243,   199,   113,   246,   115,   116,   117,   118,   119,   120,
        !           657:      248,   250,   251,   252,   255,   258,   265,   269,    96,   270,
        !           658:      271,   277,   274,   278,   267,   239,     0,   244,     0,    52,
        !           659:      263,   261,     0,   264,     0,   266,     0,     0,   268,     0,
        !           660:        0,     0,     0,     0,   104,   105,   106,     0,     0,     0,
        !           661:      273,    52,   276,     0,   224,     0,   226,   104,    52,   106,
        !           662:      229,   230,   231,     0,     0,     0,     0,   107,   108,   109,
        !           663:      110,   111,     0,   112,     0,     0,     0,   245,   113,   114,
        !           664:      115,   116,   117,   118,   119,   120,   121,   122,     0,     0,
        !           665:        0,   113,   254,   115,   116,   117,   118,   119,   120,   259,
        !           666:        0,     0,     0,   214,     1,     0,     2,   262,     3,     4,
1.5       noro      667:        5,     6,     7,     8,     9,    10,    11,    12,     0,     0,
                    668:        0,    13,    14,    15,     0,    16,    17,    18,    19,     0,
                    669:       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
                    670:       30,     0,     0,     0,     0,     0,    31,     0,    32,    33,
                    671:       34,    35,    36,     0,    37,    38,     0,     0,     0,     0,
1.8     ! noro      672:        0,     0,     0,    39,     0,     0,     0,    40,    41,   153,
1.5       noro      673:       42,     0,    43,    44,     0,     1,    45,     2,    46,     3,
                    674:        4,     5,     6,     7,     8,     9,    10,    11,    12,     0,
                    675:        0,     0,    13,    14,    15,     0,    16,    17,    18,    19,
                    676:        0,    20,    21,    22,    23,    24,    25,    26,    27,    28,
                    677:       29,    30,     0,     0,     0,     0,     0,    31,     0,    32,
                    678:       33,    34,    35,    36,     0,    37,    38,     0,     0,     0,
                    679:        0,     0,     0,     0,    39,     0,     0,     0,    40,    41,
1.8     ! noro      680:      279,    42,     0,    43,    44,     0,     1,    45,     2,    46,
        !           681:        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
        !           682:        0,     0,     0,    13,    14,    15,     0,    16,    17,    18,
        !           683:       19,     0,    20,    21,    22,    23,    24,    25,    26,    27,
1.5       noro      684:       28,    29,    30,     0,     0,     0,     0,     0,    31,     0,
1.8     ! noro      685:       32,    33,    34,    35,    36,     0,    37,    38,     0,     0,
1.5       noro      686:        0,     0,     0,     0,     0,    39,     0,     0,     0,    40,
1.8     ! noro      687:       41,     0,    42,     0,    43,    44,     0,     0,    45,    94,
        !           688:       46,     3,     4,     0,     0,     0,     0,     0,     0,     0,
        !           689:        0,     0,     0,     0,    13,    14,    15,     0,     0,     0,
        !           690:        0,     0,     0,     0,     0,     0,    23,    24,    25,    26,
        !           691:       27,    28,    29,    30,     0,     0,     0,     0,     0,    31,
        !           692:        0,    32,    33,    75,    35,    36,     0,    37,    38,    95,
        !           693:        0,     3,     4,     0,     0,     0,    39,     0,     0,     0,
        !           694:       40,     0,     0,    42,    13,    14,    15,     0,     0,    45,
        !           695:        0,    46,     0,     0,     0,     0,    23,    24,    25,    26,
        !           696:       27,    28,    29,    30,     0,     0,     0,     0,     0,    31,
        !           697:        0,    32,    33,    75,    35,    36,     0,    37,    38,     0,
        !           698:        0,     0,     0,     0,     0,     0,    39,     0,     0,     0,
        !           699:       40,     3,     4,    42,     0,    43,    44,     0,     0,    45,
        !           700:        0,    46,     0,     0,    13,    14,    15,     0,     0,     0,
        !           701:        0,     0,     0,     0,     0,     0,    23,    24,    25,    26,
        !           702:       27,    28,    29,    30,     0,     0,     0,     0,     0,    31,
        !           703:        0,    32,    33,    75,    35,    36,     0,    37,    38,    95,
        !           704:        0,     3,     4,     0,     0,     0,    39,     0,     0,     0,
        !           705:       40,     0,     0,    42,    13,    14,    15,     0,     0,    45,
        !           706:        0,    46,     0,     0,     0,     0,    23,    24,    25,    26,
        !           707:       27,    28,    29,    30,     0,     0,     0,     0,     0,    31,
        !           708:        0,    32,    33,    75,    35,    36,     0,    37,    38,   104,
        !           709:      105,   106,     0,     0,     0,     0,    39,     0,     0,     0,
        !           710:       40,     0,     0,    42,     0,     0,     0,     0,     0,    45,
        !           711:        0,    46,   107,   108,   109,   110,   111,     0,   112,     0,
        !           712:      104,   105,   106,   113,   114,   115,   116,   117,   118,   119,
        !           713:      120,   121,   122,     0,     0,     0,     0,     0,     0,     0,
        !           714:        0,     0,     0,   107,   108,   109,   110,   111,   241,   112,
        !           715:        0,     0,     0,     0,   113,   114,   115,   116,   117,   118,
        !           716:      119,   120,   121,   122,   104,   105,   106,     0,     0,     0,
        !           717:        0,     0,     0,     0,     0,     0,   204,     0,     0,     0,
        !           718:        0,     0,     0,     0,     0,     0,     0,   107,   108,   109,
        !           719:      110,   111,     0,   112,     0,     0,     0,     0,   113,   114,
        !           720:      115,   116,   117,   118,   119,   120,   121,   122,   104,   105,
        !           721:      106,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !           722:      253,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !           723:        0,   107,   108,   109,   110,   111,     0,   112,     0,     0,
        !           724:        0,     0,   113,   114,   115,   116,   117,   118,   119,   120,
        !           725:      121,   122,   104,   105,   106,     0,     0,     0,     0,     0,
        !           726:        0,     0,    43,    44,     0,     0,     0,     0,     0,     0,
        !           727:        0,     0,     0,     0,     0,   107,   108,   109,   110,   111,
        !           728:        0,   112,     0,   104,   105,   106,   113,   114,   115,   116,
        !           729:      117,   118,   119,   120,   121,   122,     0,     0,     0,     0,
        !           730:        0,     0,     0,     0,     0,   157,   107,   108,   109,   110,
        !           731:      111,     0,   112,     0,   104,   105,   106,   113,   114,   115,
        !           732:      116,   117,   118,   119,   120,   121,   122,     0,     0,     0,
        !           733:        0,     0,     0,     0,     0,     0,   192,   107,   108,   109,
        !           734:      110,   111,     0,   112,     0,   104,   105,   106,   113,   114,
        !           735:      115,   116,   117,   118,   119,   120,   121,   122,     0,     0,
        !           736:        0,     0,     0,     0,     0,     0,     0,   193,   107,   108,
        !           737:      109,   110,   111,     0,   112,     0,   104,   105,   106,   113,
        !           738:      114,   115,   116,   117,   118,   119,   120,   121,   122,     0,
        !           739:        0,     0,     0,     0,     0,     0,     0,     0,   194,   107,
        !           740:      108,   109,   110,   111,     0,   112,     0,   104,   105,   106,
        !           741:      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
        !           742:        0,     0,     0,     0,     0,     0,     0,     0,     0,   211,
        !           743:      107,   108,   109,   110,   111,     0,   112,     0,   104,   105,
        !           744:      106,   113,   114,   115,   116,   117,   118,   119,   120,   121,
        !           745:      122,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        !           746:      272,   107,   108,   109,   110,   111,     0,   112,   104,   105,
        !           747:      106,     0,   113,   114,   115,   116,   117,   118,   119,   120,
        !           748:      121,   122,   215,     0,     0,     0,     0,     0,     0,     0,
        !           749:        0,   107,   108,   109,   110,   111,     0,   112,   104,   105,
        !           750:      106,     0,   113,   114,   115,   116,   117,   118,   119,   120,
        !           751:      121,   122,     0,     0,     0,     0,     0,     0,     0,     0,
        !           752:        0,   107,   108,   109,   110,   111,     0,   112,   104,   105,
        !           753:      106,     0,   113,     0,   115,   116,   117,   118,   119,   120,
        !           754:        0,   122,     0,     0,     0,     0,     0,   104,   105,   106,
        !           755:        0,   107,   108,   109,   110,   111,     0,   112,     0,     0,
        !           756:        0,     0,   113,     0,   115,   116,   117,   118,   119,   120,
        !           757:      107,   108,   104,   105,   106,     0,   112,     0,     0,     0,
        !           758:        0,   113,     0,   115,   116,   117,   118,   119,   120,   104,
        !           759:      105,   106,     0,     0,     0,   107,     0,     0,     0,     0,
        !           760:        0,   112,     0,     0,     0,     0,   113,     0,   115,   116,
        !           761:      117,   118,   119,   120,     0,     0,     0,     0,   112,     0,
        !           762:        0,     0,     0,   113,     0,   115,   116,   117,   118,   119,
        !           763:      120
1.5       noro      764: };
                    765:
                    766: static const short yycheck[] =
                    767: {
1.8     ! noro      768:        0,     0,     4,    67,    49,     1,    66,    15,    16,    17,
        !           769:       55,    71,     8,    46,    47,    68,    16,    16,    68,    72,
        !           770:       47,    21,    72,    49,    20,    21,    22,    53,    54,    55,
        !           771:       56,    31,     2,    69,    70,    68,    36,    37,    38,    39,
        !           772:       40,    49,    42,    51,    52,    53,    54,    55,    56,    68,
        !           773:       68,    67,    71,    71,    46,    47,    52,    69,    70,    71,
        !           774:       15,    16,    17,    72,    60,    74,    47,    67,    68,    69,
        !           775:       66,    73,    49,    47,    51,    52,    53,    54,    55,    56,
        !           776:       47,    77,    82,    38,    39,    40,    41,    57,    67,    44,
        !           777:       65,    67,    67,    93,    49,    95,    51,    52,    53,    54,
        !           778:       55,    56,    15,   103,   104,   105,   106,   107,   108,   109,
        !           779:      110,   111,   112,    83,   114,   115,   116,   117,   118,   119,
        !           780:      120,   121,   122,    67,    94,    46,    65,    67,    67,    63,
        !           781:       64,    67,   102,     0,    67,    67,    49,    67,    51,    52,
        !           782:       53,    54,    55,    56,     6,    67,    46,    67,    67,    65,
        !           783:       71,    72,    73,    67,   124,    23,    18,    19,   158,    47,
        !           784:      160,    47,    47,    71,    85,    86,    87,    49,    30,    31,
        !           785:       32,    33,    34,    35,    36,    37,    68,    76,    67,    69,
        !           786:       71,    47,    66,    45,    46,    47,    48,    67,    15,    16,
        !           787:       17,    68,   188,   189,   190,    68,   196,   196,   198,   198,
        !           788:       71,    71,    46,    68,   204,    67,   127,    68,    68,    68,
        !           789:       67,    38,    39,    40,    59,   215,    67,    44,    68,    26,
        !           790:      216,   142,    49,   219,    51,    52,    53,    54,    55,    56,
        !           791:       69,    68,    68,    68,    57,    57,    68,    68,   238,    68,
        !           792:       68,    65,    48,   277,   257,   210,    -1,   217,    -1,   249,
        !           793:      249,   247,    -1,   253,    -1,   255,    -1,    -1,   258,    -1,
        !           794:       -1,    -1,    -1,    -1,    15,    16,    17,    -1,    -1,    -1,
        !           795:      266,   271,   271,    -1,   195,    -1,   197,    15,   278,    17,
        !           796:      201,   202,   203,    -1,    -1,    -1,    -1,    38,    39,    40,
        !           797:       41,    42,    -1,    44,    -1,    -1,    -1,   218,    49,    50,
        !           798:       51,    52,    53,    54,    55,    56,    57,    58,    -1,    -1,
        !           799:       -1,    49,   233,    51,    52,    53,    54,    55,    56,   240,
        !           800:       -1,    -1,    -1,    74,     1,    -1,     3,   248,     5,     6,
1.5       noro      801:        7,     8,     9,    10,    11,    12,    13,    14,    -1,    -1,
                    802:       -1,    18,    19,    20,    -1,    22,    23,    24,    25,    -1,
                    803:       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
                    804:       37,    -1,    -1,    -1,    -1,    -1,    43,    -1,    45,    46,
                    805:       47,    48,    49,    -1,    51,    52,    -1,    -1,    -1,    -1,
                    806:       -1,    -1,    -1,    60,    -1,    -1,    -1,    64,    65,    66,
                    807:       67,    -1,    69,    70,    -1,     1,    73,     3,    75,     5,
                    808:        6,     7,     8,     9,    10,    11,    12,    13,    14,    -1,
                    809:       -1,    -1,    18,    19,    20,    -1,    22,    23,    24,    25,
                    810:       -1,    27,    28,    29,    30,    31,    32,    33,    34,    35,
                    811:       36,    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,    45,
                    812:       46,    47,    48,    49,    -1,    51,    52,    -1,    -1,    -1,
                    813:       -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    64,    65,
1.8     ! noro      814:       66,    67,    -1,    69,    70,    -1,     1,    73,     3,    75,
        !           815:        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
        !           816:       -1,    -1,    -1,    18,    19,    20,    -1,    22,    23,    24,
        !           817:       25,    -1,    27,    28,    29,    30,    31,    32,    33,    34,
1.5       noro      818:       35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,
                    819:       45,    46,    47,    48,    49,    -1,    51,    52,    -1,    -1,
                    820:       -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    64,
1.8     ! noro      821:       65,    -1,    67,    -1,    69,    70,    -1,    -1,    73,     3,
        !           822:       75,     5,     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !           823:       -1,    -1,    -1,    -1,    18,    19,    20,    -1,    -1,    -1,
        !           824:       -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,    33,
        !           825:       34,    35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,
        !           826:       -1,    45,    46,    47,    48,    49,    -1,    51,    52,    53,
        !           827:       -1,     5,     6,    -1,    -1,    -1,    60,    -1,    -1,    -1,
        !           828:       64,    -1,    -1,    67,    18,    19,    20,    -1,    -1,    73,
        !           829:       -1,    75,    -1,    -1,    -1,    -1,    30,    31,    32,    33,
        !           830:       34,    35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,
        !           831:       -1,    45,    46,    47,    48,    49,    -1,    51,    52,    -1,
        !           832:       -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,
        !           833:       64,     5,     6,    67,    -1,    69,    70,    -1,    -1,    73,
        !           834:       -1,    75,    -1,    -1,    18,    19,    20,    -1,    -1,    -1,
        !           835:       -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,    33,
        !           836:       34,    35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,
        !           837:       -1,    45,    46,    47,    48,    49,    -1,    51,    52,    53,
        !           838:       -1,     5,     6,    -1,    -1,    -1,    60,    -1,    -1,    -1,
        !           839:       64,    -1,    -1,    67,    18,    19,    20,    -1,    -1,    73,
        !           840:       -1,    75,    -1,    -1,    -1,    -1,    30,    31,    32,    33,
        !           841:       34,    35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,
        !           842:       -1,    45,    46,    47,    48,    49,    -1,    51,    52,    15,
        !           843:       16,    17,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,
        !           844:       64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    73,
        !           845:       -1,    75,    38,    39,    40,    41,    42,    -1,    44,    -1,
        !           846:       15,    16,    17,    49,    50,    51,    52,    53,    54,    55,
        !           847:       56,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !           848:       -1,    -1,    -1,    38,    39,    40,    41,    42,    74,    44,
        !           849:       -1,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
        !           850:       55,    56,    57,    58,    15,    16,    17,    -1,    -1,    -1,
        !           851:       -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
        !           852:       -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,    39,    40,
        !           853:       41,    42,    -1,    44,    -1,    -1,    -1,    -1,    49,    50,
        !           854:       51,    52,    53,    54,    55,    56,    57,    58,    15,    16,
        !           855:       17,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !           856:       71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !           857:       -1,    38,    39,    40,    41,    42,    -1,    44,    -1,    -1,
1.5       noro      858:       -1,    -1,    49,    50,    51,    52,    53,    54,    55,    56,
                    859:       57,    58,    15,    16,    17,    -1,    -1,    -1,    -1,    -1,
1.8     ! noro      860:       -1,    -1,    69,    70,    -1,    -1,    -1,    -1,    -1,    -1,
1.5       noro      861:       -1,    -1,    -1,    -1,    -1,    38,    39,    40,    41,    42,
                    862:       -1,    44,    -1,    15,    16,    17,    49,    50,    51,    52,
                    863:       53,    54,    55,    56,    57,    58,    -1,    -1,    -1,    -1,
                    864:       -1,    -1,    -1,    -1,    -1,    68,    38,    39,    40,    41,
                    865:       42,    -1,    44,    -1,    15,    16,    17,    49,    50,    51,
                    866:       52,    53,    54,    55,    56,    57,    58,    -1,    -1,    -1,
                    867:       -1,    -1,    -1,    -1,    -1,    -1,    68,    38,    39,    40,
                    868:       41,    42,    -1,    44,    -1,    15,    16,    17,    49,    50,
                    869:       51,    52,    53,    54,    55,    56,    57,    58,    -1,    -1,
                    870:       -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    38,    39,
                    871:       40,    41,    42,    -1,    44,    -1,    15,    16,    17,    49,
                    872:       50,    51,    52,    53,    54,    55,    56,    57,    58,    -1,
                    873:       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    38,
1.8     ! noro      874:       39,    40,    41,    42,    -1,    44,    -1,    15,    16,    17,
1.5       noro      875:       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1.8     ! noro      876:       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,
        !           877:       38,    39,    40,    41,    42,    -1,    44,    -1,    15,    16,
        !           878:       17,    49,    50,    51,    52,    53,    54,    55,    56,    57,
        !           879:       58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !           880:       68,    38,    39,    40,    41,    42,    -1,    44,    15,    16,
        !           881:       17,    -1,    49,    50,    51,    52,    53,    54,    55,    56,
        !           882:       57,    58,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !           883:       -1,    38,    39,    40,    41,    42,    -1,    44,    15,    16,
        !           884:       17,    -1,    49,    50,    51,    52,    53,    54,    55,    56,
        !           885:       57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        !           886:       -1,    38,    39,    40,    41,    42,    -1,    44,    15,    16,
        !           887:       17,    -1,    49,    -1,    51,    52,    53,    54,    55,    56,
        !           888:       -1,    58,    -1,    -1,    -1,    -1,    -1,    15,    16,    17,
        !           889:       -1,    38,    39,    40,    41,    42,    -1,    44,    -1,    -1,
        !           890:       -1,    -1,    49,    -1,    51,    52,    53,    54,    55,    56,
        !           891:       38,    39,    15,    16,    17,    -1,    44,    -1,    -1,    -1,
        !           892:       -1,    49,    -1,    51,    52,    53,    54,    55,    56,    15,
        !           893:       16,    17,    -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,
        !           894:       -1,    44,    -1,    -1,    -1,    -1,    49,    -1,    51,    52,
        !           895:       53,    54,    55,    56,    -1,    -1,    -1,    -1,    44,    -1,
        !           896:       -1,    -1,    -1,    49,    -1,    51,    52,    53,    54,    55,
        !           897:       56
1.1       noro      898: };
1.5       noro      899:
1.8     ! noro      900: /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
        !           901:    symbol of state STATE-NUM.  */
        !           902: static const unsigned char yystos[] =
1.5       noro      903: {
1.8     ! noro      904:        0,     1,     3,     5,     6,     7,     8,     9,    10,    11,
        !           905:       12,    13,    14,    18,    19,    20,    22,    23,    24,    25,
        !           906:       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
        !           907:       37,    43,    45,    46,    47,    48,    49,    51,    52,    60,
        !           908:       64,    65,    67,    69,    70,    73,    75,    78,    79,    89,
        !           909:       91,   101,   102,    89,    46,    47,    99,    67,    47,    47,
        !           910:       47,    89,    80,    82,    84,    47,    93,    67,    67,    67,
        !           911:       79,    67,    67,    67,    89,    47,    89,   102,    89,    67,
        !           912:       67,    67,    67,    67,   102,    67,    65,    67,   102,   102,
        !           913:      102,   102,   102,    95,     3,    53,   102,    96,    97,   102,
        !           914:       96,     0,     4,    73,    15,    16,    17,    38,    39,    40,
        !           915:       41,    42,    44,    49,    50,    51,    52,    53,    54,    55,
        !           916:       56,    57,    58,    89,    65,    99,    86,    67,    89,    46,
        !           917:       94,    94,    94,    71,    89,   102,   102,   102,    23,    96,
        !           918:       96,    96,    67,    89,    47,    47,    47,   102,    68,    99,
        !           919:       96,    96,    96,    66,    79,    99,   102,    68,    72,    74,
        !           920:       71,    76,    99,   102,   102,   102,   102,   102,   102,   102,
        !           921:      102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
        !           922:      102,   102,    92,    99,    68,    67,    96,    71,    81,    83,
        !           923:       85,    47,    68,    68,    68,    67,    68,    69,    68,    96,
        !           924:       68,    71,    71,    71,    71,    68,    68,    66,    68,    72,
        !           925:       68,    68,   102,   102,    74,    59,    66,    71,    87,    68,
        !           926:       46,    89,    89,    89,    96,    79,    96,    79,    68,    96,
        !           927:       96,    96,   102,    67,    59,    98,    99,   100,    67,   101,
        !           928:       67,    74,   102,    89,    99,    96,    89,    68,    69,    26,
        !           929:       68,    68,    68,    71,    96,    57,    68,    71,    57,    96,
        !           930:       88,    89,    96,    79,   102,    68,   102,   100,   102,    68,
        !           931:       68,    68,    68,    89,    48,    90,    79,    65,    95,    66
1.1       noro      932: };
1.5       noro      933:
                    934: #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
                    935: # define YYSIZE_T __SIZE_TYPE__
                    936: #endif
                    937: #if ! defined (YYSIZE_T) && defined (size_t)
                    938: # define YYSIZE_T size_t
1.1       noro      939: #endif
1.5       noro      940: #if ! defined (YYSIZE_T)
                    941: # if defined (__STDC__) || defined (__cplusplus)
                    942: #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
                    943: #  define YYSIZE_T size_t
                    944: # endif
                    945: #endif
                    946: #if ! defined (YYSIZE_T)
                    947: # define YYSIZE_T unsigned int
                    948: #endif
                    949:
                    950: #define yyerrok                (yyerrstatus = 0)
                    951: #define yyclearin      (yychar = YYEMPTY)
1.8     ! noro      952: #define YYEMPTY                (-2)
1.5       noro      953: #define YYEOF          0
1.8     ! noro      954:
1.5       noro      955: #define YYACCEPT       goto yyacceptlab
1.8     ! noro      956: #define YYABORT                goto yyabortlab
1.5       noro      957: #define YYERROR                goto yyerrlab1
1.8     ! noro      958:
        !           959:
1.5       noro      960: /* Like YYERROR except do call yyerror.  This remains here temporarily
                    961:    to ease the transition to the new meaning of YYERROR, for GCC.
                    962:    Once GCC version 2 has supplanted version 1, this can go.  */
1.8     ! noro      963:
1.5       noro      964: #define YYFAIL         goto yyerrlab
1.8     ! noro      965:
1.5       noro      966: #define YYRECOVERING()  (!!yyerrstatus)
1.8     ! noro      967:
1.5       noro      968: #define YYBACKUP(Token, Value)                                 \
                    969: do                                                             \
                    970:   if (yychar == YYEMPTY && yylen == 1)                         \
                    971:     {                                                          \
                    972:       yychar = (Token);                                                \
                    973:       yylval = (Value);                                                \
1.8     ! noro      974:       yytoken = YYTRANSLATE (yychar);                          \
1.5       noro      975:       YYPOPSTACK;                                              \
                    976:       goto yybackup;                                           \
                    977:     }                                                          \
                    978:   else                                                         \
                    979:     {                                                          \
1.8     ! noro      980:       yyerror ("syntax error: cannot back up");\
1.5       noro      981:       YYERROR;                                                 \
                    982:     }                                                          \
                    983: while (0)
                    984:
                    985: #define YYTERROR       1
                    986: #define YYERRCODE      256
                    987:
                    988: /* YYLLOC_DEFAULT -- Compute the default location (before the actions
1.8     ! noro      989:    are run).  */
1.5       noro      990:
                    991: #ifndef YYLLOC_DEFAULT
1.8     ! noro      992: # define YYLLOC_DEFAULT(Current, Rhs, N)         \
        !           993:   Current.first_line   = Rhs[1].first_line;      \
        !           994:   Current.first_column = Rhs[1].first_column;    \
        !           995:   Current.last_line    = Rhs[N].last_line;       \
        !           996:   Current.last_column  = Rhs[N].last_column;
1.5       noro      997: #endif
                    998:
                    999: /* YYLEX -- calling `yylex' with the right arguments.  */
                   1000:
1.8     ! noro     1001: #ifdef YYLEX_PARAM
        !          1002: # define YYLEX yylex (YYLEX_PARAM)
        !          1003: #else
        !          1004: # define YYLEX yylex ()
        !          1005: #endif
1.5       noro     1006:
                   1007: /* Enable debugging if requested.  */
1.1       noro     1008: #if YYDEBUG
1.5       noro     1009:
                   1010: # ifndef YYFPRINTF
                   1011: #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
                   1012: #  define YYFPRINTF fprintf
                   1013: # endif
                   1014:
                   1015: # define YYDPRINTF(Args)                       \
                   1016: do {                                           \
                   1017:   if (yydebug)                                 \
                   1018:     YYFPRINTF Args;                            \
                   1019: } while (0)
1.8     ! noro     1020:
        !          1021: # define YYDSYMPRINT(Args)                     \
        !          1022: do {                                           \
        !          1023:   if (yydebug)                                 \
        !          1024:     yysymprint Args;                           \
        !          1025: } while (0)
        !          1026:
        !          1027: # define YYDSYMPRINTF(Title, Token, Value, Location)           \
        !          1028: do {                                                           \
        !          1029:   if (yydebug)                                                 \
        !          1030:     {                                                          \
        !          1031:       YYFPRINTF (stderr, "%s ", Title);                                \
        !          1032:       yysymprint (stderr,                                      \
        !          1033:                   Token, Value);       \
        !          1034:       YYFPRINTF (stderr, "\n");                                        \
        !          1035:     }                                                          \
        !          1036: } while (0)
        !          1037:
        !          1038: /*------------------------------------------------------------------.
        !          1039: | yy_stack_print -- Print the state stack from its BOTTOM up to its |
        !          1040: | TOP (cinluded).                                                   |
        !          1041: `------------------------------------------------------------------*/
        !          1042:
        !          1043: #if defined (__STDC__) || defined (__cplusplus)
        !          1044: static void
        !          1045: yy_stack_print (short *bottom, short *top)
        !          1046: #else
        !          1047: static void
        !          1048: yy_stack_print (bottom, top)
        !          1049:     short *bottom;
        !          1050:     short *top;
        !          1051: #endif
        !          1052: {
        !          1053:   YYFPRINTF (stderr, "Stack now");
        !          1054:   for (/* Nothing. */; bottom <= top; ++bottom)
        !          1055:     YYFPRINTF (stderr, " %d", *bottom);
        !          1056:   YYFPRINTF (stderr, "\n");
        !          1057: }
        !          1058:
        !          1059: # define YY_STACK_PRINT(Bottom, Top)                           \
        !          1060: do {                                                           \
        !          1061:   if (yydebug)                                                 \
        !          1062:     yy_stack_print ((Bottom), (Top));                          \
        !          1063: } while (0)
        !          1064:
        !          1065:
        !          1066: /*------------------------------------------------.
        !          1067: | Report that the YYRULE is going to be reduced.  |
        !          1068: `------------------------------------------------*/
        !          1069:
        !          1070: #if defined (__STDC__) || defined (__cplusplus)
        !          1071: static void
        !          1072: yy_reduce_print (int yyrule)
        !          1073: #else
        !          1074: static void
        !          1075: yy_reduce_print (yyrule)
        !          1076:     int yyrule;
        !          1077: #endif
        !          1078: {
        !          1079:   int yyi;
        !          1080:   unsigned int yylno = yyrline[yyrule];
        !          1081:   YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
        !          1082:              yyrule - 1, yylno);
        !          1083:   /* Print the symbols being reduced, and their result.  */
        !          1084:   for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
        !          1085:     YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
        !          1086:   YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
        !          1087: }
        !          1088:
        !          1089: # define YY_REDUCE_PRINT(Rule)         \
        !          1090: do {                                   \
        !          1091:   if (yydebug)                         \
        !          1092:     yy_reduce_print (Rule);            \
        !          1093: } while (0)
        !          1094:
1.5       noro     1095: /* Nonzero means print parse trace.  It is left uninitialized so that
                   1096:    multiple parsers can coexist.  */
                   1097: int yydebug;
                   1098: #else /* !YYDEBUG */
                   1099: # define YYDPRINTF(Args)
1.8     ! noro     1100: # define YYDSYMPRINT(Args)
        !          1101: # define YYDSYMPRINTF(Title, Token, Value, Location)
        !          1102: # define YY_STACK_PRINT(Bottom, Top)
        !          1103: # define YY_REDUCE_PRINT(Rule)
1.5       noro     1104: #endif /* !YYDEBUG */
                   1105:
1.8     ! noro     1106:
1.5       noro     1107: /* YYINITDEPTH -- initial size of the parser's stacks.  */
                   1108: #ifndef        YYINITDEPTH
                   1109: # define YYINITDEPTH 200
                   1110: #endif
                   1111:
                   1112: /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
                   1113:    if the built-in stack extension method is used).
                   1114:
                   1115:    Do not make this value too large; the results are undefined if
                   1116:    SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
                   1117:    evaluated with infinite-precision integer arithmetic.  */
                   1118:
                   1119: #if YYMAXDEPTH == 0
                   1120: # undef YYMAXDEPTH
                   1121: #endif
                   1122:
                   1123: #ifndef YYMAXDEPTH
                   1124: # define YYMAXDEPTH 10000
1.1       noro     1125: #endif
1.8     ! noro     1126:
1.5       noro     1127: 
1.8     ! noro     1128:
        !          1129: #if YYERROR_VERBOSE
1.5       noro     1130:
                   1131: # ifndef yystrlen
                   1132: #  if defined (__GLIBC__) && defined (_STRING_H)
                   1133: #   define yystrlen strlen
                   1134: #  else
                   1135: /* Return the length of YYSTR.  */
                   1136: static YYSIZE_T
                   1137: #   if defined (__STDC__) || defined (__cplusplus)
                   1138: yystrlen (const char *yystr)
                   1139: #   else
                   1140: yystrlen (yystr)
                   1141:      const char *yystr;
                   1142: #   endif
                   1143: {
                   1144:   register const char *yys = yystr;
                   1145:
                   1146:   while (*yys++ != '\0')
                   1147:     continue;
                   1148:
                   1149:   return yys - yystr - 1;
                   1150: }
                   1151: #  endif
                   1152: # endif
                   1153:
                   1154: # ifndef yystpcpy
                   1155: #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
                   1156: #   define yystpcpy stpcpy
                   1157: #  else
                   1158: /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
                   1159:    YYDEST.  */
                   1160: static char *
                   1161: #   if defined (__STDC__) || defined (__cplusplus)
                   1162: yystpcpy (char *yydest, const char *yysrc)
                   1163: #   else
                   1164: yystpcpy (yydest, yysrc)
                   1165:      char *yydest;
                   1166:      const char *yysrc;
                   1167: #   endif
                   1168: {
                   1169:   register char *yyd = yydest;
                   1170:   register const char *yys = yysrc;
                   1171:
                   1172:   while ((*yyd++ = *yys++) != '\0')
                   1173:     continue;
                   1174:
                   1175:   return yyd - 1;
                   1176: }
                   1177: #  endif
                   1178: # endif
1.8     ! noro     1179:
        !          1180: #endif /* !YYERROR_VERBOSE */
        !          1181:
        !          1182: 
        !          1183:
        !          1184: #if YYDEBUG
        !          1185: /*--------------------------------.
        !          1186: | Print this symbol on YYOUTPUT.  |
        !          1187: `--------------------------------*/
        !          1188:
        !          1189: #if defined (__STDC__) || defined (__cplusplus)
        !          1190: static void
        !          1191: yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
        !          1192: #else
        !          1193: static void
        !          1194: yysymprint (yyoutput, yytype, yyvaluep)
        !          1195:     FILE *yyoutput;
        !          1196:     int yytype;
        !          1197:     YYSTYPE *yyvaluep;
1.1       noro     1198: #endif
1.8     ! noro     1199: {
        !          1200:   /* Pacify ``unused variable'' warnings.  */
        !          1201:   (void) yyvaluep;
        !          1202:
        !          1203:   if (yytype < YYNTOKENS)
        !          1204:     {
        !          1205:       YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
        !          1206: # ifdef YYPRINT
        !          1207:       YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
        !          1208: # endif
        !          1209:     }
        !          1210:   else
        !          1211:     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
        !          1212:
        !          1213:   switch (yytype)
        !          1214:     {
        !          1215:       default:
        !          1216:         break;
        !          1217:     }
        !          1218:   YYFPRINTF (yyoutput, ")");
        !          1219: }
        !          1220:
        !          1221: #endif /* ! YYDEBUG */
        !          1222: /*-----------------------------------------------.
        !          1223: | Release the memory associated to this symbol.  |
        !          1224: `-----------------------------------------------*/
        !          1225:
        !          1226: #if defined (__STDC__) || defined (__cplusplus)
        !          1227: static void
        !          1228: yydestruct (int yytype, YYSTYPE *yyvaluep)
        !          1229: #else
        !          1230: static void
        !          1231: yydestruct (yytype, yyvaluep)
        !          1232:     int yytype;
        !          1233:     YYSTYPE *yyvaluep;
        !          1234: #endif
        !          1235: {
        !          1236:   /* Pacify ``unused variable'' warnings.  */
        !          1237:   (void) yyvaluep;
        !          1238:
        !          1239:   switch (yytype)
        !          1240:     {
        !          1241:
        !          1242:       default:
        !          1243:         break;
        !          1244:     }
        !          1245: }
1.5       noro     1246: 
                   1247:
1.8     ! noro     1248: /* Prevent warnings from -Wmissing-prototypes.  */
1.5       noro     1249:
                   1250: #ifdef YYPARSE_PARAM
                   1251: # if defined (__STDC__) || defined (__cplusplus)
1.8     ! noro     1252: int yyparse (void *YYPARSE_PARAM);
1.5       noro     1253: # else
1.8     ! noro     1254: int yyparse ();
1.5       noro     1255: # endif
1.8     ! noro     1256: #else /* ! YYPARSE_PARAM */
        !          1257: #if defined (__STDC__) || defined (__cplusplus)
1.5       noro     1258: int yyparse (void);
1.8     ! noro     1259: #else
        !          1260: int yyparse ();
1.1       noro     1261: #endif
1.8     ! noro     1262: #endif /* ! YYPARSE_PARAM */
1.5       noro     1263:
                   1264:
1.8     ! noro     1265:
        !          1266: /* The lookahead symbol.  */
        !          1267: int yychar;
        !          1268:
        !          1269: /* The semantic value of the lookahead symbol.  */
        !          1270: YYSTYPE yylval;
        !          1271:
        !          1272: /* Number of syntax errors so far.  */
1.1       noro     1273: int yynerrs;
                   1274:
1.5       noro     1275:
                   1276:
1.8     ! noro     1277: /*----------.
        !          1278: | yyparse.  |
        !          1279: `----------*/
1.5       noro     1280:
1.8     ! noro     1281: #ifdef YYPARSE_PARAM
        !          1282: # if defined (__STDC__) || defined (__cplusplus)
        !          1283: int yyparse (void *YYPARSE_PARAM)
        !          1284: # else
        !          1285: int yyparse (YYPARSE_PARAM)
        !          1286:   void *YYPARSE_PARAM;
        !          1287: # endif
        !          1288: #else /* ! YYPARSE_PARAM */
        !          1289: #if defined (__STDC__) || defined (__cplusplus)
        !          1290: int
        !          1291: yyparse (void)
        !          1292: #else
        !          1293: int
        !          1294: yyparse ()
1.1       noro     1295:
1.8     ! noro     1296: #endif
        !          1297: #endif
1.1       noro     1298: {
1.8     ! noro     1299:
1.5       noro     1300:   register int yystate;
                   1301:   register int yyn;
                   1302:   int yyresult;
                   1303:   /* Number of tokens to shift before error messages enabled.  */
                   1304:   int yyerrstatus;
                   1305:   /* Lookahead token as an internal (translated) token number.  */
1.8     ! noro     1306:   int yytoken = 0;
1.5       noro     1307:
                   1308:   /* Three stacks and their tools:
                   1309:      `yyss': related to states,
                   1310:      `yyvs': related to semantic values,
                   1311:      `yyls': related to locations.
                   1312:
                   1313:      Refer to the stacks thru separate pointers, to allow yyoverflow
                   1314:      to reallocate them elsewhere.  */
                   1315:
1.8     ! noro     1316:   /* The state stack.  */
1.5       noro     1317:   short        yyssa[YYINITDEPTH];
                   1318:   short *yyss = yyssa;
                   1319:   register short *yyssp;
                   1320:
                   1321:   /* The semantic value stack.  */
                   1322:   YYSTYPE yyvsa[YYINITDEPTH];
                   1323:   YYSTYPE *yyvs = yyvsa;
                   1324:   register YYSTYPE *yyvsp;
                   1325:
                   1326:
1.8     ! noro     1327:
        !          1328: #define YYPOPSTACK   (yyvsp--, yyssp--)
1.5       noro     1329:
                   1330:   YYSIZE_T yystacksize = YYINITDEPTH;
                   1331:
                   1332:   /* The variables used to return semantic value and location from the
                   1333:      action routines.  */
                   1334:   YYSTYPE yyval;
1.8     ! noro     1335:
1.5       noro     1336:
                   1337:   /* When reducing, the number of symbols on the RHS of the reduced
1.8     ! noro     1338:      rule.  */
1.5       noro     1339:   int yylen;
                   1340:
                   1341:   YYDPRINTF ((stderr, "Starting parse\n"));
                   1342:
                   1343:   yystate = 0;
                   1344:   yyerrstatus = 0;
                   1345:   yynerrs = 0;
                   1346:   yychar = YYEMPTY;            /* Cause a token to be read.  */
                   1347:
                   1348:   /* Initialize stack pointers.
                   1349:      Waste one element of value and location stack
                   1350:      so that they stay on the same level as the state stack.
                   1351:      The wasted elements are never initialized.  */
1.1       noro     1352:
1.5       noro     1353:   yyssp = yyss;
                   1354:   yyvsp = yyvs;
1.8     ! noro     1355:
1.5       noro     1356:   goto yysetstate;
                   1357:
                   1358: /*------------------------------------------------------------.
                   1359: | yynewstate -- Push a new state, which is found in yystate.  |
                   1360: `------------------------------------------------------------*/
                   1361:  yynewstate:
                   1362:   /* In all cases, when you get here, the value and location stacks
                   1363:      have just been pushed. so pushing a state here evens the stacks.
                   1364:      */
                   1365:   yyssp++;
1.1       noro     1366:
1.5       noro     1367:  yysetstate:
                   1368:   *yyssp = yystate;
                   1369:
1.8     ! noro     1370:   if (yyss + yystacksize - 1 <= yyssp)
1.1       noro     1371:     {
1.5       noro     1372:       /* Get the current used size of the three stacks, in elements.  */
                   1373:       YYSIZE_T yysize = yyssp - yyss + 1;
                   1374:
                   1375: #ifdef yyoverflow
                   1376:       {
                   1377:        /* Give user a chance to reallocate the stack. Use copies of
                   1378:           these so that the &'s don't force the real ones into
                   1379:           memory.  */
                   1380:        YYSTYPE *yyvs1 = yyvs;
                   1381:        short *yyss1 = yyss;
                   1382:
1.8     ! noro     1383:
1.5       noro     1384:        /* Each stack pointer address is followed by the size of the
1.8     ! noro     1385:           data in use in that stack, in bytes.  This used to be a
        !          1386:           conditional around just the two extra args, but that might
        !          1387:           be undefined if yyoverflow is a macro.  */
1.5       noro     1388:        yyoverflow ("parser stack overflow",
                   1389:                    &yyss1, yysize * sizeof (*yyssp),
                   1390:                    &yyvs1, yysize * sizeof (*yyvsp),
1.8     ! noro     1391:
1.5       noro     1392:                    &yystacksize);
1.8     ! noro     1393:
1.5       noro     1394:        yyss = yyss1;
                   1395:        yyvs = yyvs1;
                   1396:       }
                   1397: #else /* no yyoverflow */
                   1398: # ifndef YYSTACK_RELOCATE
                   1399:       goto yyoverflowlab;
                   1400: # else
                   1401:       /* Extend the stack our own way.  */
1.8     ! noro     1402:       if (YYMAXDEPTH <= yystacksize)
1.5       noro     1403:        goto yyoverflowlab;
                   1404:       yystacksize *= 2;
1.8     ! noro     1405:       if (YYMAXDEPTH < yystacksize)
1.5       noro     1406:        yystacksize = YYMAXDEPTH;
                   1407:
                   1408:       {
                   1409:        short *yyss1 = yyss;
                   1410:        union yyalloc *yyptr =
                   1411:          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
                   1412:        if (! yyptr)
                   1413:          goto yyoverflowlab;
                   1414:        YYSTACK_RELOCATE (yyss);
                   1415:        YYSTACK_RELOCATE (yyvs);
1.8     ! noro     1416:
        !          1417: #  undef YYSTACK_RELOCATE
1.5       noro     1418:        if (yyss1 != yyssa)
                   1419:          YYSTACK_FREE (yyss1);
                   1420:       }
                   1421: # endif
                   1422: #endif /* no yyoverflow */
                   1423:
                   1424:       yyssp = yyss + yysize - 1;
                   1425:       yyvsp = yyvs + yysize - 1;
1.8     ! noro     1426:
1.5       noro     1427:
                   1428:       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                   1429:                  (unsigned long int) yystacksize));
                   1430:
1.8     ! noro     1431:       if (yyss + yystacksize - 1 <= yyssp)
1.5       noro     1432:        YYABORT;
1.1       noro     1433:     }
1.5       noro     1434:
                   1435:   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
                   1436:
                   1437:   goto yybackup;
                   1438:
                   1439: /*-----------.
                   1440: | yybackup.  |
                   1441: `-----------*/
                   1442: yybackup:
                   1443:
                   1444: /* Do appropriate processing given the current state.  */
                   1445: /* Read a lookahead token if we need one and don't already have one.  */
                   1446: /* yyresume: */
                   1447:
                   1448:   /* First try to decide what to do without reference to lookahead token.  */
                   1449:
                   1450:   yyn = yypact[yystate];
1.8     ! noro     1451:   if (yyn == YYPACT_NINF)
1.5       noro     1452:     goto yydefault;
                   1453:
                   1454:   /* Not known => get a lookahead token if don't already have one.  */
                   1455:
1.8     ! noro     1456:   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
1.5       noro     1457:   if (yychar == YYEMPTY)
1.1       noro     1458:     {
1.5       noro     1459:       YYDPRINTF ((stderr, "Reading a token: "));
                   1460:       yychar = YYLEX;
1.1       noro     1461:     }
1.5       noro     1462:
1.8     ! noro     1463:   if (yychar <= YYEOF)
1.1       noro     1464:     {
1.8     ! noro     1465:       yychar = yytoken = YYEOF;
1.5       noro     1466:       YYDPRINTF ((stderr, "Now at end of input.\n"));
1.1       noro     1467:     }
1.5       noro     1468:   else
1.1       noro     1469:     {
1.8     ! noro     1470:       yytoken = YYTRANSLATE (yychar);
        !          1471:       YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
1.1       noro     1472:     }
1.5       noro     1473:
1.8     ! noro     1474:   /* If the proper action on seeing token YYTOKEN is to reduce or to
        !          1475:      detect an error, take that action.  */
        !          1476:   yyn += yytoken;
        !          1477:   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1.5       noro     1478:     goto yydefault;
                   1479:   yyn = yytable[yyn];
1.8     ! noro     1480:   if (yyn <= 0)
1.1       noro     1481:     {
1.8     ! noro     1482:       if (yyn == 0 || yyn == YYTABLE_NINF)
1.5       noro     1483:        goto yyerrlab;
                   1484:       yyn = -yyn;
                   1485:       goto yyreduce;
                   1486:     }
                   1487:
                   1488:   if (yyn == YYFINAL)
                   1489:     YYACCEPT;
                   1490:
                   1491:   /* Shift the lookahead token.  */
1.8     ! noro     1492:   YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
1.5       noro     1493:
                   1494:   /* Discard the token being shifted unless it is eof.  */
                   1495:   if (yychar != YYEOF)
                   1496:     yychar = YYEMPTY;
                   1497:
                   1498:   *++yyvsp = yylval;
1.8     ! noro     1499:
1.5       noro     1500:
                   1501:   /* Count tokens shifted since error; after three, turn off error
                   1502:      status.  */
                   1503:   if (yyerrstatus)
                   1504:     yyerrstatus--;
                   1505:
                   1506:   yystate = yyn;
                   1507:   goto yynewstate;
                   1508:
                   1509:
                   1510: /*-----------------------------------------------------------.
                   1511: | yydefault -- do the default action for the current state.  |
                   1512: `-----------------------------------------------------------*/
                   1513: yydefault:
                   1514:   yyn = yydefact[yystate];
                   1515:   if (yyn == 0)
                   1516:     goto yyerrlab;
                   1517:   goto yyreduce;
                   1518:
                   1519:
                   1520: /*-----------------------------.
                   1521: | yyreduce -- Do a reduction.  |
                   1522: `-----------------------------*/
1.1       noro     1523: yyreduce:
1.5       noro     1524:   /* yyn is the number of a rule to reduce with.  */
                   1525:   yylen = yyr2[yyn];
                   1526:
                   1527:   /* If YYLEN is nonzero, implement the default value of the action:
                   1528:      `$$ = $1'.
                   1529:
1.8     ! noro     1530:      Otherwise, the following line sets YYVAL to garbage.
        !          1531:      This behavior is undocumented and Bison
1.5       noro     1532:      users should not rely upon it.  Assigning to YYVAL
                   1533:      unconditionally makes the parser a bit smaller, and it avoids a
                   1534:      GCC warning that YYVAL may be used uninitialized.  */
                   1535:   yyval = yyvsp[1-yylen];
                   1536:
                   1537:
1.8     ! noro     1538:   YY_REDUCE_PRINT (yyn);
        !          1539:   switch (yyn)
        !          1540:     {
        !          1541:         case 2:
1.4       noro     1542: #line 131 "parse.y"
1.8     ! noro     1543:     {
1.5       noro     1544:                                parse_snode = yyvsp[0].s;
                   1545:                                if ( yychar >= 0 )
                   1546:                                        fprintf(stderr,
                   1547:                                                "Warning: a token was wasted after an 'if' statement without 'else'.\n");
                   1548:                                YYACCEPT;
                   1549:                        }
                   1550:     break;
1.8     ! noro     1551:
        !          1552:   case 3:
1.5       noro     1553: #line 140 "parse.y"
1.8     ! noro     1554:     { yyval.s = 0; }
1.5       noro     1555:     break;
1.8     ! noro     1556:
        !          1557:   case 4:
1.5       noro     1558: #line 141 "parse.y"
1.8     ! noro     1559:     { gdef=1; }
1.5       noro     1560:     break;
1.8     ! noro     1561:
        !          1562:   case 5:
1.5       noro     1563: #line 141 "parse.y"
1.8     ! noro     1564:     { gdef=0; }
1.5       noro     1565:     break;
1.8     ! noro     1566:
        !          1567:   case 6:
1.5       noro     1568: #line 142 "parse.y"
1.8     ! noro     1569:     { yyval.s = 0; NOPR; }
1.5       noro     1570:     break;
1.8     ! noro     1571:
        !          1572:   case 7:
1.5       noro     1573: #line 143 "parse.y"
1.8     ! noro     1574:     { mgdef=1; }
1.5       noro     1575:     break;
1.8     ! noro     1576:
        !          1577:   case 8:
1.5       noro     1578: #line 143 "parse.y"
1.8     ! noro     1579:     { mgdef=0; }
1.5       noro     1580:     break;
1.8     ! noro     1581:
        !          1582:   case 9:
1.5       noro     1583: #line 144 "parse.y"
1.8     ! noro     1584:     { yyval.s = 0; NOPR; }
1.5       noro     1585:     break;
1.8     ! noro     1586:
        !          1587:   case 10:
1.5       noro     1588: #line 145 "parse.y"
1.8     ! noro     1589:     { ldef=1; }
1.5       noro     1590:     break;
1.8     ! noro     1591:
        !          1592:   case 11:
1.5       noro     1593: #line 145 "parse.y"
1.8     ! noro     1594:     { ldef=0; }
1.5       noro     1595:     break;
1.8     ! noro     1596:
        !          1597:   case 12:
1.5       noro     1598: #line 146 "parse.y"
1.8     ! noro     1599:     { yyval.s = 0; NOPR; }
1.5       noro     1600:     break;
1.8     ! noro     1601:
        !          1602:   case 13:
1.5       noro     1603: #line 148 "parse.y"
1.8     ! noro     1604:     { appenduflist(yyvsp[-1].n); yyval.s = 0; NOPR; }
1.5       noro     1605:     break;
1.8     ! noro     1606:
        !          1607:   case 14:
1.5       noro     1608: #line 150 "parse.y"
1.8     ! noro     1609:     { structdef(yyvsp[-4].p,yyvsp[-2].n); yyval.s = 0; NOPR; }
1.5       noro     1610:     break;
1.8     ! noro     1611:
        !          1612:   case 15:
1.5       noro     1613: #line 152 "parse.y"
1.8     ! noro     1614:     { yyval.s = mksnode(1,S_SINGLE,yyvsp[-1].f); }
1.5       noro     1615:     break;
1.8     ! noro     1616:
        !          1617:   case 16:
1.5       noro     1618: #line 154 "parse.y"
1.8     ! noro     1619:     { yyval.s = yyvsp[0].s; }
1.5       noro     1620:     break;
1.8     ! noro     1621:
        !          1622:   case 17:
1.5       noro     1623: #line 156 "parse.y"
1.8     ! noro     1624:     { yyval.s = mksnode(0,S_BREAK); }
1.5       noro     1625:     break;
1.8     ! noro     1626:
        !          1627:   case 18:
1.5       noro     1628: #line 158 "parse.y"
1.8     ! noro     1629:     { yyval.s = mksnode(0,S_CONTINUE); }
1.5       noro     1630:     break;
1.8     ! noro     1631:
        !          1632:   case 19:
1.5       noro     1633: #line 160 "parse.y"
1.8     ! noro     1634:     { yyval.s = mksnode(1,S_RETURN,0); }
1.5       noro     1635:     break;
1.8     ! noro     1636:
        !          1637:   case 20:
1.5       noro     1638: #line 162 "parse.y"
1.8     ! noro     1639:     { yyval.s = mksnode(1,S_RETURN,yyvsp[-1].f); }
1.5       noro     1640:     break;
1.8     ! noro     1641:
        !          1642:   case 21:
1.5       noro     1643: #line 164 "parse.y"
1.8     ! noro     1644:     { yyval.s = mksnode(4,S_IFELSE,yyvsp[-4].i,yyvsp[-2].n,yyvsp[0].s,0); yyvsp[0].s?yyval.s->ln=yyvsp[0].s->ln:0; NOPR; }
1.5       noro     1645:     break;
1.8     ! noro     1646:
        !          1647:   case 22:
1.5       noro     1648: #line 166 "parse.y"
1.8     ! noro     1649:     { yyval.s = mksnode(4,S_IFELSE,yyvsp[-6].i,yyvsp[-4].n,yyvsp[-2].s,yyvsp[0].s); yyvsp[0].s?yyval.s->ln=yyvsp[0].s->ln:0; NOPR; }
1.5       noro     1650:     break;
1.8     ! noro     1651:
        !          1652:   case 23:
1.5       noro     1653: #line 168 "parse.y"
1.8     ! noro     1654:     { yyval.s = mksnode(5,S_FOR,yyvsp[-8].i,yyvsp[-6].n,yyvsp[-4].n?yyvsp[-4].n:ONENODE,yyvsp[-2].n,yyvsp[0].s); yyvsp[0].s?yyval.s->ln=yyvsp[0].s->ln:0; NOPR; }
1.5       noro     1655:     break;
1.8     ! noro     1656:
        !          1657:   case 24:
1.5       noro     1658: #line 170 "parse.y"
1.8     ! noro     1659:     { yyval.s = mksnode(5,S_FOR,yyvsp[-4].i,0,yyvsp[-2].n,0,yyvsp[0].s); yyvsp[0].s?yyval.s->ln=yyvsp[0].s->ln:0; NOPR; }
1.5       noro     1660:     break;
1.8     ! noro     1661:
        !          1662:   case 25:
1.5       noro     1663: #line 172 "parse.y"
1.8     ! noro     1664:     { yyval.s = mksnode(3,S_DO,yyvsp[-6].i,yyvsp[-5].s,yyvsp[-2].n); NOPR; }
1.5       noro     1665:     break;
1.8     ! noro     1666:
        !          1667:   case 26:
1.5       noro     1668: #line 174 "parse.y"
1.8     ! noro     1669:     { yyval.s = mksnode(3,S_PFDEF,yyvsp[-7].p,yyvsp[-5].n,yyvsp[-1].f); NOPR; }
1.5       noro     1670:     break;
1.8     ! noro     1671:
        !          1672:   case 27:
1.5       noro     1673: #line 176 "parse.y"
1.8     ! noro     1674:     { yyval.s = mksnode(3,S_PFDEF,yyvsp[-4].p,yyvsp[-2].n,0); NOPR; }
1.5       noro     1675:     break;
1.8     ! noro     1676:
        !          1677:   case 28:
1.5       noro     1678: #line 177 "parse.y"
1.8     ! noro     1679:     { mkpvs(yyvsp[0].p); }
1.5       noro     1680:     break;
1.8     ! noro     1681:
        !          1682:   case 29:
1.5       noro     1683: #line 177 "parse.y"
1.8     ! noro     1684:     { ldef = 1; }
1.5       noro     1685:     break;
1.8     ! noro     1686:
        !          1687:   case 30:
1.5       noro     1688: #line 177 "parse.y"
1.8     ! noro     1689:     { ldef = -1; }
1.5       noro     1690:     break;
1.8     ! noro     1691:
        !          1692:   case 31:
1.5       noro     1693: #line 178 "parse.y"
1.8     ! noro     1694:     {
1.4       noro     1695:                                mkuf(yyvsp[-10].p,asir_infile->name,yyvsp[-6].n,
                   1696:                                        mksnode(1,S_CPLX,yyvsp[-1].n),yyvsp[-11].i,asir_infile->ln,yyvsp[-3].p,CUR_MODULE);
1.8     ! noro     1697:                                yyval.s = 0; NOPR;
1.1       noro     1698:                        }
1.5       noro     1699:     break;
1.8     ! noro     1700:
        !          1701:   case 32:
1.5       noro     1702: #line 184 "parse.y"
1.8     ! noro     1703:     {
        !          1704:                                CUR_MODULE = mkmodule(yyvsp[-1].p);
        !          1705:                                MPVS = CUR_MODULE->pvs;
        !          1706:                                yyval.s = mksnode(1,S_MODULE,CUR_MODULE); NOPR;
        !          1707:                        }
1.5       noro     1708:     break;
1.8     ! noro     1709:
        !          1710:   case 33:
        !          1711: #line 190 "parse.y"
        !          1712:     { CUR_MODULE = 0; MPVS = 0; yyval.s = mksnode(1,S_MODULE,0); NOPR; }
1.5       noro     1713:     break;
1.8     ! noro     1714:
        !          1715:   case 34:
        !          1716: #line 192 "parse.y"
        !          1717:     { yyerrok; yyval.s = 0; }
1.5       noro     1718:     break;
1.8     ! noro     1719:
        !          1720:   case 35:
        !          1721: #line 195 "parse.y"
        !          1722:     { if ( main_parser ) prresult = 1; }
1.5       noro     1723:     break;
1.8     ! noro     1724:
        !          1725:   case 36:
        !          1726: #line 197 "parse.y"
        !          1727:     { if ( main_parser ) prresult = 0; }
1.5       noro     1728:     break;
1.8     ! noro     1729:
        !          1730:   case 37:
        !          1731: #line 200 "parse.y"
        !          1732:     { yyval.p = 0; }
1.5       noro     1733:     break;
1.8     ! noro     1734:
        !          1735:   case 38:
        !          1736: #line 202 "parse.y"
        !          1737:     { yyval.p = yyvsp[0].p; }
1.5       noro     1738:     break;
1.8     ! noro     1739:
        !          1740:   case 39:
        !          1741: #line 205 "parse.y"
        !          1742:     { yyval.s = mksnode(1,S_CPLX,yyvsp[-1].n); }
1.5       noro     1743:     break;
1.8     ! noro     1744:
        !          1745:   case 40:
        !          1746: #line 208 "parse.y"
        !          1747:     { MKNODE(yyval.n,yyvsp[0].p,0); }
1.5       noro     1748:     break;
1.8     ! noro     1749:
        !          1750:   case 41:
        !          1751: #line 210 "parse.y"
        !          1752:     { appendtonode(yyvsp[-2].n,yyvsp[0].p,&yyval.n); }
1.5       noro     1753:     break;
1.8     ! noro     1754:
        !          1755:   case 42:
        !          1756: #line 213 "parse.y"
        !          1757:     { MKNODE(yyval.n,yyvsp[0].p,0); }
1.5       noro     1758:     break;
1.8     ! noro     1759:
        !          1760:   case 43:
        !          1761: #line 215 "parse.y"
        !          1762:     { appendtonode(yyvsp[-2].n,yyvsp[0].p,&yyval.n); }
1.5       noro     1763:     break;
1.8     ! noro     1764:
        !          1765:   case 44:
        !          1766: #line 218 "parse.y"
        !          1767:     { val = (pointer)makepvar(yyvsp[0].p); MKNODE(yyval.n,val,0); }
1.5       noro     1768:     break;
1.8     ! noro     1769:
        !          1770:   case 45:
        !          1771: #line 220 "parse.y"
        !          1772:     { appendtonode(yyvsp[-2].n,(pointer)makepvar(yyvsp[0].p),&yyval.n); }
1.5       noro     1773:     break;
1.8     ! noro     1774:
        !          1775:   case 46:
        !          1776: #line 223 "parse.y"
        !          1777:     { yyval.n = 0; }
1.5       noro     1778:     break;
1.8     ! noro     1779:
        !          1780:   case 47:
        !          1781: #line 225 "parse.y"
        !          1782:     { appendtonode(yyvsp[-1].n,(pointer)yyvsp[0].s,&yyval.n); }
1.5       noro     1783:     break;
1.8     ! noro     1784:
        !          1785:   case 48:
        !          1786: #line 228 "parse.y"
        !          1787:     { yyval.n = 0; }
1.5       noro     1788:     break;
1.8     ! noro     1789:
        !          1790:   case 49:
        !          1791: #line 230 "parse.y"
        !          1792:     { yyval.n = yyvsp[0].n; }
1.5       noro     1793:     break;
1.8     ! noro     1794:
        !          1795:   case 50:
        !          1796: #line 233 "parse.y"
        !          1797:     { MKNODE(yyval.n,yyvsp[0].f,0); }
1.5       noro     1798:     break;
1.8     ! noro     1799:
        !          1800:   case 51:
        !          1801: #line 235 "parse.y"
        !          1802:     { appendtonode(yyvsp[-2].n,(pointer)yyvsp[0].f,&yyval.n); }
1.5       noro     1803:     break;
1.8     ! noro     1804:
        !          1805:   case 52:
        !          1806: #line 238 "parse.y"
        !          1807:     { MKNODE(yyval.n,yyvsp[0].f,0); }
1.5       noro     1808:     break;
1.8     ! noro     1809:
        !          1810:   case 53:
        !          1811: #line 240 "parse.y"
        !          1812:     { appendtonode(yyvsp[-2].n,(pointer)yyvsp[0].f,&yyval.n); }
1.5       noro     1813:     break;
1.8     ! noro     1814:
        !          1815:   case 54:
        !          1816: #line 243 "parse.y"
        !          1817:     { yyval.p = yyvsp[0].p; }
1.5       noro     1818:     break;
1.8     ! noro     1819:
        !          1820:   case 55:
        !          1821: #line 245 "parse.y"
        !          1822:     { yyval.p = yyvsp[0].p; }
1.5       noro     1823:     break;
1.8     ! noro     1824:
        !          1825:   case 56:
        !          1826: #line 248 "parse.y"
        !          1827:     { yyval.f = mkfnode(2,I_OPT,yyvsp[-2].p,yyvsp[0].f); }
1.5       noro     1828:     break;
1.8     ! noro     1829:
        !          1830:   case 57:
1.5       noro     1831: #line 251 "parse.y"
1.8     ! noro     1832:     { yyval.f = mkfnode(1,I_STR,yyvsp[0].p); }
1.5       noro     1833:     break;
1.8     ! noro     1834:
        !          1835:   case 58:
1.5       noro     1836: #line 253 "parse.y"
1.8     ! noro     1837:     { yyval.f = mkfnode(1,I_FORMULA,yyvsp[0].p); }
1.5       noro     1838:     break;
1.8     ! noro     1839:
        !          1840:   case 59:
1.5       noro     1841: #line 255 "parse.y"
1.8     ! noro     1842:     { yyval.f = mkfnode(1,I_ANS,yyvsp[0].i); }
1.5       noro     1843:     break;
1.8     ! noro     1844:
        !          1845:   case 60:
1.5       noro     1846: #line 257 "parse.y"
1.8     ! noro     1847:     { yyval.f = mkfnode(0,I_GF2NGEN); }
1.5       noro     1848:     break;
1.8     ! noro     1849:
        !          1850:   case 61:
1.5       noro     1851: #line 259 "parse.y"
1.8     ! noro     1852:     { yyval.f = mkfnode(0,I_GFPNGEN); }
        !          1853:     break;
        !          1854:
        !          1855:   case 62:
        !          1856: #line 261 "parse.y"
        !          1857:     { yyval.f = mkfnode(0,I_GFSNGEN); }
        !          1858:     break;
        !          1859:
        !          1860:   case 63:
        !          1861: #line 263 "parse.y"
        !          1862:     {
1.1       noro     1863:                                FUNC f;
                   1864:
                   1865:                                searchf(noargsysf,yyvsp[0].p,&f);
                   1866:                                if ( f )
                   1867:                                         yyval.f = mkfnode(2,I_FUNC,f,0);
                   1868:                                else {
                   1869:                                        searchc(yyvsp[0].p,&f);
                   1870:                                        if ( f )
                   1871:                                                yyval.f = mkfnode(2,I_FUNC,f,mkfnode(1,I_LIST,0));
                   1872:                                        else {
1.7       noro     1873:                                                gen_searchf_searchonly(yyvsp[0].p,(FUNC *)&f);
1.1       noro     1874:                                                if ( f )
                   1875:                                                        makesrvar(f,(P *)&val);
                   1876:                                                else
                   1877:                                                        makevar(yyvsp[0].p,(P *)&val);
                   1878:                                                yyval.f = mkfnode(1,I_FORMULA,val);
                   1879:                                        }
                   1880:                                }
                   1881:                        }
1.5       noro     1882:     break;
1.8     ! noro     1883:
        !          1884:   case 64:
        !          1885: #line 284 "parse.y"
        !          1886:     {
1.3       noro     1887:                                gen_searchf(yyvsp[-3].p,(FUNC *)&val);
1.4       noro     1888:                                print_crossref(val);
1.1       noro     1889:                                yyval.f = mkfnode(2,I_FUNC,val,mkfnode(1,I_LIST,yyvsp[-1].n));
                   1890:                        }
1.5       noro     1891:     break;
1.8     ! noro     1892:
        !          1893:   case 65:
        !          1894: #line 291 "parse.y"
        !          1895:     {
1.3       noro     1896:                                gen_searchf(yyvsp[-5].p,(FUNC *)&val);
1.4       noro     1897:                                print_crossref(val);
1.1       noro     1898:                                yyval.f = mkfnode(3,I_FUNC_OPT,val,
                   1899:                                        mkfnode(1,I_LIST,yyvsp[-3].n),mkfnode(1,I_LIST,yyvsp[-1].n));
                   1900:                        }
1.5       noro     1901:     break;
1.8     ! noro     1902:
        !          1903:   case 66:
        !          1904: #line 298 "parse.y"
        !          1905:     {
1.3       noro     1906:                                gen_searchf(yyvsp[-3].p,(FUNC *)&val);
1.4       noro     1907:                                print_crossref(val);
1.3       noro     1908:                                yyval.f = mkfnode(2,I_MAP,val,mkfnode(1,I_LIST,yyvsp[-1].n));
                   1909:                        }
1.5       noro     1910:     break;
1.8     ! noro     1911:
        !          1912:   case 67:
        !          1913: #line 304 "parse.y"
        !          1914:     {
1.3       noro     1915:                                gen_searchf(yyvsp[-3].p,(FUNC *)&val);
1.4       noro     1916:                                print_crossref(val);
1.3       noro     1917:                                yyval.f = mkfnode(2,I_RECMAP,val,mkfnode(1,I_LIST,yyvsp[-1].n));
                   1918:                        }
1.5       noro     1919:     break;
1.8     ! noro     1920:
        !          1921:   case 68:
        !          1922: #line 310 "parse.y"
        !          1923:     {
1.1       noro     1924:                                searchpf(yyvsp[-6].p,(FUNC *)&val);
1.8     ! noro     1925:                                yyval.f = mkfnode(3,I_PFDERIV,val,mkfnode(1,I_LIST,yyvsp[-1].n),mkfnode(1,I_LIST,yyvsp[-4].n));
1.1       noro     1926:                        }
1.5       noro     1927:     break;
1.8     ! noro     1928:
        !          1929:   case 69:
        !          1930: #line 315 "parse.y"
        !          1931:     {
1.3       noro     1932:                                yyval.f = mkfnode(2,I_GETOPT,yyvsp[-1].p);
                   1933:                        }
1.5       noro     1934:     break;
1.8     ! noro     1935:
        !          1936:   case 70:
        !          1937: #line 319 "parse.y"
        !          1938:     {
1.3       noro     1939:                                yyval.f = mkfnode(2,I_GETOPT,0);
1.1       noro     1940:                        }
1.5       noro     1941:     break;
1.8     ! noro     1942:
        !          1943:   case 71:
        !          1944: #line 323 "parse.y"
        !          1945:     {
1.3       noro     1946:                                yyval.f = mkfnode(3,I_TIMER,yyvsp[-5].f,yyvsp[-3].f,yyvsp[-1].f);
1.1       noro     1947:                        }
1.5       noro     1948:     break;
1.8     ! noro     1949:
        !          1950:   case 72:
        !          1951: #line 327 "parse.y"
        !          1952:     {
1.3       noro     1953:                                searchf(parif,yyvsp[-1].p,(FUNC *)&val);
                   1954:                                if ( !val )
                   1955:                                        mkparif(yyvsp[-1].p,(FUNC *)&val);
                   1956:                                yyval.f = mkfnode(2,I_FUNC,val,0);
1.1       noro     1957:                        }
1.5       noro     1958:     break;
1.8     ! noro     1959:
        !          1960:   case 73:
        !          1961: #line 334 "parse.y"
        !          1962:     {
1.1       noro     1963:                                searchf(parif,yyvsp[-3].p,(FUNC *)&val);
                   1964:                                if ( !val )
                   1965:                                        mkparif(yyvsp[-3].p,(FUNC *)&val);
                   1966:                                yyval.f = mkfnode(2,I_FUNC,val,mkfnode(1,I_LIST,yyvsp[-1].n));
                   1967:                        }
1.5       noro     1968:     break;
1.8     ! noro     1969:
        !          1970:   case 74:
        !          1971: #line 341 "parse.y"
        !          1972:     {
1.1       noro     1973:                                yyval.f = mkfnode(2,I_IFUNC,yyvsp[-4].f,mkfnode(1,I_LIST,yyvsp[-1].n));
                   1974:                        }
1.5       noro     1975:     break;
1.8     ! noro     1976:
        !          1977:   case 75:
        !          1978: #line 345 "parse.y"
        !          1979:     {
        !          1980:                                if ( main_parser || allow_create_var )
        !          1981:                                        t = mkfnode(2,I_PVAR,makepvar(yyvsp[-3].p),0);
        !          1982:                                else {
        !          1983:                                        ind = searchpvar(yyvsp[-3].p);
        !          1984:                                        if ( ind == -1 ) {
        !          1985:                                                fprintf(stderr,"%s : no such variable.\n",yyvsp[-3].p);
        !          1986:                                                YYABORT;
        !          1987:                                        } else
        !          1988:                                                t = mkfnode(2,I_PVAR,ind,0);
        !          1989:                                }
        !          1990:                                yyval.f = mkfnode(2,I_IFUNC,t,mkfnode(1,I_LIST,yyvsp[-1].n));
        !          1991:                        }
        !          1992:     break;
        !          1993:
        !          1994:   case 76:
        !          1995: #line 359 "parse.y"
        !          1996:     { yyval.f = mkfnode(1,I_CAR,yyvsp[-1].f); }
1.5       noro     1997:     break;
1.8     ! noro     1998:
        !          1999:   case 77:
        !          2000: #line 361 "parse.y"
        !          2001:     { yyval.f = mkfnode(1,I_CDR,yyvsp[-1].f); }
1.5       noro     2002:     break;
1.8     ! noro     2003:
        !          2004:   case 78:
        !          2005: #line 363 "parse.y"
        !          2006:     { yyval.f = mkfnode(1,I_PAREN,yyvsp[-1].f); }
1.5       noro     2007:     break;
1.8     ! noro     2008:
        !          2009:   case 79:
        !          2010: #line 365 "parse.y"
        !          2011:     {
1.4       noro     2012:                                if ( main_parser || allow_create_var )
1.1       noro     2013:                                        yyval.f = mkfnode(2,I_PVAR,makepvar(yyvsp[0].p),0);
                   2014:                                else {
                   2015:                                        ind = searchpvar(yyvsp[0].p);
                   2016:                                        if ( ind == -1 ) {
                   2017:                                                fprintf(stderr,"%s : no such variable.\n",yyvsp[0].p);
                   2018:                                                YYABORT;
                   2019:                                        } else
                   2020:                                                yyval.f = mkfnode(2,I_PVAR,ind,0);
                   2021:                                }
                   2022:                        }
1.5       noro     2023:     break;
1.8     ! noro     2024:
        !          2025:   case 80:
        !          2026: #line 378 "parse.y"
        !          2027:     {
1.1       noro     2028:                                if ( yyvsp[-3].f->id == I_PVAR || yyvsp[-3].f->id == I_INDEX ) {
                   2029:                                        appendtonode((NODE)yyvsp[-3].f->arg[1],(pointer)yyvsp[-1].f,&a);
                   2030:                                        yyvsp[-3].f->arg[1] = (pointer)a; yyval.f = yyvsp[-3].f;
                   2031:                                } else {
                   2032:                                        MKNODE(a,yyvsp[-1].f,0);
                   2033:                                        yyval.f = mkfnode(2,I_INDEX,(pointer)yyvsp[-3].f,a);
                   2034:                                }
                   2035:                        }
1.5       noro     2036:     break;
1.8     ! noro     2037:
        !          2038:   case 81:
        !          2039: #line 388 "parse.y"
        !          2040:     { yyval.f = mkfnode(2,I_POINT,yyvsp[-2].f,yyvsp[0].p); }
1.5       noro     2041:     break;
1.8     ! noro     2042:
        !          2043:   case 82:
1.6       noro     2044: #line 391 "parse.y"
1.8     ! noro     2045:     { yyval.f = yyvsp[0].f; }
1.5       noro     2046:     break;
1.8     ! noro     2047:
        !          2048:   case 83:
1.6       noro     2049: #line 393 "parse.y"
1.8     ! noro     2050:     { yyval.f = mkfnode(3,I_CAST,structtoindex(yyvsp[-2].p),yyvsp[0].f,0); }
1.5       noro     2051:     break;
1.8     ! noro     2052:
        !          2053:   case 84:
1.6       noro     2054: #line 395 "parse.y"
1.8     ! noro     2055:     { yyval.f = mkfnode(2,I_ASSPVAR,yyvsp[-2].f,yyvsp[0].f); }
1.5       noro     2056:     break;
1.8     ! noro     2057:
        !          2058:   case 85:
1.6       noro     2059: #line 397 "parse.y"
1.8     ! noro     2060:     { yyval.f = mkfnode(2,I_ASSPVAR,yyvsp[-2].f,mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f)); }
1.5       noro     2061:     break;
1.8     ! noro     2062:
        !          2063:   case 86:
1.6       noro     2064: #line 399 "parse.y"
1.8     ! noro     2065:     { yyval.f = mkfnode(2,I_POSTSELF,yyvsp[0].p,yyvsp[-1].f); }
1.5       noro     2066:     break;
1.8     ! noro     2067:
        !          2068:   case 87:
1.6       noro     2069: #line 401 "parse.y"
1.8     ! noro     2070:     { yyval.f = mkfnode(2,I_PRESELF,yyvsp[-1].p,yyvsp[0].f); }
1.5       noro     2071:     break;
1.8     ! noro     2072:
        !          2073:   case 88:
1.6       noro     2074: #line 403 "parse.y"
1.8     ! noro     2075:     { yyval.f = mkfnode(1,I_LIST,yyvsp[-1].n); }
1.5       noro     2076:     break;
1.8     ! noro     2077:
        !          2078:   case 89:
1.6       noro     2079: #line 405 "parse.y"
1.8     ! noro     2080:     { yyval.f = yyvsp[0].f; }
1.5       noro     2081:     break;
1.8     ! noro     2082:
        !          2083:   case 90:
1.6       noro     2084: #line 407 "parse.y"
1.8     ! noro     2085:     { yyval.f = mkfnode(1,I_MINUS,yyvsp[0].f); }
1.5       noro     2086:     break;
1.8     ! noro     2087:
        !          2088:   case 91:
1.6       noro     2089: #line 409 "parse.y"
1.8     ! noro     2090:     { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
1.5       noro     2091:     break;
1.8     ! noro     2092:
        !          2093:   case 92:
1.6       noro     2094: #line 411 "parse.y"
1.8     ! noro     2095:     { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
1.5       noro     2096:     break;
1.8     ! noro     2097:
        !          2098:   case 93:
1.6       noro     2099: #line 413 "parse.y"
1.8     ! noro     2100:     { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
1.5       noro     2101:     break;
1.8     ! noro     2102:
        !          2103:   case 94:
1.6       noro     2104: #line 415 "parse.y"
1.8     ! noro     2105:     { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
1.5       noro     2106:     break;
1.8     ! noro     2107:
        !          2108:   case 95:
1.6       noro     2109: #line 417 "parse.y"
1.8     ! noro     2110:     { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
1.5       noro     2111:     break;
1.8     ! noro     2112:
        !          2113:   case 96:
1.6       noro     2114: #line 419 "parse.y"
1.8     ! noro     2115:     { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
1.5       noro     2116:     break;
1.8     ! noro     2117:
        !          2118:   case 97:
1.6       noro     2119: #line 421 "parse.y"
1.8     ! noro     2120:     { yyval.f = mkfnode(3,I_COP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
1.5       noro     2121:     break;
1.8     ! noro     2122:
        !          2123:   case 98:
1.6       noro     2124: #line 423 "parse.y"
1.8     ! noro     2125:     { yyval.f = mkfnode(1,I_NOT,yyvsp[0].f); }
1.5       noro     2126:     break;
1.8     ! noro     2127:
        !          2128:   case 99:
1.6       noro     2129: #line 425 "parse.y"
1.8     ! noro     2130:     { yyval.f = mkfnode(2,I_OR,yyvsp[-2].f,yyvsp[0].f); }
1.5       noro     2131:     break;
1.8     ! noro     2132:
        !          2133:   case 100:
1.6       noro     2134: #line 427 "parse.y"
1.8     ! noro     2135:     { yyval.f = mkfnode(2,I_AND,yyvsp[-2].f,yyvsp[0].f); }
1.5       noro     2136:     break;
1.8     ! noro     2137:
        !          2138:   case 101:
1.6       noro     2139: #line 429 "parse.y"
1.8     ! noro     2140:     { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[0].f,0); }
1.5       noro     2141:     break;
1.8     ! noro     2142:
        !          2143:   case 102:
1.6       noro     2144: #line 431 "parse.y"
1.8     ! noro     2145:     { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
1.5       noro     2146:     break;
1.8     ! noro     2147:
        !          2148:   case 103:
1.6       noro     2149: #line 433 "parse.y"
1.8     ! noro     2150:     { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
        !          2151:     break;
        !          2152:
        !          2153:   case 104:
        !          2154: #line 435 "parse.y"
        !          2155:     { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
        !          2156:     break;
        !          2157:
        !          2158:   case 105:
        !          2159: #line 437 "parse.y"
        !          2160:     { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
        !          2161:     break;
        !          2162:
        !          2163:   case 106:
        !          2164: #line 439 "parse.y"
        !          2165:     { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
        !          2166:     break;
        !          2167:
        !          2168:   case 107:
        !          2169: #line 441 "parse.y"
        !          2170:     { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
        !          2171:     break;
        !          2172:
        !          2173:   case 108:
        !          2174: #line 443 "parse.y"
        !          2175:     { yyval.f = mkfnode(3,I_CE,yyvsp[-4].f,yyvsp[-2].f,yyvsp[0].f); }
        !          2176:     break;
        !          2177:
        !          2178:   case 109:
        !          2179: #line 445 "parse.y"
        !          2180:     { yyval.f = mkfnode(1,I_EV,yyvsp[-1].n); }
        !          2181:     break;
        !          2182:
        !          2183:   case 110:
        !          2184: #line 447 "parse.y"
        !          2185:     { yyval.f = mkfnode(1,I_NEWCOMP,(int)structtoindex(yyvsp[-1].p)); }
        !          2186:     break;
        !          2187:
        !          2188:   case 111:
        !          2189: #line 449 "parse.y"
        !          2190:     { MKQUOTE(quote,yyvsp[-1].f); yyval.f = mkfnode(1,I_FORMULA,(pointer)quote); }
        !          2191:     break;
        !          2192:
        !          2193:   case 112:
        !          2194: #line 451 "parse.y"
        !          2195:     { yyval.f = mkfnode(2,I_CONS,yyvsp[-3].n,yyvsp[-1].f); }
        !          2196:     break;
        !          2197:
        !          2198:   case 113:
        !          2199: #line 453 "parse.y"
        !          2200:     { MKQUOTE(quote,yyvsp[0].f); yyval.f = mkfnode(1,I_FORMULA,(pointer)quote); }
1.5       noro     2201:     break;
                   2202:
                   2203:
1.8     ! noro     2204:     }
        !          2205:
        !          2206: /* Line 999 of yacc.c.  */
        !          2207: #line 2208 "y.tab.c"
1.5       noro     2208: 
                   2209:   yyvsp -= yylen;
                   2210:   yyssp -= yylen;
                   2211:
1.8     ! noro     2212:
        !          2213:   YY_STACK_PRINT (yyss, yyssp);
1.5       noro     2214:
                   2215:   *++yyvsp = yyval;
1.8     ! noro     2216:
1.5       noro     2217:
                   2218:   /* Now `shift' the result of the reduction.  Determine what state
                   2219:      that goes to, based on the state we popped back to and the rule
                   2220:      number reduced by.  */
                   2221:
                   2222:   yyn = yyr1[yyn];
                   2223:
1.8     ! noro     2224:   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
        !          2225:   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
1.5       noro     2226:     yystate = yytable[yystate];
                   2227:   else
1.8     ! noro     2228:     yystate = yydefgoto[yyn - YYNTOKENS];
1.5       noro     2229:
                   2230:   goto yynewstate;
                   2231:
                   2232:
                   2233: /*------------------------------------.
                   2234: | yyerrlab -- here on detecting error |
                   2235: `------------------------------------*/
                   2236: yyerrlab:
                   2237:   /* If not already recovering from an error, report this error.  */
                   2238:   if (!yyerrstatus)
                   2239:     {
                   2240:       ++yynerrs;
1.8     ! noro     2241: #if YYERROR_VERBOSE
1.5       noro     2242:       yyn = yypact[yystate];
                   2243:
1.8     ! noro     2244:       if (YYPACT_NINF < yyn && yyn < YYLAST)
1.5       noro     2245:        {
                   2246:          YYSIZE_T yysize = 0;
1.8     ! noro     2247:          int yytype = YYTRANSLATE (yychar);
        !          2248:          const char* yyprefix;
1.5       noro     2249:          char *yymsg;
1.8     ! noro     2250:          int yyx;
1.5       noro     2251:
                   2252:          /* Start YYX at -YYN if negative to avoid negative indexes in
                   2253:             YYCHECK.  */
1.8     ! noro     2254:          int yyxbegin = yyn < 0 ? -yyn : 0;
        !          2255:
        !          2256:          /* Stay within bounds of both yycheck and yytname.  */
        !          2257:          int yychecklim = YYLAST - yyn;
        !          2258:          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
        !          2259:          int yycount = 0;
        !          2260:
        !          2261:          yyprefix = ", expecting ";
        !          2262:          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
        !          2263:            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
        !          2264:              {
        !          2265:                yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
        !          2266:                yycount += 1;
        !          2267:                if (yycount == 5)
        !          2268:                  {
        !          2269:                    yysize = 0;
        !          2270:                    break;
        !          2271:                  }
        !          2272:              }
        !          2273:          yysize += (sizeof ("syntax error, unexpected ")
        !          2274:                     + yystrlen (yytname[yytype]));
1.5       noro     2275:          yymsg = (char *) YYSTACK_ALLOC (yysize);
                   2276:          if (yymsg != 0)
                   2277:            {
1.8     ! noro     2278:              char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
        !          2279:              yyp = yystpcpy (yyp, yytname[yytype]);
1.5       noro     2280:
                   2281:              if (yycount < 5)
                   2282:                {
1.8     ! noro     2283:                  yyprefix = ", expecting ";
        !          2284:                  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
        !          2285:                    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1.5       noro     2286:                      {
1.8     ! noro     2287:                        yyp = yystpcpy (yyp, yyprefix);
1.5       noro     2288:                        yyp = yystpcpy (yyp, yytname[yyx]);
1.8     ! noro     2289:                        yyprefix = " or ";
1.5       noro     2290:                      }
                   2291:                }
                   2292:              yyerror (yymsg);
                   2293:              YYSTACK_FREE (yymsg);
                   2294:            }
                   2295:          else
1.8     ! noro     2296:            yyerror ("syntax error; also virtual memory exhausted");
1.5       noro     2297:        }
                   2298:       else
1.8     ! noro     2299: #endif /* YYERROR_VERBOSE */
        !          2300:        yyerror ("syntax error");
1.5       noro     2301:     }
                   2302:
                   2303:
1.8     ! noro     2304:
1.5       noro     2305:   if (yyerrstatus == 3)
1.1       noro     2306:     {
1.5       noro     2307:       /* If just tried and failed to reuse lookahead token after an
                   2308:         error, discard it.  */
                   2309:
1.8     ! noro     2310:       /* Return failure if at end of input.  */
1.5       noro     2311:       if (yychar == YYEOF)
1.8     ! noro     2312:         {
        !          2313:          /* Pop the error token.  */
        !          2314:           YYPOPSTACK;
        !          2315:          /* Pop the rest of the stack.  */
        !          2316:          while (yyss < yyssp)
        !          2317:            {
        !          2318:              YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
        !          2319:              yydestruct (yystos[*yyssp], yyvsp);
        !          2320:              YYPOPSTACK;
        !          2321:            }
        !          2322:          YYABORT;
        !          2323:         }
        !          2324:
        !          2325:       YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
        !          2326:       yydestruct (yytoken, &yylval);
1.5       noro     2327:       yychar = YYEMPTY;
1.8     ! noro     2328:
1.5       noro     2329:     }
                   2330:
                   2331:   /* Else will try to reuse lookahead token after shifting the error
                   2332:      token.  */
1.8     ! noro     2333:   goto yyerrlab1;
1.5       noro     2334:
                   2335:
1.8     ! noro     2336: /*----------------------------------------------------.
        !          2337: | yyerrlab1 -- error raised explicitly by an action.  |
        !          2338: `----------------------------------------------------*/
        !          2339: yyerrlab1:
        !          2340:   yyerrstatus = 3;     /* Each real token shifted decrements this.  */
1.5       noro     2341:
1.8     ! noro     2342:   for (;;)
1.5       noro     2343:     {
1.8     ! noro     2344:       yyn = yypact[yystate];
        !          2345:       if (yyn != YYPACT_NINF)
        !          2346:        {
        !          2347:          yyn += YYTERROR;
        !          2348:          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
        !          2349:            {
        !          2350:              yyn = yytable[yyn];
        !          2351:              if (0 < yyn)
        !          2352:                break;
        !          2353:            }
        !          2354:        }
1.5       noro     2355:
1.8     ! noro     2356:       /* Pop the current state because it cannot handle the error token.  */
        !          2357:       if (yyssp == yyss)
        !          2358:        YYABORT;
1.5       noro     2359:
1.8     ! noro     2360:       YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
        !          2361:       yydestruct (yystos[yystate], yyvsp);
        !          2362:       yyvsp--;
        !          2363:       yystate = *--yyssp;
1.5       noro     2364:
1.8     ! noro     2365:       YY_STACK_PRINT (yyss, yyssp);
1.1       noro     2366:     }
1.5       noro     2367:
                   2368:   if (yyn == YYFINAL)
                   2369:     YYACCEPT;
                   2370:
                   2371:   YYDPRINTF ((stderr, "Shifting error token, "));
                   2372:
                   2373:   *++yyvsp = yylval;
1.8     ! noro     2374:
1.5       noro     2375:
                   2376:   yystate = yyn;
                   2377:   goto yynewstate;
                   2378:
                   2379:
                   2380: /*-------------------------------------.
                   2381: | yyacceptlab -- YYACCEPT comes here.  |
                   2382: `-------------------------------------*/
                   2383: yyacceptlab:
                   2384:   yyresult = 0;
                   2385:   goto yyreturn;
                   2386:
                   2387: /*-----------------------------------.
                   2388: | yyabortlab -- YYABORT comes here.  |
                   2389: `-----------------------------------*/
                   2390: yyabortlab:
                   2391:   yyresult = 1;
                   2392:   goto yyreturn;
                   2393:
1.8     ! noro     2394: #ifndef yyoverflow
        !          2395: /*----------------------------------------------.
        !          2396: | yyoverflowlab -- parser overflow comes here.  |
        !          2397: `----------------------------------------------*/
1.5       noro     2398: yyoverflowlab:
                   2399:   yyerror ("parser stack overflow");
                   2400:   yyresult = 2;
                   2401:   /* Fall through.  */
1.8     ! noro     2402: #endif
1.5       noro     2403:
                   2404: yyreturn:
                   2405: #ifndef yyoverflow
                   2406:   if (yyss != yyssa)
                   2407:     YYSTACK_FREE (yyss);
                   2408: #endif
                   2409:   return yyresult;
1.1       noro     2410: }
1.8     ! noro     2411:
        !          2412:
        !          2413: #line 455 "parse.y"
        !          2414:
1.5       noro     2415:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>