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

Diff for /OpenXM_contrib2/asir2000/parse/ytab.c between version 1.7 and 1.8

version 1.7, 2004/06/22 00:33:25 version 1.8, 2005/10/03 00:57:35
Line 1 
Line 1 
 /* A Bison parser, made from parse.y  /* A Bison parser, made by GNU Bison 1.875b.  */
    by GNU bison 1.35.  */  
   
 #define YYBISON 1  /* Identify Bison output.  */  /* Skeleton parser for Yacc-like parsing with Bison,
      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
   
 # define        STRUCT  257     This program is free software; you can redistribute it and/or modify
 # define        POINT   258     it under the terms of the GNU General Public License as published by
 # define        NEWSTRUCT       259     the Free Software Foundation; either version 2, or (at your option)
 # define        ANS     260     any later version.
 # define        FDEF    261  
 # define        PFDEF   262  
 # define        MODDEF  263  
 # define        MODEND  264  
 # define        GLOBAL  265  
 # define        MGLOBAL 266  
 # define        LOCAL   267  
 # define        LOCALF  268  
 # define        CMP     269  
 # define        OR      270  
 # define        AND     271  
 # define        CAR     272  
 # define        CDR     273  
 # define        QUOTED  274  
 # define        COLONCOLON      275  
 # define        DO      276  
 # define        WHILE   277  
 # define        FOR     278  
 # define        IF      279  
 # define        ELSE    280  
 # define        BREAK   281  
 # define        RETURN  282  
 # define        CONTINUE        283  
 # define        PARIF   284  
 # define        MAP     285  
 # define        RECMAP  286  
 # define        TIMER   287  
 # define        GF2NGEN 288  
 # define        GFPNGEN 289  
 # define        GFSNGEN 290  
 # define        GETOPT  291  
 # define        FOP_AND 292  
 # define        FOP_OR  293  
 # define        FOP_IMPL        294  
 # define        FOP_REPL        295  
 # define        FOP_EQUIV       296  
 # define        FOP_NOT 297  
 # define        LOP     298  
 # define        FORMULA 299  
 # define        UCASE   300  
 # define        LCASE   301  
 # define        STR     302  
 # define        SELF    303  
 # define        BOPASS  304  
 # define        PLUS    305  
 # define        MINUS   306  
   
      This program is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      GNU General Public License for more details.
   
      You should have received a copy of the GNU General Public License
      along with this program; if not, write to the Free Software
      Foundation, Inc., 59 Temple Place - Suite 330,
      Boston, MA 02111-1307, USA.  */
   
   /* As a special exception, when this file is copied by Bison into a
      Bison output file, you may use that output file without restriction.
      This special exception was added by the Free Software Foundation
      in version 1.24 of Bison.  */
   
   /* Written by Richard Stallman by simplifying the original so called
      ``semantic'' parser.  */
   
   /* All symbols defined below should begin with yy or YY, to avoid
      infringing on user name space.  This should be done even for local
      variables, as they might otherwise be expanded by user macros.
      There are some unavoidable exceptions within include files to
      define necessary library symbols; they are noted "INFRINGES ON
      USER NAME SPACE" below.  */
   
   /* Identify Bison output.  */
   #define YYBISON 1
   
   /* Skeleton name.  */
   #define YYSKELETON_NAME "yacc.c"
   
   /* Pure parsers.  */
   #define YYPURE 0
   
   /* Using locations.  */
   #define YYLSP_NEEDED 0
   
   
   
   /* Tokens.  */
   #ifndef YYTOKENTYPE
   # define YYTOKENTYPE
      /* Put the tokens into the symbol table, so that GDB and other debuggers
         know about them.  */
      enum yytokentype {
        STRUCT = 258,
        POINT = 259,
        NEWSTRUCT = 260,
        ANS = 261,
        FDEF = 262,
        PFDEF = 263,
        MODDEF = 264,
        MODEND = 265,
        GLOBAL = 266,
        MGLOBAL = 267,
        LOCAL = 268,
        LOCALF = 269,
        CMP = 270,
        OR = 271,
        AND = 272,
        CAR = 273,
        CDR = 274,
        QUOTED = 275,
        COLONCOLON = 276,
        DO = 277,
        WHILE = 278,
        FOR = 279,
        IF = 280,
        ELSE = 281,
        BREAK = 282,
        RETURN = 283,
        CONTINUE = 284,
        PARIF = 285,
        MAP = 286,
        RECMAP = 287,
        TIMER = 288,
        GF2NGEN = 289,
        GFPNGEN = 290,
        GFSNGEN = 291,
        GETOPT = 292,
        FOP_AND = 293,
        FOP_OR = 294,
        FOP_IMPL = 295,
        FOP_REPL = 296,
        FOP_EQUIV = 297,
        FOP_NOT = 298,
        LOP = 299,
        FORMULA = 300,
        UCASE = 301,
        LCASE = 302,
        STR = 303,
        SELF = 304,
        BOPASS = 305,
        PLUS = 306,
        MINUS = 307
      };
   #endif
   #define STRUCT 258
   #define POINT 259
   #define NEWSTRUCT 260
   #define ANS 261
   #define FDEF 262
   #define PFDEF 263
   #define MODDEF 264
   #define MODEND 265
   #define GLOBAL 266
   #define MGLOBAL 267
   #define LOCAL 268
   #define LOCALF 269
   #define CMP 270
   #define OR 271
   #define AND 272
   #define CAR 273
   #define CDR 274
   #define QUOTED 275
   #define COLONCOLON 276
   #define DO 277
   #define WHILE 278
   #define FOR 279
   #define IF 280
   #define ELSE 281
   #define BREAK 282
   #define RETURN 283
   #define CONTINUE 284
   #define PARIF 285
   #define MAP 286
   #define RECMAP 287
   #define TIMER 288
   #define GF2NGEN 289
   #define GFPNGEN 290
   #define GFSNGEN 291
   #define GETOPT 292
   #define FOP_AND 293
   #define FOP_OR 294
   #define FOP_IMPL 295
   #define FOP_REPL 296
   #define FOP_EQUIV 297
   #define FOP_NOT 298
   #define LOP 299
   #define FORMULA 300
   #define UCASE 301
   #define LCASE 302
   #define STR 303
   #define SELF 304
   #define BOPASS 305
   #define PLUS 306
   #define MINUS 307
   
   
   
   
   /* Copy the first part of user declarations.  */
 #line 50 "parse.y"  #line 50 "parse.y"
   
 #define malloc(x) GC_malloc(x)  #define malloc(x) GC_malloc(x)
Line 75  extern int gdef,mgdef,ldef;
Line 181  extern int gdef,mgdef,ldef;
 extern SNODE parse_snode;  extern SNODE parse_snode;
 extern int main_parser, allow_create_var;  extern int main_parser, allow_create_var;
   
 int prresult;  int prresult,saveresult;
   
 static int ind;  static int ind;
 static FNODE t;  static FNODE t;
Line 85  static pointer val;
Line 191  static pointer val;
 static QUOTE quote;  static QUOTE quote;
 extern jmp_buf env;  extern jmp_buf env;
   
   
   /* Enabling traces.  */
   #ifndef YYDEBUG
   # define YYDEBUG 0
   #endif
   
   /* Enabling verbose error messages.  */
   #ifdef YYERROR_VERBOSE
   # undef YYERROR_VERBOSE
   # define YYERROR_VERBOSE 1
   #else
   # define YYERROR_VERBOSE 0
   #endif
   
   #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
 #line 83 "parse.y"  #line 83 "parse.y"
 #ifndef YYSTYPE  typedef union YYSTYPE {
 typedef union {  
         FNODE f;          FNODE f;
         SNODE s;          SNODE s;
         NODE n;          NODE n;
         NODE2 n2;          NODE2 n2;
         int i;          int i;
         pointer p;          pointer p;
 } yystype;  } YYSTYPE;
 # define YYSTYPE yystype  /* Line 191 of yacc.c.  */
   #line 220 "y.tab.c"
   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
   # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1  # define YYSTYPE_IS_TRIVIAL 1
 #endif  #endif
 #ifndef YYDEBUG  
 # define YYDEBUG 0  
   
   /* Copy the second part of user declarations.  */
   
   
   /* Line 214 of yacc.c.  */
   #line 232 "y.tab.c"
   
   #if ! defined (yyoverflow) || YYERROR_VERBOSE
   
   /* The parser invokes alloca or malloc; define the necessary symbols.  */
   
   # if YYSTACK_USE_ALLOCA
   #  define YYSTACK_ALLOC alloca
   # else
   #  ifndef YYSTACK_USE_ALLOCA
   #   if defined (alloca) || defined (_ALLOCA_H)
   #    define YYSTACK_ALLOC alloca
   #   else
   #    ifdef __GNUC__
   #     define YYSTACK_ALLOC __builtin_alloca
   #    endif
   #   endif
   #  endif
   # endif
   
   # ifdef YYSTACK_ALLOC
      /* Pacify GCC's `empty if-body' warning. */
   #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
   # else
   #  if defined (__STDC__) || defined (__cplusplus)
   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
   #   define YYSIZE_T size_t
   #  endif
   #  define YYSTACK_ALLOC malloc
   #  define YYSTACK_FREE free
   # endif
   #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
   
   
   #if (! defined (yyoverflow) \
        && (! defined (__cplusplus) \
            || (YYSTYPE_IS_TRIVIAL)))
   
   /* A type that is properly aligned for any stack member.  */
   union yyalloc
   {
     short yyss;
     YYSTYPE yyvs;
     };
   
   /* The size of the maximum gap between one aligned stack and the next.  */
   # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
   
   /* The size of an array large to enough to hold all stacks, each with
      N elements.  */
   # define YYSTACK_BYTES(N) \
        ((N) * (sizeof (short) + sizeof (YYSTYPE))                         \
         + YYSTACK_GAP_MAXIMUM)
   
   /* Copy COUNT objects from FROM to TO.  The source and destination do
      not overlap.  */
   # ifndef YYCOPY
   #  if 1 < __GNUC__
   #   define YYCOPY(To, From, Count) \
         __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
   #  else
   #   define YYCOPY(To, From, Count)              \
         do                                        \
           {                                       \
             register YYSIZE_T yyi;                \
             for (yyi = 0; yyi < (Count); yyi++)   \
               (To)[yyi] = (From)[yyi];            \
           }                                       \
         while (0)
   #  endif
   # endif
   
   /* Relocate STACK from its old location to the new one.  The
      local variables YYSIZE and YYSTACKSIZE give the old and new number of
      elements in the stack, and YYPTR gives the new location of the
      stack.  Advance YYPTR to a properly aligned location for the next
      stack.  */
   # define YYSTACK_RELOCATE(Stack)                                        \
       do                                                                  \
         {                                                                 \
           YYSIZE_T yynewbytes;                                            \
           YYCOPY (&yyptr->Stack, Stack, yysize);                          \
           Stack = &yyptr->Stack;                                          \
           yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
           yyptr += yynewbytes / sizeof (*yyptr);                          \
         }                                                                 \
       while (0)
   
 #endif  #endif
   
   #if defined (__STDC__) || defined (__cplusplus)
      typedef signed char yysigned_char;
   #else
      typedef short yysigned_char;
   #endif
   
   /* YYFINAL -- State number of the termination state. */
   #define YYFINAL  101
   /* YYLAST -- Last index in YYTABLE.  */
   #define YYLAST   1290
   
 #define YYFINAL         274  /* YYNTOKENS -- Number of terminals. */
 #define YYFLAG          -32768  #define YYNTOKENS  77
 #define YYNTBASE        77  /* YYNNTS -- Number of nonterminals. */
   #define YYNNTS  26
   /* YYNRULES -- Number of rules. */
   #define YYNRULES  113
   /* YYNRULES -- Number of states. */
   #define YYNSTATES  280
   
 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYTRANSLATE(x) ((unsigned)(x) <= 306 ? yytranslate[x] : 102)  #define YYUNDEFTOK  2
   #define YYMAXUTOK   307
   
 /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */  #define YYTRANSLATE(YYX)                                                \
 static const char yytranslate[] =    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
   
   /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
   static const unsigned char yytranslate[] =
 {  {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
Line 139  static const char yytranslate[] =
Line 373  static const char yytranslate[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     1,     3,     4,     5,         2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,         5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,        15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,        25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,        35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
       46,    47,    48,    49,    50,    62,    63        45,    46,    47,    48,    49,    50,    62,    63
 };  };
   
 #if YYDEBUG  #if YYDEBUG
 static const short yyprhs[] =  /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
      YYRHS.  */
   static const unsigned short yyprhs[] =
 {  {
        0,     0,     2,     4,     5,     6,    12,    13,    14,    20,         0,     0,     3,     5,     7,     8,     9,    15,    16,    17,
       21,    22,    28,    32,    39,    42,    44,    47,    50,    53,        23,    24,    25,    31,    35,    42,    45,    47,    50,    53,
       57,    63,    71,    81,    87,    95,   104,   111,   112,   113,        56,    60,    66,    74,    84,    90,    98,   107,   114,   115,
      114,   127,   131,   134,   137,   139,   141,   142,   144,   148,       116,   117,   130,   134,   137,   140,   142,   144,   145,   147,
      150,   154,   156,   160,   162,   166,   167,   170,   171,   173,       151,   153,   157,   159,   163,   165,   169,   170,   173,   174,
      175,   179,   181,   185,   187,   189,   193,   195,   197,   199,       176,   178,   182,   184,   188,   190,   192,   196,   198,   200,
      201,   203,   205,   207,   212,   219,   226,   233,   241,   246,       202,   204,   206,   208,   210,   215,   222,   229,   236,   244,
      250,   259,   264,   271,   279,   284,   289,   293,   295,   300,       249,   253,   262,   267,   274,   282,   287,   292,   297,   301,
      304,   306,   312,   316,   320,   323,   326,   330,   333,   336,       303,   308,   312,   314,   320,   324,   328,   331,   334,   338,
      340,   344,   348,   352,   356,   360,   364,   367,   371,   375,       341,   344,   348,   352,   356,   360,   364,   368,   372,   375,
      378,   382,   386,   390,   394,   398,   402,   408,   412,   417,       379,   383,   386,   390,   394,   398,   402,   406,   410,   416,
      422       420,   425,   430,   436
 };  };
 static const short yyrhs[] =  
   /* YYRHS -- A `-1'-separated list of the rules' RHS. */
   static const yysigned_char yyrhs[] =
 {  {
       78,     0,    88,     0,     0,     0,    11,    79,    93,    80,        78,     0,    -1,    79,    -1,    89,    -1,    -1,    -1,    11,
       88,     0,     0,     0,    12,    81,    93,    82,    88,     0,        80,    94,    81,    89,    -1,    -1,    -1,    12,    82,    94,
        0,     0,    13,    83,    93,    84,    88,     0,    14,    92,        83,    89,    -1,    -1,    -1,    13,    84,    94,    85,    89,
       88,     0,     3,    98,    65,    91,    66,    88,     0,   101,        -1,    14,    93,    89,    -1,     3,    99,    65,    92,    66,
       88,     0,    90,     0,    27,    88,     0,    29,    88,     0,        89,    -1,   102,    89,    -1,    91,    -1,    27,    89,    -1,
       28,    88,     0,    28,   101,    88,     0,    25,    67,    95,        29,    89,    -1,    28,    89,    -1,    28,   102,    89,    -1,
       68,    78,     0,    25,    67,    95,    68,    78,    26,    78,        25,    67,    96,    68,    79,    -1,    25,    67,    96,    68,
        0,    24,    67,    95,    69,    95,    69,    95,    68,    78,        79,    26,    79,    -1,    24,    67,    96,    69,    96,    69,
        0,    23,    67,    95,    68,    78,     0,    22,    78,    23,        96,    68,    79,    -1,    23,    67,    96,    68,    79,    -1,
       67,    95,    68,    88,     0,    47,    67,    95,    68,    59,        22,    79,    23,    67,    96,    68,    89,    -1,    47,    67,
       57,   101,    88,     0,     8,    47,    67,    95,    68,    88,        96,    68,    59,    57,   102,    89,    -1,     8,    47,    67,
        0,     0,     0,     0,     7,    47,    85,    67,    86,    95,        96,    68,    89,    -1,    -1,    -1,    -1,     7,    47,    86,
       87,    68,    89,    65,    94,    66,     0,     9,    47,    88,        67,    87,    96,    88,    68,    90,    65,    95,    66,    -1,
        0,    10,    88,     0,     1,    88,     0,    69,     0,    70,         9,    47,    89,    -1,    10,    89,    -1,     1,    89,    -1,
        0,     0,    48,     0,    65,    94,    66,     0,    98,     0,        69,    -1,    70,    -1,    -1,    48,    -1,    65,    95,    66,
       91,    71,    98,     0,    47,     0,    92,    71,    47,     0,        -1,    99,    -1,    92,    71,    99,    -1,    47,    -1,    93,
       46,     0,    93,    71,    46,     0,     0,    94,    78,     0,        71,    47,    -1,    46,    -1,    94,    71,    46,    -1,    -1,
        0,    96,     0,   101,     0,    96,    71,   101,     0,    99,        95,    79,    -1,    -1,    97,    -1,   102,    -1,    97,    71,
        0,    97,    71,    99,     0,    46,     0,    47,     0,    98,       102,    -1,   100,    -1,    98,    71,   100,    -1,    46,    -1,
       57,   101,     0,    48,     0,    45,     0,     6,     0,    34,        47,    -1,    99,    57,   102,    -1,    48,    -1,    45,    -1,
        0,    35,     0,    36,     0,    47,     0,    47,    67,    95,         6,    -1,    34,    -1,    35,    -1,    36,    -1,    47,    -1,
       68,     0,    47,    67,    95,    72,    97,    68,     0,    31,        47,    67,    96,    68,    -1,    47,    67,    96,    72,    98,
       67,    47,    71,    95,    68,     0,    32,    67,    47,    71,        68,    -1,    31,    67,    47,    71,    96,    68,    -1,    32,
       95,    68,     0,    47,    65,    95,    66,    67,    95,    68,        67,    47,    71,    96,    68,    -1,    47,    65,    96,    66,
        0,    37,    67,    98,    68,     0,    37,    67,    68,     0,        67,    96,    68,    -1,    37,    67,    99,    68,    -1,    37,
       33,    67,   101,    71,   101,    71,   101,    68,     0,    30,        67,    68,    -1,    33,    67,   102,    71,   102,    71,   102,
       67,    47,    68,     0,    30,    67,    47,    71,    95,    68,        68,    -1,    30,    67,    47,    68,    -1,    30,    67,    47,
        0,    67,    53,   101,    68,    67,    95,    68,     0,    18,        71,    96,    68,    -1,    67,    53,   102,    68,    67,    96,
       67,   101,    68,     0,    19,    67,   101,    68,     0,    67,        68,    -1,    46,    67,    96,    68,    -1,    18,    67,   102,
      101,    68,     0,    46,     0,   100,    73,   101,    74,     0,        68,    -1,    19,    67,   102,    68,    -1,    67,   102,    68,
      100,     4,    98,     0,   100,     0,    67,     3,    98,    68,        -1,    46,    -1,   101,    73,   102,    74,    -1,   101,     4,
      100,     0,   101,    57,   101,     0,   101,    50,   101,     0,        99,    -1,   101,    -1,    67,     3,    99,    68,   101,    -1,
      101,    49,     0,    49,   101,     0,    73,    95,    74,     0,       102,    57,   102,    -1,   102,    50,   102,    -1,   102,    49,
       51,   101,     0,    52,   101,     0,   101,    51,   101,     0,        -1,    49,   102,    -1,    73,    96,    74,    -1,    51,   102,
      101,    52,   101,     0,   101,    53,   101,     0,   101,    54,        -1,    52,   102,    -1,   102,    51,   102,    -1,   102,    52,
      101,     0,   101,    56,   101,     0,   101,    55,   101,     0,       102,    -1,   102,    53,   102,    -1,   102,    54,   102,    -1,
      101,    15,   101,     0,    64,   101,     0,   101,    16,   101,       102,    56,   102,    -1,   102,    55,   102,    -1,   102,    15,
        0,   101,    17,   101,     0,    43,   101,     0,   101,    38,       102,    -1,    64,   102,    -1,   102,    16,   102,    -1,   102,
      101,     0,   101,    39,   101,     0,   101,    40,   101,     0,        17,   102,    -1,    43,   102,    -1,   102,    38,   102,    -1,
      101,    41,   101,     0,   101,    42,   101,     0,   101,    44,       102,    39,   102,    -1,   102,    40,   102,    -1,   102,    41,
      101,     0,   101,    58,   101,    59,   101,     0,    75,    95,       102,    -1,   102,    42,   102,    -1,   102,    44,   102,    -1,
       76,     0,     5,    67,    98,    68,     0,    20,    67,   101,       102,    58,   102,    59,   102,    -1,    75,    96,    76,    -1,
       68,     0,    60,   101,     0         5,    67,    99,    68,    -1,    20,    67,   102,    68,    -1,
         73,    96,    72,   102,    74,    -1,    60,   102,    -1
 };  };
   
 #endif  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
   static const unsigned short yyrline[] =
 #if YYDEBUG  
 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */  
 static const short yyrline[] =  
 {  {
        0,   130,   139,   141,   141,   141,   143,   143,   143,   145,         0,   130,   130,   139,   141,   141,   141,   143,   143,   143,
      145,   145,   147,   149,   151,   153,   155,   157,   159,   161,       145,   145,   145,   147,   149,   151,   153,   155,   157,   159,
      163,   165,   167,   169,   171,   173,   175,   177,   177,   177,       161,   163,   165,   167,   169,   171,   173,   175,   177,   177,
      177,   183,   185,   187,   190,   192,   195,   197,   200,   203,       177,   177,   183,   189,   191,   194,   196,   200,   201,   204,
      205,   208,   210,   213,   215,   218,   220,   223,   225,   228,       207,   209,   212,   214,   217,   219,   223,   224,   228,   229,
      230,   233,   235,   238,   240,   243,   246,   248,   250,   252,       232,   234,   237,   239,   242,   244,   247,   250,   252,   254,
      254,   256,   258,   279,   286,   293,   299,   305,   310,   314,       256,   258,   260,   262,   283,   290,   297,   303,   309,   314,
      318,   322,   329,   336,   340,   342,   344,   346,   359,   369,       318,   322,   326,   333,   340,   344,   358,   360,   362,   364,
      372,   374,   376,   378,   380,   382,   384,   386,   388,   390,       377,   387,   390,   392,   394,   396,   398,   400,   402,   404,
      392,   394,   396,   398,   400,   402,   404,   406,   408,   410,       406,   408,   410,   412,   414,   416,   418,   420,   422,   424,
      412,   414,   416,   418,   420,   422,   424,   426,   428,   430,       426,   428,   430,   432,   434,   436,   438,   440,   442,   444,
      432       446,   448,   450,   452
 };  };
 #endif  #endif
   
   #if YYDEBUG || YYERROR_VERBOSE
 #if (YYDEBUG) || defined YYERROR_VERBOSE  /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
      First, the terminals, then, starting at YYNTOKENS, nonterminals. */
 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */  
 static const char *const yytname[] =  static const char *const yytname[] =
 {  {
   "$", "error", "$undefined.", "STRUCT", "POINT", "NEWSTRUCT", "ANS",    "$end", "error", "$undefined", "STRUCT", "POINT", "NEWSTRUCT", "ANS",
   "FDEF", "PFDEF", "MODDEF", "MODEND", "GLOBAL", "MGLOBAL", "LOCAL",    "FDEF", "PFDEF", "MODDEF", "MODEND", "GLOBAL", "MGLOBAL", "LOCAL",
   "LOCALF", "CMP", "OR", "AND", "CAR", "CDR", "QUOTED", "COLONCOLON",    "LOCALF", "CMP", "OR", "AND", "CAR", "CDR", "QUOTED", "COLONCOLON",
   "DO", "WHILE", "FOR", "IF", "ELSE", "BREAK", "RETURN", "CONTINUE",    "DO", "WHILE", "FOR", "IF", "ELSE", "BREAK", "RETURN", "CONTINUE",
Line 246  static const char *const yytname[] =
Line 481  static const char *const yytname[] =
   "FOP_NOT", "LOP", "FORMULA", "UCASE", "LCASE", "STR", "SELF", "BOPASS",    "FOP_NOT", "LOP", "FORMULA", "UCASE", "LCASE", "STR", "SELF", "BOPASS",
   "'+'", "'-'", "'*'", "'/'", "'^'", "'%'", "'='", "'?'", "':'", "'`'",    "'+'", "'-'", "'*'", "'/'", "'^'", "'%'", "'='", "'?'", "':'", "'`'",
   "'&'", "PLUS", "MINUS", "'!'", "'{'", "'}'", "'('", "')'", "';'", "'$'",    "'&'", "PLUS", "MINUS", "'!'", "'{'", "'}'", "'('", "')'", "';'", "'$'",
   "','", "'|'", "'['", "']'", "'<'", "'>'", "start", "stat", "@1", "@2",    "','", "'|'", "'['", "']'", "'<'", "'>'", "$accept", "start", "stat",
   "@3", "@4", "@5", "@6", "@7", "@8", "@9", "tail", "desc", "complex",    "@1", "@2", "@3", "@4", "@5", "@6", "@7", "@8", "@9", "tail", "desc",
   "members", "vars", "pvars", "stats", "node", "_node", "optlist",    "complex", "members", "vars", "pvars", "stats", "node", "_node",
   "rawstr", "opt", "pexpr", "expr", 0    "optlist", "rawstr", "opt", "pexpr", "expr", 0
 };  };
 #endif  #endif
   
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */  # ifdef YYPRINT
 static const short yyr1[] =  /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
      token YYLEX-NUM.  */
   static const unsigned short yytoknum[] =
 {  {
        0,    77,    78,    79,    80,    78,    81,    82,    78,    83,         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
       84,    78,    78,    78,    78,    78,    78,    78,    78,    78,       265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
       78,    78,    78,    78,    78,    78,    78,    85,    86,    87,       275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
       78,    78,    78,    78,    88,    88,    89,    89,    90,    91,       285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
       91,    92,    92,    93,    93,    94,    94,    95,    95,    96,       295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
       96,    97,    97,    98,    98,    99,   100,   100,   100,   100,       305,    43,    45,    42,    47,    94,    37,    61,    63,    58,
      100,   100,   100,   100,   100,   100,   100,   100,   100,   100,        96,    38,   306,   307,    33,   123,   125,    40,    41,    59,
      100,   100,   100,   100,   100,   100,   100,   100,   100,   100,        36,    44,   124,    91,    93,    60,    62
   };
   # endif
   
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
   static const unsigned char yyr1[] =
   {
          0,    77,    78,    79,    80,    81,    79,    82,    83,    79,
         84,    85,    79,    79,    79,    79,    79,    79,    79,    79,
         79,    79,    79,    79,    79,    79,    79,    79,    86,    87,
         88,    79,    79,    79,    79,    89,    89,    90,    90,    91,
         92,    92,    93,    93,    94,    94,    95,    95,    96,    96,
         97,    97,    98,    98,    99,    99,   100,   101,   101,   101,
      101,   101,   101,   101,   101,   101,   101,   101,   101,   101,       101,   101,   101,   101,   101,   101,   101,   101,   101,   101,
      101,   101,   101,   101,   101,   101,   101,   101,   101,   101,       101,   101,   101,   101,   101,   101,   101,   101,   101,   101,
      101,   101,   101,   101,   101,   101,   101,   101,   101,   101,       101,   101,   102,   102,   102,   102,   102,   102,   102,   102,
      101       102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
        102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
        102,   102,   102,   102
 };  };
   
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
 static const short yyr2[] =  static const unsigned char yyr2[] =
 {  {
        0,     1,     1,     0,     0,     5,     0,     0,     5,     0,         0,     2,     1,     1,     0,     0,     5,     0,     0,     5,
        0,     5,     3,     6,     2,     1,     2,     2,     2,     3,         0,     0,     5,     3,     6,     2,     1,     2,     2,     2,
        5,     7,     9,     5,     7,     8,     6,     0,     0,     0,         3,     5,     7,     9,     5,     7,     8,     6,     0,     0,
       12,     3,     2,     2,     1,     1,     0,     1,     3,     1,         0,    12,     3,     2,     2,     1,     1,     0,     1,     3,
        3,     1,     3,     1,     3,     0,     2,     0,     1,     1,         1,     3,     1,     3,     1,     3,     0,     2,     0,     1,
        3,     1,     3,     1,     1,     3,     1,     1,     1,     1,         1,     3,     1,     3,     1,     1,     3,     1,     1,     1,
        1,     1,     1,     4,     6,     6,     6,     7,     4,     3,         1,     1,     1,     1,     4,     6,     6,     6,     7,     4,
        8,     4,     6,     7,     4,     4,     3,     1,     4,     3,         3,     8,     4,     6,     7,     4,     4,     4,     3,     1,
        1,     5,     3,     3,     2,     2,     3,     2,     2,     3,         4,     3,     1,     5,     3,     3,     2,     2,     3,     2,
        3,     3,     3,     3,     3,     3,     2,     3,     3,     2,         2,     3,     3,     3,     3,     3,     3,     3,     2,     3,
        3,     3,     3,     3,     3,     3,     5,     3,     4,     4,         3,     2,     3,     3,     3,     3,     3,     3,     5,     3,
        2         4,     4,     5,     2
 };  };
   
 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
    doesn't specify something else to do.  Zero means the default is an     STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
    error. */     means the default is an error.  */
 static const short yydefact[] =  static const unsigned char yydefact[] =
 {  {
        0,     0,     0,     0,    58,     0,     0,     0,     0,     3,         0,     0,     0,     0,    59,     0,     0,     0,     0,     4,
        6,     9,     0,     0,     0,     0,     0,     0,     0,     0,         7,    10,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,    59,    60,    61,         0,     0,     0,     0,     0,     0,     0,    60,    61,    62,
        0,     0,    57,    77,    62,    56,     0,     0,     0,     0,         0,     0,    58,    79,    63,    57,     0,     0,     0,     0,
        0,    45,     0,    34,    35,    47,    47,     1,     2,    15,         0,    46,     0,    35,    36,    48,    48,     0,     2,     3,
       80,     0,    33,    53,    54,     0,     0,    27,     0,     0,        16,    82,     0,    34,    54,    55,     0,     0,    28,     0,
       32,     0,     0,     0,    41,     0,     0,     0,     0,     0,         0,    33,     0,     0,     0,    42,     0,     0,     0,     0,
       47,    47,    47,    16,    62,    18,     0,    17,     0,     0,         0,    48,    48,    48,    17,    63,    19,     0,    18,     0,
        0,     0,     0,    99,    47,    47,    85,    87,    88,   110,         0,     0,     0,     0,   101,    48,    48,    48,    87,    89,
       96,     0,     0,     0,     0,     0,    48,    49,     0,     0,        90,   113,    98,     0,     0,     0,     0,     0,    49,    50,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     1,     0,     0,     0,     0,     0,     0,     0,     0,
       84,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,    86,     0,     0,     0,     0,     0,     0,
       14,     0,     0,     0,    47,    31,    43,     4,     7,    10,         0,     0,     0,    15,     0,     0,     0,    48,    32,    44,
        0,    12,     0,     0,     0,     0,     0,     0,     0,    47,         5,     8,    11,     0,    13,     0,     0,     0,     0,     0,
       19,     0,     0,     0,     0,    69,     0,     0,     0,    38,         0,     0,    48,    20,     0,     0,     0,     0,    70,     0,
       46,     0,     0,    76,    86,     0,   107,    79,     0,    95,         0,     0,     0,    39,    47,     0,     0,    78,     0,    88,
       97,    98,   100,   101,   102,   103,   104,   105,    83,    89,         0,   109,    81,     0,    97,    99,   100,   102,   103,   104,
       90,    91,    92,    94,    93,    82,     0,     0,    39,   108,       105,   106,   107,    85,    91,    92,    93,    94,    96,    95,
       28,     0,     0,     0,     0,     0,    42,    74,    75,   109,        84,     0,     0,    40,   110,    29,     0,     0,     0,     0,
       47,     0,    47,     0,     0,    71,    47,    47,    47,     0,         0,    43,    76,    77,   111,    48,     0,    48,     0,     0,
       68,     0,    63,     0,     0,     0,    50,    78,     0,     0,        72,    48,    48,    48,     0,    69,    75,     0,    64,     0,
        0,    47,     0,    44,     5,     8,    11,     0,    23,     0,         0,     0,     0,    51,    80,     0,     0,     0,    48,     0,
       20,    63,     0,     0,     0,     0,    47,     0,     0,     0,        45,     6,     9,    12,     0,    24,     0,    21,    64,     0,
       51,     0,    81,    47,   106,    13,    40,    29,    26,     0,         0,     0,     0,    48,     0,     0,     0,    52,     0,    83,
       47,     0,    72,    65,    66,     0,     0,     0,    64,     0,        48,   112,   108,    14,    41,    30,    27,     0,    48,     0,
        0,     0,     0,    24,     0,    21,     0,    67,     0,    52,        73,    66,    67,     0,     0,     0,    65,     0,     0,     0,
       55,    73,    36,     0,    70,    25,    37,     0,    22,    45,         0,    25,     0,    22,     0,    68,     0,    53,    56,    74,
        0,    30,     0,     0,     0        37,     0,    71,    26,    38,     0,    23,    46,     0,    31
 };  };
   
   /* YYDEFGOTO[NTERM-NUM]. */
 static const short yydefgoto[] =  static const short yydefgoto[] =
 {  {
      272,   150,    61,   183,    62,   184,    63,   185,   123,   211,        -1,    47,   154,    62,   188,    63,   189,    64,   190,   126,
      252,    48,   267,    49,   177,    65,   127,    91,    95,    96,       218,   260,    49,   275,    50,   182,    66,   130,    93,    97,
      228,   229,   230,    50,    97        98,   235,   236,   237,    51,    99
 };  };
   
   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
      STATE-NUM.  */
   #define YYPACT_NINF -65
 static const short yypact[] =  static const short yypact[] =
 {  {
      454,   -55,   -19,   -63,-32768,   -28,   -13,    17,   -55,-32768,       465,   -36,     8,   -64,   -65,   -27,    19,    26,   -36,   -65,
   -32768,-32768,    23,    15,    30,    31,   454,    32,    57,    59,       -65,   -65,    33,   -16,    21,    24,   465,    56,    60,    64,
      -55,   575,   -55,    62,    69,    71,    72,-32768,-32768,-32768,       -36,   586,   -36,    67,    68,    70,    78,   -65,   -65,   -65,
       78,   685,-32768,-32768,   -32,-32768,   685,   685,   685,   685,        80,   696,   -65,    81,    25,   -65,   696,   696,   696,   696,
      685,-32768,   525,-32768,-32768,   685,   685,-32768,-32768,-32768,       696,   -65,   536,   -65,   -65,   696,   696,   133,   -65,   -65,
       -2,   811,-32768,-32768,-32768,    86,   -19,-32768,    92,   -55,       -65,    -2,   853,   -65,   -65,   -65,    84,     8,   -65,    86,
   -32768,   116,   116,   116,-32768,    87,   685,   685,   685,   140,       -36,   -65,   100,   100,   100,   -65,   -12,   696,   696,   696,
      685,   685,   685,-32768,    12,-32768,   811,-32768,   125,   126,       132,   696,   696,   696,   -65,    61,   -65,   853,   -65,   112,
      127,   685,   -36,   181,   685,   685,   128,    88,    88,   181,       114,   115,   696,   -33,  1173,   696,   696,   696,   118,   -26,
      128,   312,   -19,   685,   855,   101,   105,  1071,   102,   -19,       -26,  1173,   118,   323,     8,   696,   897,    -9,    92,  1113,
      685,   685,   685,   685,   685,   685,   685,   685,   685,   685,       101,   -65,     8,   696,   696,   696,   696,   696,   696,   696,
   -32768,   685,   685,   685,   685,   685,   685,   685,   685,   685,       696,   696,   696,   -65,   696,   696,   696,   696,   696,   696,
   -32768,   -19,   115,   117,   685,-32768,-32768,   114,   114,   114,       696,   696,   696,   -65,     8,   108,   111,   696,   -65,   -65,
      139,-32768,   886,   917,   948,   123,   135,   133,   136,   685,       109,   109,   109,   134,   -65,   928,   959,   990,   120,   123,
   -32768,   -65,   124,   138,   723,-32768,   137,   141,    53,-32768,       110,   127,   696,   -65,   -19,   129,   130,   765,   -65,   135,
   -32768,   142,   979,-32768,-32768,   685,-32768,-32768,   240,   483,       139,   116,   -53,   -65,   -65,   140,  1021,   -65,   696,   -65,
        5,   252,    79,  1165,  1146,  1120,  1101,    -8,  1071,    88,       696,   -65,   -65,   249,    23,   262,    87,  1234,  1217,  1192,
       88,   -26,   -26,   -26,   -26,  1071,  1041,   -53,-32768,-32768,       173,    45,    -8,  1113,   -26,   -26,   -45,   -45,   -45,   -45,
   -32768,   143,   160,   -55,   -55,   -55,-32768,-32768,-32768,-32768,      1113,  1083,   -60,   -65,   -65,   -65,   141,   156,   -36,   -36,
      685,   454,   685,   454,    82,-32768,   685,   685,   685,   685,       -36,   -65,   -65,   -65,   -65,   696,   465,   696,   465,   -50,
   -32768,   145,   155,   -19,   134,   150,  1071,-32768,   685,   -55,       -65,   696,   696,   696,   696,   -65,   -65,   143,   155,     8,
      -19,   685,   -55,-32768,-32768,-32768,-32768,   156,-32768,   149,       138,   149,   734,  1113,   -65,   696,   -36,     8,   696,   -36,
      200,-32768,   159,   161,   171,   767,   685,   183,    -6,   187,       -65,   -65,   -65,   -65,   150,   -65,   161,   193,   -65,   163,
   -32768,   635,    -2,   685,    34,-32768,-32768,-32768,-32768,   -55,       164,   165,   809,   696,   177,   -18,   178,   -65,   646,    -2,
      685,   454,-32768,-32768,-32768,   685,   178,   685,-32768,   -19,       696,   -65,  1143,   -65,   -65,   -65,   -65,   -36,   696,   465,
      685,   180,   184,-32768,   185,-32768,  1010,-32768,   811,-32768,       -65,   -65,   -65,   696,   168,   696,   -65,     8,   696,   169,
     1071,-32768,   201,   454,-32768,-32768,-32768,   163,-32768,-32768,       171,   -65,   172,   -65,  1052,   -65,   853,   -65,  1113,   -65,
      383,-32768,   251,   254,-32768       194,   465,   -65,   -65,   -65,   176,   -65,   -65,   394,   -65
 };  };
   
 static const short yypgoto[] =  /* YYPGOTO[NTERM-NUM].  */
   static const yysigned_char yypgoto[] =
 {  {
   -32768,     1,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,       -65,   -65,     1,   -65,   -65,   -65,   -65,   -65,   -65,   -65,
   -32768,     4,-32768,-32768,-32768,-32768,   -10,   -11,    76,-32768,       -65,   -65,     4,   -65,   -65,   -65,   -65,    66,   -34,    79,
   -32768,    28,    10,    56,     0       -65,   -65,    30,   -13,    35,     0
 };  };
   
   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
 #define YYLAST          1221     positive, shift that token.  If negative, reduce the rule which
      number is the opposite.  If zero, do what YYDEFACT says.
      If YYTABLE_NINF, syntax error.  */
 static const short yytable[] =  #define YYTABLE_NINF -1
   static const unsigned short yytable[] =
 {  {
       51,    47,    99,   195,    56,    52,   196,   101,   102,   103,        52,    48,   102,    57,   113,    53,   216,   104,   105,   106,
       53,    54,    60,   209,    43,    44,    51,    69,   210,    57,       119,   217,    61,    54,    55,   208,    52,    70,   228,   209,
      101,    76,   103,   110,    73,    75,    77,    53,    54,   116,        58,    77,   209,   113,    74,    76,    78,   117,   118,   119,
       55,    83,   145,    84,    58,    85,    86,    87,    88,    89,       120,    84,    56,    43,    44,   148,    88,    89,    90,    91,
       90,   110,    94,   112,   113,   114,   115,   116,   117,   101,        92,   113,    96,   115,   116,   117,   118,   119,   120,   200,
      102,   103,   128,   129,   110,   120,   112,   113,   114,   115,       256,    67,   201,   257,    54,    55,   123,    43,    44,   133,
      116,   117,   248,   125,    59,   249,   132,   133,   134,   131,       104,   105,   106,   158,   128,   159,    59,   135,   136,   137,
       64,   100,   104,   105,   106,   107,   108,    84,   109,   139,       134,   103,   113,    60,   115,   116,   117,   118,   119,   120,
      140,   144,    66,   110,   122,   112,   113,   114,   115,   116,        65,   143,   147,   107,   108,   109,   110,   125,    68,   112,
      117,    51,   119,   152,   101,   102,   103,    67,    68,    70,        86,    69,    87,    52,   113,   156,   115,   116,   117,   118,
      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,       119,   120,   104,   163,   164,   165,   166,   167,   168,   169,
      146,   168,   169,   170,   171,   172,   173,   174,   175,   176,       170,   171,   172,   149,   173,   174,   175,   176,   177,   178,
      151,   202,    98,   109,    71,   203,    72,   157,   110,    78,       179,   180,   181,    71,   155,   100,    86,    72,   142,   131,
      112,   113,   114,   115,   116,   117,    79,   110,    80,    81,       132,    73,   162,   101,    79,    80,   113,    81,   115,   116,
        4,   114,   115,   116,   117,    82,   136,   137,   138,   178,       117,   118,   119,   120,     4,    82,   129,    83,    85,   124,
      221,   121,    13,    14,   203,   206,    43,    44,   130,   124,       139,   140,   141,   127,   183,   138,    13,    14,   212,   144,
      147,   148,   126,   135,    23,    24,    25,    26,    27,    28,       213,   145,   146,   160,   150,   151,   152,   113,    23,    24,
       29,    30,   141,   142,   143,   154,   155,   110,   156,    32,        25,    26,    27,    28,    29,    30,   184,   161,   185,   197,
       33,    74,    35,   179,   180,   182,   186,   214,   215,   216,       187,   191,   207,    32,    33,    75,    35,   195,   104,   105,
      190,    51,   218,    51,   220,   197,   101,   102,   103,   225,       106,   196,   221,   222,   223,   198,    52,   225,    52,   227,
      181,   231,   192,   191,   193,   200,   213,   201,   234,   198,       202,   203,   220,   205,   232,   238,   186,   206,   210,   219,
      204,   212,   226,   235,   227,   194,   238,   233,   240,   104,       233,   107,   108,   109,   234,   242,   240,   112,   247,   249,
      105,   106,   107,   108,   239,   109,   241,   242,   269,   243,       243,   199,   113,   246,   115,   116,   117,   118,   119,   120,
      110,    94,   112,   113,   114,   115,   116,   117,   236,   244,       248,   250,   251,   252,   255,   258,   265,   269,    96,   270,
      247,    51,   255,   253,   250,   256,   257,   258,   261,   266,       271,   277,   274,   278,   267,   239,     0,   244,     0,    52,
      260,   273,   262,   263,   274,   101,   102,   103,   270,   259,       263,   261,     0,   264,     0,   266,     0,     0,   268,     0,
      232,     0,   265,    51,   268,     0,   217,   101,   219,     0,         0,     0,     0,     0,   104,   105,   106,     0,     0,     0,
       51,     0,   222,   223,   224,     0,     0,     0,   104,   105,       273,    52,   276,     0,   224,     0,   226,   104,    52,   106,
      106,   107,   108,     0,   109,     0,     0,   237,     0,   110,       229,   230,   231,     0,     0,     0,     0,   107,   108,   109,
      111,   112,   113,   114,   115,   116,   117,   118,   119,     0,       110,   111,     0,   112,     0,     0,     0,   245,   113,   114,
        0,   110,   246,   112,   113,   114,   115,   116,   117,   251,       115,   116,   117,   118,   119,   120,   121,   122,     0,     0,
        0,     0,     0,     1,   207,     2,   254,     3,     4,     5,         0,   113,   254,   115,   116,   117,   118,   119,   120,   259,
        6,     7,     8,     9,    10,    11,    12,     0,     0,     0,         0,     0,     0,   214,     1,     0,     2,   262,     3,     4,
       13,    14,    15,     0,    16,    17,    18,    19,     0,    20,  
       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,  
        0,     0,     0,     0,     0,    31,     0,    32,    33,    34,  
       35,    36,     0,    37,    38,     0,     0,     0,     0,     0,  
        0,     0,    39,     0,     0,     0,    40,    41,   149,    42,  
        0,    43,    44,     0,     1,    45,     2,    46,     3,     4,  
        5,     6,     7,     8,     9,    10,    11,    12,     0,     0,         5,     6,     7,     8,     9,    10,    11,    12,     0,     0,
        0,    13,    14,    15,     0,    16,    17,    18,    19,     0,         0,    13,    14,    15,     0,    16,    17,    18,    19,     0,
       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,        20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
       30,     0,     0,     0,     0,     0,    31,     0,    32,    33,        30,     0,     0,     0,     0,     0,    31,     0,    32,    33,
       34,    35,    36,     0,    37,    38,     0,     0,     0,     0,        34,    35,    36,     0,    37,    38,     0,     0,     0,     0,
        0,     0,     0,    39,     0,     0,     0,    40,    41,   271,         0,     0,     0,    39,     0,     0,     0,    40,    41,   153,
       42,     0,    43,    44,     0,     1,    45,     2,    46,     3,        42,     0,    43,    44,     0,     1,    45,     2,    46,     3,
        4,     5,     6,     7,     8,     9,    10,    11,    12,     0,         4,     5,     6,     7,     8,     9,    10,    11,    12,     0,
        0,     0,    13,    14,    15,     0,    16,    17,    18,    19,         0,     0,    13,    14,    15,     0,    16,    17,    18,    19,
Line 426  static const short yytable[] =
Line 677  static const short yytable[] =
       29,    30,     0,     0,     0,     0,     0,    31,     0,    32,        29,    30,     0,     0,     0,     0,     0,    31,     0,    32,
       33,    34,    35,    36,     0,    37,    38,     0,     0,     0,        33,    34,    35,    36,     0,    37,    38,     0,     0,     0,
        0,     0,     0,     0,    39,     0,     0,     0,    40,    41,         0,     0,     0,     0,    39,     0,     0,     0,    40,    41,
        0,    42,     0,    43,    44,     0,     0,    45,    92,    46,       279,    42,     0,    43,    44,     0,     1,    45,     2,    46,
        3,     4,   110,     0,   112,   113,   114,   115,   116,   117,         3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
        0,     0,     0,    13,    14,    15,     0,     0,     0,     0,         0,     0,     0,    13,    14,    15,     0,    16,    17,    18,
        0,     0,     0,     0,     0,    23,    24,    25,    26,    27,        19,     0,    20,    21,    22,    23,    24,    25,    26,    27,
       28,    29,    30,     0,     0,     0,     0,     0,    31,     0,        28,    29,    30,     0,     0,     0,     0,     0,    31,     0,
       32,    33,    74,    35,    36,     0,    37,    38,    93,     0,        32,    33,    34,    35,    36,     0,    37,    38,     0,     0,
        3,     4,     0,     0,     0,    39,     0,     0,     0,    40,  
        0,     0,    42,    13,    14,    15,     0,     0,    45,     0,  
       46,     0,     0,     0,     0,    23,    24,    25,    26,    27,  
       28,    29,    30,     0,     0,     0,     0,     0,    31,     0,  
       32,    33,    74,    35,    36,     0,    37,    38,     0,     0,  
        0,     0,     0,     0,     0,    39,     0,     0,     0,    40,         0,     0,     0,     0,     0,    39,     0,     0,     0,    40,
        3,     4,    42,     0,    43,    44,     0,     0,    45,     0,        41,     0,    42,     0,    43,    44,     0,     0,    45,    94,
       46,     0,     0,    13,    14,    15,     0,     0,     0,     0,        46,     3,     4,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,    23,    24,    25,    26,    27,         0,     0,     0,     0,    13,    14,    15,     0,     0,     0,
       28,    29,    30,     0,     0,     0,     0,     0,    31,     0,         0,     0,     0,     0,     0,     0,    23,    24,    25,    26,
       32,    33,    74,    35,    36,     0,    37,    38,    93,     0,        27,    28,    29,    30,     0,     0,     0,     0,     0,    31,
        3,     4,     0,     0,     0,    39,     0,     0,     0,    40,         0,    32,    33,    75,    35,    36,     0,    37,    38,    95,
        0,     0,    42,    13,    14,    15,     0,     0,    45,     0,         0,     3,     4,     0,     0,     0,    39,     0,     0,     0,
       46,     0,     0,     0,     0,    23,    24,    25,    26,    27,        40,     0,     0,    42,    13,    14,    15,     0,     0,    45,
       28,    29,    30,     0,     0,     0,     0,     0,    31,     0,         0,    46,     0,     0,     0,     0,    23,    24,    25,    26,
       32,    33,    74,    35,    36,     0,    37,    38,   101,   102,        27,    28,    29,    30,     0,     0,     0,     0,     0,    31,
      103,     0,     0,     0,     0,    39,     0,     0,     0,    40,         0,    32,    33,    75,    35,    36,     0,    37,    38,     0,
        0,     0,    42,     0,     0,     0,     0,     0,    45,     0,         0,     0,     0,     0,     0,     0,    39,     0,     0,     0,
       46,   104,   105,   106,   107,   108,     0,   109,     0,     0,        40,     3,     4,    42,     0,    43,    44,     0,     0,    45,
        0,     0,   110,   111,   112,   113,   114,   115,   116,   117,         0,    46,     0,     0,    13,    14,    15,     0,     0,     0,
      118,   119,   101,   102,   103,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,    23,    24,    25,    26,
        0,     0,     0,     0,   199,     0,     0,     0,     0,     0,        27,    28,    29,    30,     0,     0,     0,     0,     0,    31,
        0,     0,     0,     0,     0,   104,   105,   106,   107,   108,         0,    32,    33,    75,    35,    36,     0,    37,    38,    95,
        0,   109,     0,     0,     0,     0,   110,   111,   112,   113,         0,     3,     4,     0,     0,     0,    39,     0,     0,     0,
      114,   115,   116,   117,   118,   119,   101,   102,   103,     0,        40,     0,     0,    42,    13,    14,    15,     0,     0,    45,
        0,     0,     0,     0,     0,     0,     0,     0,   245,     0,         0,    46,     0,     0,     0,     0,    23,    24,    25,    26,
        0,     0,     0,     0,     0,     0,     0,     0,     0,   104,        27,    28,    29,    30,     0,     0,     0,     0,     0,    31,
      105,   106,   107,   108,     0,   109,     0,     0,     0,     0,         0,    32,    33,    75,    35,    36,     0,    37,    38,   104,
      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,       105,   106,     0,     0,     0,     0,    39,     0,     0,     0,
      101,   102,   103,     0,     0,     0,     0,     0,     0,     0,        40,     0,     0,    42,     0,     0,     0,     0,     0,    45,
       43,    44,     0,     0,     0,     0,     0,     0,     0,     0,         0,    46,   107,   108,   109,   110,   111,     0,   112,     0,
        0,     0,     0,   104,   105,   106,   107,   108,     0,   109,       104,   105,   106,   113,   114,   115,   116,   117,   118,   119,
        0,   101,   102,   103,   110,   111,   112,   113,   114,   115,       120,   121,   122,     0,     0,     0,     0,     0,     0,     0,
      116,   117,   118,   119,     0,     0,     0,     0,     0,     0,         0,     0,     0,   107,   108,   109,   110,   111,   241,   112,
        0,     0,     0,   153,   104,   105,   106,   107,   108,     0,         0,     0,     0,     0,   113,   114,   115,   116,   117,   118,
      109,     0,   101,   102,   103,   110,   111,   112,   113,   114,       119,   120,   121,   122,   104,   105,   106,     0,     0,     0,
      115,   116,   117,   118,   119,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,   204,     0,     0,     0,
        0,     0,     0,     0,   187,   104,   105,   106,   107,   108,         0,     0,     0,     0,     0,     0,     0,   107,   108,   109,
        0,   109,     0,   101,   102,   103,   110,   111,   112,   113,       110,   111,     0,   112,     0,     0,     0,     0,   113,   114,
      114,   115,   116,   117,   118,   119,     0,     0,     0,     0,       115,   116,   117,   118,   119,   120,   121,   122,   104,   105,
        0,     0,     0,     0,     0,   188,   104,   105,   106,   107,       106,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      108,     0,   109,     0,   101,   102,   103,   110,   111,   112,       253,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      113,   114,   115,   116,   117,   118,   119,     0,     0,     0,         0,   107,   108,   109,   110,   111,     0,   112,     0,     0,
        0,     0,     0,     0,     0,     0,   189,   104,   105,   106,         0,     0,   113,   114,   115,   116,   117,   118,   119,   120,
      107,   108,     0,   109,     0,   101,   102,   103,   110,   111,       121,   122,   104,   105,   106,     0,     0,     0,     0,     0,
      112,   113,   114,   115,   116,   117,   118,   119,     0,     0,         0,     0,    43,    44,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,   205,   104,   105,         0,     0,     0,     0,     0,   107,   108,   109,   110,   111,
      106,   107,   108,     0,   109,     0,   101,   102,   103,   110,         0,   112,     0,   104,   105,   106,   113,   114,   115,   116,
      111,   112,   113,   114,   115,   116,   117,   118,   119,     0,       117,   118,   119,   120,   121,   122,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,   264,   104,         0,     0,     0,     0,     0,   157,   107,   108,   109,   110,
      105,   106,   107,   108,     0,   109,   101,   102,   103,     0,       111,     0,   112,     0,   104,   105,   106,   113,   114,   115,
      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,       116,   117,   118,   119,   120,   121,   122,     0,     0,     0,
      208,     0,     0,     0,     0,     0,     0,     0,     0,   104,         0,     0,     0,     0,     0,     0,   192,   107,   108,   109,
      105,   106,   107,   108,     0,   109,   101,   102,   103,     0,       110,   111,     0,   112,     0,   104,   105,   106,   113,   114,
      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,       115,   116,   117,   118,   119,   120,   121,   122,     0,     0,
        0,     0,     0,     0,     0,   101,   102,   103,     0,   104,         0,     0,     0,     0,     0,     0,     0,   193,   107,   108,
      105,   106,   107,     0,     0,   109,     0,     0,     0,     0,       109,   110,   111,     0,   112,     0,   104,   105,   106,   113,
      110,     0,   112,   113,   114,   115,   116,   117,   104,   105,       114,   115,   116,   117,   118,   119,   120,   121,   122,     0,
      106,   101,   102,   103,   109,     0,     0,     0,     0,   110,         0,     0,     0,     0,     0,     0,     0,     0,   194,   107,
        0,   112,   113,   114,   115,   116,   117,     0,     0,     0,       108,   109,   110,   111,     0,   112,     0,   104,   105,   106,
      101,   102,   103,     0,   104,   105,     0,     0,     0,     0,       113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
      109,     0,     0,     0,     0,   110,     0,   112,   113,   114,         0,     0,     0,     0,     0,     0,     0,     0,     0,   211,
      115,   116,   117,   104,     0,     0,     0,     0,     0,   109,       107,   108,   109,   110,   111,     0,   112,     0,   104,   105,
        0,     0,     0,     0,   110,     0,   112,   113,   114,   115,       106,   113,   114,   115,   116,   117,   118,   119,   120,   121,
      116,   117       122,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        272,   107,   108,   109,   110,   111,     0,   112,   104,   105,
        106,     0,   113,   114,   115,   116,   117,   118,   119,   120,
        121,   122,   215,     0,     0,     0,     0,     0,     0,     0,
          0,   107,   108,   109,   110,   111,     0,   112,   104,   105,
        106,     0,   113,   114,   115,   116,   117,   118,   119,   120,
        121,   122,     0,     0,     0,     0,     0,     0,     0,     0,
          0,   107,   108,   109,   110,   111,     0,   112,   104,   105,
        106,     0,   113,     0,   115,   116,   117,   118,   119,   120,
          0,   122,     0,     0,     0,     0,     0,   104,   105,   106,
          0,   107,   108,   109,   110,   111,     0,   112,     0,     0,
          0,     0,   113,     0,   115,   116,   117,   118,   119,   120,
        107,   108,   104,   105,   106,     0,   112,     0,     0,     0,
          0,   113,     0,   115,   116,   117,   118,   119,   120,   104,
        105,   106,     0,     0,     0,   107,     0,     0,     0,     0,
          0,   112,     0,     0,     0,     0,   113,     0,   115,   116,
        117,   118,   119,   120,     0,     0,     0,     0,   112,     0,
          0,     0,     0,   113,     0,   115,   116,   117,   118,   119,
        120
 };  };
   
 static const short yycheck[] =  static const short yycheck[] =
 {  {
        0,     0,     4,    68,    67,     1,    71,    15,    16,    17,         0,     0,     4,    67,    49,     1,    66,    15,    16,    17,
       46,    47,     8,    66,    69,    70,    16,    16,    71,    47,        55,    71,     8,    46,    47,    68,    16,    16,    68,    72,
       15,    21,    17,    49,    20,    21,    22,    46,    47,    55,        47,    21,    72,    49,    20,    21,    22,    53,    54,    55,
        2,    31,    68,    65,    47,    67,    36,    37,    38,    39,        56,    31,     2,    69,    70,    68,    36,    37,    38,    39,
       40,    49,    42,    51,    52,    53,    54,    55,    56,    15,        40,    49,    42,    51,    52,    53,    54,    55,    56,    68,
       16,    17,    62,    63,    49,    51,    51,    52,    53,    54,        68,    67,    71,    71,    46,    47,    52,    69,    70,    71,
       55,    56,    68,    59,    47,    71,    66,    67,    68,    65,        15,    16,    17,    72,    60,    74,    47,    67,    68,    69,
       47,    73,    38,    39,    40,    41,    42,    65,    44,    67,        66,    73,    49,    47,    51,    52,    53,    54,    55,    56,
       76,    81,    67,    49,    56,    51,    52,    53,    54,    55,        47,    77,    82,    38,    39,    40,    41,    57,    67,    44,
       56,    91,    58,    93,    15,    16,    17,    67,    67,    67,        65,    67,    67,    93,    49,    95,    51,    52,    53,    54,
      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,        55,    56,    15,   103,   104,   105,   106,   107,   108,   109,
       82,   111,   112,   113,   114,   115,   116,   117,   118,   119,       110,   111,   112,    83,   114,   115,   116,   117,   118,   119,
       92,    68,    46,    44,    67,    72,    67,    99,    49,    67,       120,   121,   122,    67,    94,    46,    65,    67,    67,    63,
       51,    52,    53,    54,    55,    56,    67,    49,    67,    67,        64,    67,   102,     0,    67,    67,    49,    67,    51,    52,
        6,    53,    54,    55,    56,    67,    70,    71,    72,   121,        53,    54,    55,    56,     6,    67,    46,    67,    67,    65,
       68,    65,    18,    19,    72,   155,    69,    70,    71,    67,        71,    72,    73,    67,   124,    23,    18,    19,   158,    47,
       84,    85,    46,    23,    30,    31,    32,    33,    34,    35,       160,    47,    47,    71,    85,    86,    87,    49,    30,    31,
       36,    37,    47,    47,    47,    74,    71,    49,    76,    45,        32,    33,    34,    35,    36,    37,    68,    76,    67,    69,
       46,    47,    48,    68,    67,    71,    47,   183,   184,   185,        71,    47,    66,    45,    46,    47,    48,    67,    15,    16,
       67,   191,   191,   193,   193,    71,    15,    16,    17,   199,        17,    68,   188,   189,   190,    68,   196,   196,   198,   198,
      124,    67,    69,    68,    68,    68,    46,    66,   208,    71,        71,    71,    46,    68,   204,    67,   127,    68,    68,    68,
       68,    68,    67,   209,    59,   139,   212,    67,    69,    38,        67,    38,    39,    40,    59,   215,    67,    44,    68,    26,
       39,    40,    41,    42,    68,    44,    26,    68,    65,    68,       216,   142,    49,   219,    51,    52,    53,    54,    55,    56,
       49,   231,    51,    52,    53,    54,    55,    56,   210,    68,        69,    68,    68,    68,    57,    57,    68,    68,   238,    68,
       57,   241,   241,   239,    57,   245,    68,   247,    68,    48,        68,    65,    48,   277,   257,   210,    -1,   217,    -1,   249,
      250,     0,    68,    68,     0,    15,    16,    17,   269,   249,       249,   247,    -1,   253,    -1,   255,    -1,    -1,   258,    -1,
      204,    -1,   258,   263,   263,    -1,   190,    15,   192,    -1,        -1,    -1,    -1,    -1,    15,    16,    17,    -1,    -1,    -1,
      270,    -1,   196,   197,   198,    -1,    -1,    -1,    38,    39,       266,   271,   271,    -1,   195,    -1,   197,    15,   278,    17,
       40,    41,    42,    -1,    44,    -1,    -1,   211,    -1,    49,       201,   202,   203,    -1,    -1,    -1,    -1,    38,    39,    40,
       50,    51,    52,    53,    54,    55,    56,    57,    58,    -1,        41,    42,    -1,    44,    -1,    -1,    -1,   218,    49,    50,
       -1,    49,   226,    51,    52,    53,    54,    55,    56,   233,        51,    52,    53,    54,    55,    56,    57,    58,    -1,    -1,
       -1,    -1,    -1,     1,    74,     3,   240,     5,     6,     7,        -1,    49,   233,    51,    52,    53,    54,    55,    56,   240,
        8,     9,    10,    11,    12,    13,    14,    -1,    -1,    -1,        -1,    -1,    -1,    74,     1,    -1,     3,   248,     5,     6,
       18,    19,    20,    -1,    22,    23,    24,    25,    -1,    27,  
       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,  
       -1,    -1,    -1,    -1,    -1,    43,    -1,    45,    46,    47,  
       48,    49,    -1,    51,    52,    -1,    -1,    -1,    -1,    -1,  
       -1,    -1,    60,    -1,    -1,    -1,    64,    65,    66,    67,  
       -1,    69,    70,    -1,     1,    73,     3,    75,     5,     6,  
        7,     8,     9,    10,    11,    12,    13,    14,    -1,    -1,         7,     8,     9,    10,    11,    12,    13,    14,    -1,    -1,
       -1,    18,    19,    20,    -1,    22,    23,    24,    25,    -1,        -1,    18,    19,    20,    -1,    22,    23,    24,    25,    -1,
       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,        27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
Line 553  static const short yycheck[] =
Line 811  static const short yycheck[] =
       36,    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,    45,        36,    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,    45,
       46,    47,    48,    49,    -1,    51,    52,    -1,    -1,    -1,        46,    47,    48,    49,    -1,    51,    52,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    64,    65,        -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    64,    65,
       -1,    67,    -1,    69,    70,    -1,    -1,    73,     3,    75,        66,    67,    -1,    69,    70,    -1,     1,    73,     3,    75,
        5,     6,    49,    -1,    51,    52,    53,    54,    55,    56,         5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
       -1,    -1,    -1,    18,    19,    20,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    18,    19,    20,    -1,    22,    23,    24,
       -1,    -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,        25,    -1,    27,    28,    29,    30,    31,    32,    33,    34,
       35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,        35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,
       45,    46,    47,    48,    49,    -1,    51,    52,    53,    -1,  
        5,     6,    -1,    -1,    -1,    60,    -1,    -1,    -1,    64,  
       -1,    -1,    67,    18,    19,    20,    -1,    -1,    73,    -1,  
       75,    -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,  
       35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,  
       45,    46,    47,    48,    49,    -1,    51,    52,    -1,    -1,        45,    46,    47,    48,    49,    -1,    51,    52,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    64,        -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    64,
        5,     6,    67,    -1,    69,    70,    -1,    -1,    73,    -1,        65,    -1,    67,    -1,    69,    70,    -1,    -1,    73,     3,
       75,    -1,    -1,    18,    19,    20,    -1,    -1,    -1,    -1,        75,     5,     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,        -1,    -1,    -1,    -1,    18,    19,    20,    -1,    -1,    -1,
       35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,    33,
       45,    46,    47,    48,    49,    -1,    51,    52,    53,    -1,        34,    35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,
        5,     6,    -1,    -1,    -1,    60,    -1,    -1,    -1,    64,        -1,    45,    46,    47,    48,    49,    -1,    51,    52,    53,
       -1,    -1,    67,    18,    19,    20,    -1,    -1,    73,    -1,        -1,     5,     6,    -1,    -1,    -1,    60,    -1,    -1,    -1,
       75,    -1,    -1,    -1,    -1,    30,    31,    32,    33,    34,        64,    -1,    -1,    67,    18,    19,    20,    -1,    -1,    73,
       35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,    -1,        -1,    75,    -1,    -1,    -1,    -1,    30,    31,    32,    33,
       45,    46,    47,    48,    49,    -1,    51,    52,    15,    16,        34,    35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,
       17,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    64,        -1,    45,    46,    47,    48,    49,    -1,    51,    52,    -1,
       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    73,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,
       75,    38,    39,    40,    41,    42,    -1,    44,    -1,    -1,        64,     5,     6,    67,    -1,    69,    70,    -1,    -1,    73,
         -1,    75,    -1,    -1,    18,    19,    20,    -1,    -1,    -1,
         -1,    -1,    -1,    -1,    -1,    -1,    30,    31,    32,    33,
         34,    35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,
         -1,    45,    46,    47,    48,    49,    -1,    51,    52,    53,
         -1,     5,     6,    -1,    -1,    -1,    60,    -1,    -1,    -1,
         64,    -1,    -1,    67,    18,    19,    20,    -1,    -1,    73,
         -1,    75,    -1,    -1,    -1,    -1,    30,    31,    32,    33,
         34,    35,    36,    37,    -1,    -1,    -1,    -1,    -1,    43,
         -1,    45,    46,    47,    48,    49,    -1,    51,    52,    15,
         16,    17,    -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,
         64,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    73,
         -1,    75,    38,    39,    40,    41,    42,    -1,    44,    -1,
         15,    16,    17,    49,    50,    51,    52,    53,    54,    55,
         56,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
         -1,    -1,    -1,    38,    39,    40,    41,    42,    74,    44,
         -1,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
         55,    56,    57,    58,    15,    16,    17,    -1,    -1,    -1,
         -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,
         -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,    39,    40,
         41,    42,    -1,    44,    -1,    -1,    -1,    -1,    49,    50,
         51,    52,    53,    54,    55,    56,    57,    58,    15,    16,
         17,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
         71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
         -1,    38,    39,    40,    41,    42,    -1,    44,    -1,    -1,
       -1,    -1,    49,    50,    51,    52,    53,    54,    55,    56,        -1,    -1,    49,    50,    51,    52,    53,    54,    55,    56,
       57,    58,    15,    16,    17,    -1,    -1,    -1,    -1,    -1,        57,    58,    15,    16,    17,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    69,    70,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    38,    39,    40,    41,    42,        -1,    -1,    -1,    -1,    -1,    38,    39,    40,    41,    42,
       -1,    44,    -1,    -1,    -1,    -1,    49,    50,    51,    52,  
       53,    54,    55,    56,    57,    58,    15,    16,    17,    -1,  
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,  
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,  
       39,    40,    41,    42,    -1,    44,    -1,    -1,    -1,    -1,  
       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,  
       15,    16,    17,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  
       69,    70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  
       -1,    -1,    -1,    38,    39,    40,    41,    42,    -1,    44,  
       -1,    15,    16,    17,    49,    50,    51,    52,    53,    54,  
       55,    56,    57,    58,    -1,    -1,    -1,    -1,    -1,    -1,  
       -1,    -1,    -1,    68,    38,    39,    40,    41,    42,    -1,  
       44,    -1,    15,    16,    17,    49,    50,    51,    52,    53,  
       54,    55,    56,    57,    58,    -1,    -1,    -1,    -1,    -1,  
       -1,    -1,    -1,    -1,    68,    38,    39,    40,    41,    42,  
       -1,    44,    -1,    15,    16,    17,    49,    50,    51,    52,        -1,    44,    -1,    15,    16,    17,    49,    50,    51,    52,
       53,    54,    55,    56,    57,    58,    -1,    -1,    -1,    -1,        53,    54,    55,    56,    57,    58,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    68,    38,    39,    40,    41,        -1,    -1,    -1,    -1,    -1,    68,    38,    39,    40,    41,
Line 609  static const short yycheck[] =
Line 871  static const short yycheck[] =
       40,    41,    42,    -1,    44,    -1,    15,    16,    17,    49,        40,    41,    42,    -1,    44,    -1,    15,    16,    17,    49,
       50,    51,    52,    53,    54,    55,    56,    57,    58,    -1,        50,    51,    52,    53,    54,    55,    56,    57,    58,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    38,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    38,
       39,    40,    41,    42,    -1,    44,    15,    16,    17,    -1,        39,    40,    41,    42,    -1,    44,    -1,    15,    16,    17,
       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,        49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
       59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    38,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,
       39,    40,    41,    42,    -1,    44,    15,    16,    17,    -1,        38,    39,    40,    41,    42,    -1,    44,    -1,    15,    16,
       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,        17,    49,    50,    51,    52,    53,    54,    55,    56,    57,
       -1,    -1,    -1,    -1,    -1,    15,    16,    17,    -1,    38,        58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       39,    40,    41,    -1,    -1,    44,    -1,    -1,    -1,    -1,        68,    38,    39,    40,    41,    42,    -1,    44,    15,    16,
       49,    -1,    51,    52,    53,    54,    55,    56,    38,    39,        17,    -1,    49,    50,    51,    52,    53,    54,    55,    56,
       40,    15,    16,    17,    44,    -1,    -1,    -1,    -1,    49,        57,    58,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    51,    52,    53,    54,    55,    56,    -1,    -1,    -1,        -1,    38,    39,    40,    41,    42,    -1,    44,    15,    16,
       15,    16,    17,    -1,    38,    39,    -1,    -1,    -1,    -1,        17,    -1,    49,    50,    51,    52,    53,    54,    55,    56,
       44,    -1,    -1,    -1,    -1,    49,    -1,    51,    52,    53,        57,    58,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       54,    55,    56,    38,    -1,    -1,    -1,    -1,    -1,    44,        -1,    38,    39,    40,    41,    42,    -1,    44,    15,    16,
       -1,    -1,    -1,    -1,    49,    -1,    51,    52,    53,    54,        17,    -1,    49,    -1,    51,    52,    53,    54,    55,    56,
       55,    56        -1,    58,    -1,    -1,    -1,    -1,    -1,    15,    16,    17,
         -1,    38,    39,    40,    41,    42,    -1,    44,    -1,    -1,
         -1,    -1,    49,    -1,    51,    52,    53,    54,    55,    56,
         38,    39,    15,    16,    17,    -1,    44,    -1,    -1,    -1,
         -1,    49,    -1,    51,    52,    53,    54,    55,    56,    15,
         16,    17,    -1,    -1,    -1,    38,    -1,    -1,    -1,    -1,
         -1,    44,    -1,    -1,    -1,    -1,    49,    -1,    51,    52,
         53,    54,    55,    56,    -1,    -1,    -1,    -1,    44,    -1,
         -1,    -1,    -1,    49,    -1,    51,    52,    53,    54,    55,
         56
 };  };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */  
 #line 3 "/usr/share/bison/bison.simple"  
   
 /* Skeleton output parser for bison,  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
      symbol of state STATE-NUM.  */
    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software  static const unsigned char yystos[] =
    Foundation, Inc.  
   
    This program is free software; you can redistribute it and/or modify  
    it under the terms of the GNU General Public License as published by  
    the Free Software Foundation; either version 2, or (at your option)  
    any later version.  
   
    This program is distributed in the hope that it will be useful,  
    but WITHOUT ANY WARRANTY; without even the implied warranty of  
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
    GNU General Public License for more details.  
   
    You should have received a copy of the GNU General Public License  
    along with this program; if not, write to the Free Software  
    Foundation, Inc., 59 Temple Place - Suite 330,  
    Boston, MA 02111-1307, USA.  */  
   
 /* As a special exception, when this file is copied by Bison into a  
    Bison output file, you may use that output file without restriction.  
    This special exception was added by the Free Software Foundation  
    in version 1.24 of Bison.  */  
   
 /* This is the parser code that is written into each bison parser when  
    the %semantic_parser declaration is not specified in the grammar.  
    It was written by Richard Stallman by simplifying the hairy parser  
    used when %semantic_parser is specified.  */  
   
 /* All symbols defined below should begin with yy or YY, to avoid  
    infringing on user name space.  This should be done even for local  
    variables, as they might otherwise be expanded by user macros.  
    There are some unavoidable exceptions within include files to  
    define necessary library symbols; they are noted "INFRINGES ON  
    USER NAME SPACE" below.  */  
   
 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)  
   
 /* The parser invokes alloca or malloc; define the necessary symbols.  */  
   
 # if YYSTACK_USE_ALLOCA  
 #  define YYSTACK_ALLOC alloca  
 # else  
 #  ifndef YYSTACK_USE_ALLOCA  
 #   if defined (alloca) || defined (_ALLOCA_H)  
 #    define YYSTACK_ALLOC alloca  
 #   else  
 #    ifdef __GNUC__  
 #     define YYSTACK_ALLOC __builtin_alloca  
 #    endif  
 #   endif  
 #  endif  
 # endif  
   
 # ifdef YYSTACK_ALLOC  
    /* Pacify GCC's `empty if-body' warning. */  
 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)  
 # else  
 #  if defined (__STDC__) || defined (__cplusplus)  
 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */  
 #   define YYSIZE_T size_t  
 #  endif  
 #  define YYSTACK_ALLOC malloc  
 #  define YYSTACK_FREE free  
 # endif  
 #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */  
   
   
 #if (! defined (yyoverflow) \  
      && (! defined (__cplusplus) \  
          || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))  
   
 /* A type that is properly aligned for any stack member.  */  
 union yyalloc  
 {  {
   short yyss;         0,     1,     3,     5,     6,     7,     8,     9,    10,    11,
   YYSTYPE yyvs;        12,    13,    14,    18,    19,    20,    22,    23,    24,    25,
 # if YYLSP_NEEDED        27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
   YYLTYPE yyls;        37,    43,    45,    46,    47,    48,    49,    51,    52,    60,
 # endif        64,    65,    67,    69,    70,    73,    75,    78,    79,    89,
         91,   101,   102,    89,    46,    47,    99,    67,    47,    47,
         47,    89,    80,    82,    84,    47,    93,    67,    67,    67,
         79,    67,    67,    67,    89,    47,    89,   102,    89,    67,
         67,    67,    67,    67,   102,    67,    65,    67,   102,   102,
        102,   102,   102,    95,     3,    53,   102,    96,    97,   102,
         96,     0,     4,    73,    15,    16,    17,    38,    39,    40,
         41,    42,    44,    49,    50,    51,    52,    53,    54,    55,
         56,    57,    58,    89,    65,    99,    86,    67,    89,    46,
         94,    94,    94,    71,    89,   102,   102,   102,    23,    96,
         96,    96,    67,    89,    47,    47,    47,   102,    68,    99,
         96,    96,    96,    66,    79,    99,   102,    68,    72,    74,
         71,    76,    99,   102,   102,   102,   102,   102,   102,   102,
        102,   102,   102,   102,   102,   102,   102,   102,   102,   102,
        102,   102,    92,    99,    68,    67,    96,    71,    81,    83,
         85,    47,    68,    68,    68,    67,    68,    69,    68,    96,
         68,    71,    71,    71,    71,    68,    68,    66,    68,    72,
         68,    68,   102,   102,    74,    59,    66,    71,    87,    68,
         46,    89,    89,    89,    96,    79,    96,    79,    68,    96,
         96,    96,   102,    67,    59,    98,    99,   100,    67,   101,
         67,    74,   102,    89,    99,    96,    89,    68,    69,    26,
         68,    68,    68,    71,    96,    57,    68,    71,    57,    96,
         88,    89,    96,    79,   102,    68,   102,   100,   102,    68,
         68,    68,    68,    89,    48,    90,    79,    65,    95,    66
 };  };
   
 /* The size of the maximum gap between one aligned stack and the next.  */  
 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)  
   
 /* The size of an array large to enough to hold all stacks, each with  
    N elements.  */  
 # if YYLSP_NEEDED  
 #  define YYSTACK_BYTES(N) \  
      ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))      \  
       + 2 * YYSTACK_GAP_MAX)  
 # else  
 #  define YYSTACK_BYTES(N) \  
      ((N) * (sizeof (short) + sizeof (YYSTYPE))                         \  
       + YYSTACK_GAP_MAX)  
 # endif  
   
 /* Copy COUNT objects from FROM to TO.  The source and destination do  
    not overlap.  */  
 # ifndef YYCOPY  
 #  if 1 < __GNUC__  
 #   define YYCOPY(To, From, Count) \  
       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))  
 #  else  
 #   define YYCOPY(To, From, Count)              \  
       do                                        \  
         {                                       \  
           register YYSIZE_T yyi;                \  
           for (yyi = 0; yyi < (Count); yyi++)   \  
             (To)[yyi] = (From)[yyi];            \  
         }                                       \  
       while (0)  
 #  endif  
 # endif  
   
 /* Relocate STACK from its old location to the new one.  The  
    local variables YYSIZE and YYSTACKSIZE give the old and new number of  
    elements in the stack, and YYPTR gives the new location of the  
    stack.  Advance YYPTR to a properly aligned location for the next  
    stack.  */  
 # define YYSTACK_RELOCATE(Stack)                                        \  
     do                                                                  \  
       {                                                                 \  
         YYSIZE_T yynewbytes;                                            \  
         YYCOPY (&yyptr->Stack, Stack, yysize);                          \  
         Stack = &yyptr->Stack;                                          \  
         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;   \  
         yyptr += yynewbytes / sizeof (*yyptr);                          \  
       }                                                                 \  
     while (0)  
   
 #endif  
   
   
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__  # define YYSIZE_T __SIZE_TYPE__
 #endif  #endif
Line 781  union yyalloc
Line 949  union yyalloc
   
 #define yyerrok         (yyerrstatus = 0)  #define yyerrok         (yyerrstatus = 0)
 #define yyclearin       (yychar = YYEMPTY)  #define yyclearin       (yychar = YYEMPTY)
 #define YYEMPTY         -2  #define YYEMPTY         (-2)
 #define YYEOF           0  #define YYEOF           0
   
 #define YYACCEPT        goto yyacceptlab  #define YYACCEPT        goto yyacceptlab
 #define YYABORT         goto yyabortlab  #define YYABORT         goto yyabortlab
 #define YYERROR         goto yyerrlab1  #define YYERROR         goto yyerrlab1
   
   
 /* Like YYERROR except do call yyerror.  This remains here temporarily  /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.     to ease the transition to the new meaning of YYERROR, for GCC.
    Once GCC version 2 has supplanted version 1, this can go.  */     Once GCC version 2 has supplanted version 1, this can go.  */
   
 #define YYFAIL          goto yyerrlab  #define YYFAIL          goto yyerrlab
   
 #define YYRECOVERING()  (!!yyerrstatus)  #define YYRECOVERING()  (!!yyerrstatus)
   
 #define YYBACKUP(Token, Value)                                  \  #define YYBACKUP(Token, Value)                                  \
 do                                                              \  do                                                              \
   if (yychar == YYEMPTY && yylen == 1)                          \    if (yychar == YYEMPTY && yylen == 1)                          \
     {                                                           \      {                                                           \
       yychar = (Token);                                         \        yychar = (Token);                                         \
       yylval = (Value);                                         \        yylval = (Value);                                         \
       yychar1 = YYTRANSLATE (yychar);                           \        yytoken = YYTRANSLATE (yychar);                           \
       YYPOPSTACK;                                               \        YYPOPSTACK;                                               \
       goto yybackup;                                            \        goto yybackup;                                            \
     }                                                           \      }                                                           \
   else                                                          \    else                                                          \
     {                                                           \      {                                                           \
       yyerror ("syntax error: cannot back up");                 \        yyerror ("syntax error: cannot back up");\
       YYERROR;                                                  \        YYERROR;                                                  \
     }                                                           \      }                                                           \
 while (0)  while (0)
Line 811  while (0)
Line 985  while (0)
 #define YYTERROR        1  #define YYTERROR        1
 #define YYERRCODE       256  #define YYERRCODE       256
   
   
 /* YYLLOC_DEFAULT -- Compute the default location (before the actions  /* YYLLOC_DEFAULT -- Compute the default location (before the actions
    are run).     are run).  */
   
    When YYLLOC_DEFAULT is run, CURRENT is set the location of the  
    first token.  By default, to implement support for ranges, extend  
    its range to the last symbol.  */  
   
 #ifndef YYLLOC_DEFAULT  #ifndef YYLLOC_DEFAULT
 # define YYLLOC_DEFAULT(Current, Rhs, N)        \  # define YYLLOC_DEFAULT(Current, Rhs, N)         \
    Current.last_line   = Rhs[N].last_line;      \    Current.first_line   = Rhs[1].first_line;      \
    Current.last_column = Rhs[N].last_column;    Current.first_column = Rhs[1].first_column;    \
     Current.last_line    = Rhs[N].last_line;       \
     Current.last_column  = Rhs[N].last_column;
 #endif  #endif
   
   
 /* YYLEX -- calling `yylex' with the right arguments.  */  /* YYLEX -- calling `yylex' with the right arguments.  */
   
 #if YYPURE  #ifdef YYLEX_PARAM
 # if YYLSP_NEEDED  # define YYLEX yylex (YYLEX_PARAM)
 #  ifdef YYLEX_PARAM  #else
 #   define YYLEX                yylex (&yylval, &yylloc, YYLEX_PARAM)  # define YYLEX yylex ()
 #  else  #endif
 #   define YYLEX                yylex (&yylval, &yylloc)  
 #  endif  
 # else /* !YYLSP_NEEDED */  
 #  ifdef YYLEX_PARAM  
 #   define YYLEX                yylex (&yylval, YYLEX_PARAM)  
 #  else  
 #   define YYLEX                yylex (&yylval)  
 #  endif  
 # endif /* !YYLSP_NEEDED */  
 #else /* !YYPURE */  
 # define YYLEX                  yylex ()  
 #endif /* !YYPURE */  
   
   
 /* Enable debugging if requested.  */  /* Enable debugging if requested.  */
 #if YYDEBUG  #if YYDEBUG
   
Line 860  do {      \
Line 1017  do {      \
   if (yydebug)                                  \    if (yydebug)                                  \
     YYFPRINTF Args;                             \      YYFPRINTF Args;                             \
 } while (0)  } while (0)
   
   # define YYDSYMPRINT(Args)                      \
   do {                                            \
     if (yydebug)                                  \
       yysymprint Args;                            \
   } while (0)
   
   # define YYDSYMPRINTF(Title, Token, Value, Location)            \
   do {                                                            \
     if (yydebug)                                                  \
       {                                                           \
         YYFPRINTF (stderr, "%s ", Title);                         \
         yysymprint (stderr,                                       \
                     Token, Value);        \
         YYFPRINTF (stderr, "\n");                                 \
       }                                                           \
   } while (0)
   
   /*------------------------------------------------------------------.
   | yy_stack_print -- Print the state stack from its BOTTOM up to its |
   | TOP (cinluded).                                                   |
   `------------------------------------------------------------------*/
   
   #if defined (__STDC__) || defined (__cplusplus)
   static void
   yy_stack_print (short *bottom, short *top)
   #else
   static void
   yy_stack_print (bottom, top)
       short *bottom;
       short *top;
   #endif
   {
     YYFPRINTF (stderr, "Stack now");
     for (/* Nothing. */; bottom <= top; ++bottom)
       YYFPRINTF (stderr, " %d", *bottom);
     YYFPRINTF (stderr, "\n");
   }
   
   # define YY_STACK_PRINT(Bottom, Top)                            \
   do {                                                            \
     if (yydebug)                                                  \
       yy_stack_print ((Bottom), (Top));                           \
   } while (0)
   
   
   /*------------------------------------------------.
   | Report that the YYRULE is going to be reduced.  |
   `------------------------------------------------*/
   
   #if defined (__STDC__) || defined (__cplusplus)
   static void
   yy_reduce_print (int yyrule)
   #else
   static void
   yy_reduce_print (yyrule)
       int yyrule;
   #endif
   {
     int yyi;
     unsigned int yylno = yyrline[yyrule];
     YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
                yyrule - 1, yylno);
     /* Print the symbols being reduced, and their result.  */
     for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
       YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
     YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
   }
   
   # define YY_REDUCE_PRINT(Rule)          \
   do {                                    \
     if (yydebug)                          \
       yy_reduce_print (Rule);             \
   } while (0)
   
 /* Nonzero means print parse trace.  It is left uninitialized so that  /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */     multiple parsers can coexist.  */
 int yydebug;  int yydebug;
 #else /* !YYDEBUG */  #else /* !YYDEBUG */
 # define YYDPRINTF(Args)  # define YYDPRINTF(Args)
   # define YYDSYMPRINT(Args)
   # define YYDSYMPRINTF(Title, Token, Value, Location)
   # define YY_STACK_PRINT(Bottom, Top)
   # define YY_REDUCE_PRINT(Rule)
 #endif /* !YYDEBUG */  #endif /* !YYDEBUG */
   
   
 /* YYINITDEPTH -- initial size of the parser's stacks.  */  /* YYINITDEPTH -- initial size of the parser's stacks.  */
 #ifndef YYINITDEPTH  #ifndef YYINITDEPTH
 # define YYINITDEPTH 200  # define YYINITDEPTH 200
Line 886  int yydebug;
Line 1123  int yydebug;
 #ifndef YYMAXDEPTH  #ifndef YYMAXDEPTH
 # define YYMAXDEPTH 10000  # define YYMAXDEPTH 10000
 #endif  #endif
   
   
 #ifdef YYERROR_VERBOSE  
   
   #if YYERROR_VERBOSE
   
 # ifndef yystrlen  # ifndef yystrlen
 #  if defined (__GLIBC__) && defined (_STRING_H)  #  if defined (__GLIBC__) && defined (_STRING_H)
 #   define yystrlen strlen  #   define yystrlen strlen
Line 937  yystpcpy (yydest, yysrc)
Line 1176  yystpcpy (yydest, yysrc)
 }  }
 #  endif  #  endif
 # endif  # endif
 #endif  
   #endif /* !YYERROR_VERBOSE */
   
   
 #line 315 "/usr/share/bison/bison.simple"  
   
   #if YYDEBUG
   /*--------------------------------.
   | Print this symbol on YYOUTPUT.  |
   `--------------------------------*/
   
 /* The user can define YYPARSE_PARAM as the name of an argument to be passed  #if defined (__STDC__) || defined (__cplusplus)
    into yyparse.  The argument should have type void *.  static void
    It should actually point to an object.  yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
    Grammar actions can access the variable by casting it  #else
    to the proper pointer type.  */  static void
   yysymprint (yyoutput, yytype, yyvaluep)
       FILE *yyoutput;
       int yytype;
       YYSTYPE *yyvaluep;
   #endif
   {
     /* Pacify ``unused variable'' warnings.  */
     (void) yyvaluep;
   
     if (yytype < YYNTOKENS)
       {
         YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
   # ifdef YYPRINT
         YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
   # endif
       }
     else
       YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
   
     switch (yytype)
       {
         default:
           break;
       }
     YYFPRINTF (yyoutput, ")");
   }
   
   #endif /* ! YYDEBUG */
   /*-----------------------------------------------.
   | Release the memory associated to this symbol.  |
   `-----------------------------------------------*/
   
   #if defined (__STDC__) || defined (__cplusplus)
   static void
   yydestruct (int yytype, YYSTYPE *yyvaluep)
   #else
   static void
   yydestruct (yytype, yyvaluep)
       int yytype;
       YYSTYPE *yyvaluep;
   #endif
   {
     /* Pacify ``unused variable'' warnings.  */
     (void) yyvaluep;
   
     switch (yytype)
       {
   
         default:
           break;
       }
   }
   
   
   /* Prevent warnings from -Wmissing-prototypes.  */
   
 #ifdef YYPARSE_PARAM  #ifdef YYPARSE_PARAM
 # if defined (__STDC__) || defined (__cplusplus)  # if defined (__STDC__) || defined (__cplusplus)
 #  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM  int yyparse (void *YYPARSE_PARAM);
 #  define YYPARSE_PARAM_DECL  
 # else  # else
 #  define YYPARSE_PARAM_ARG YYPARSE_PARAM  int yyparse ();
 #  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;  
 # endif  # endif
 #else /* !YYPARSE_PARAM */  #else /* ! YYPARSE_PARAM */
 # define YYPARSE_PARAM_ARG  #if defined (__STDC__) || defined (__cplusplus)
 # define YYPARSE_PARAM_DECL  
 #endif /* !YYPARSE_PARAM */  
   
 /* Prevent warning if -Wstrict-prototypes.  */  
 #ifdef __GNUC__  
 # ifdef YYPARSE_PARAM  
 int yyparse (void *);  
 # else  
 int yyparse (void);  int yyparse (void);
 # endif  #else
   int yyparse ();
 #endif  #endif
   #endif /* ! YYPARSE_PARAM */
   
 /* YY_DECL_VARIABLES -- depending whether we use a pure parser,  
    variables are global, or local to YYPARSE.  */  
   
 #define YY_DECL_NON_LSP_VARIABLES                       \  
 /* The lookahead symbol.  */                            \  
 int yychar;                                             \  
                                                         \  
 /* The semantic value of the lookahead symbol. */       \  
 YYSTYPE yylval;                                         \  
                                                         \  
 /* Number of parse errors so far.  */                   \  
 int yynerrs;  
   
 #if YYLSP_NEEDED  /* The lookahead symbol.  */
 # define YY_DECL_VARIABLES                      \  int yychar;
 YY_DECL_NON_LSP_VARIABLES                       \  
                                                 \  
 /* Location data for the lookahead symbol.  */  \  
 YYLTYPE yylloc;  
 #else  
 # define YY_DECL_VARIABLES                      \  
 YY_DECL_NON_LSP_VARIABLES  
 #endif  
   
   /* The semantic value of the lookahead symbol.  */
   YYSTYPE yylval;
   
 /* If nonreentrant, generate the variables here. */  /* Number of syntax errors so far.  */
   int yynerrs;
   
 #if !YYPURE  
 YY_DECL_VARIABLES  
 #endif  /* !YYPURE */  
   
   
   /*----------.
   | yyparse.  |
   `----------*/
   
   #ifdef YYPARSE_PARAM
   # if defined (__STDC__) || defined (__cplusplus)
   int yyparse (void *YYPARSE_PARAM)
   # else
   int yyparse (YYPARSE_PARAM)
     void *YYPARSE_PARAM;
   # endif
   #else /* ! YYPARSE_PARAM */
   #if defined (__STDC__) || defined (__cplusplus)
 int  int
 yyparse (YYPARSE_PARAM_ARG)  yyparse (void)
      YYPARSE_PARAM_DECL  #else
 {  int
   /* If reentrant, generate the variables here. */  yyparse ()
 #if YYPURE  
   YY_DECL_VARIABLES  
 #endif  /* !YYPURE */  
   
   #endif
   #endif
   {
   
   register int yystate;    register int yystate;
   register int yyn;    register int yyn;
   int yyresult;    int yyresult;
   /* Number of tokens to shift before error messages enabled.  */    /* Number of tokens to shift before error messages enabled.  */
   int yyerrstatus;    int yyerrstatus;
   /* Lookahead token as an internal (translated) token number.  */    /* Lookahead token as an internal (translated) token number.  */
   int yychar1 = 0;    int yytoken = 0;
   
   /* Three stacks and their tools:    /* Three stacks and their tools:
      `yyss': related to states,       `yyss': related to states,
Line 1026  yyparse (YYPARSE_PARAM_ARG)
Line 1313  yyparse (YYPARSE_PARAM_ARG)
      Refer to the stacks thru separate pointers, to allow yyoverflow       Refer to the stacks thru separate pointers, to allow yyoverflow
      to reallocate them elsewhere.  */       to reallocate them elsewhere.  */
   
   /* The state stack. */    /* The state stack.  */
   short yyssa[YYINITDEPTH];    short yyssa[YYINITDEPTH];
   short *yyss = yyssa;    short *yyss = yyssa;
   register short *yyssp;    register short *yyssp;
Line 1036  yyparse (YYPARSE_PARAM_ARG)
Line 1323  yyparse (YYPARSE_PARAM_ARG)
   YYSTYPE *yyvs = yyvsa;    YYSTYPE *yyvs = yyvsa;
   register YYSTYPE *yyvsp;    register YYSTYPE *yyvsp;
   
 #if YYLSP_NEEDED  
   /* The location stack.  */  
   YYLTYPE yylsa[YYINITDEPTH];  
   YYLTYPE *yyls = yylsa;  
   YYLTYPE *yylsp;  
 #endif  
   
 #if YYLSP_NEEDED  
 # define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)  
 #else  
 # define YYPOPSTACK   (yyvsp--, yyssp--)  
 #endif  
   
   #define YYPOPSTACK   (yyvsp--, yyssp--)
   
   YYSIZE_T yystacksize = YYINITDEPTH;    YYSIZE_T yystacksize = YYINITDEPTH;
   
   
   /* The variables used to return semantic value and location from the    /* The variables used to return semantic value and location from the
      action routines.  */       action routines.  */
   YYSTYPE yyval;    YYSTYPE yyval;
 #if YYLSP_NEEDED  
   YYLTYPE yyloc;  
 #endif  
   
   
   /* When reducing, the number of symbols on the RHS of the reduced    /* When reducing, the number of symbols on the RHS of the reduced
      rule. */       rule.  */
   int yylen;    int yylen;
   
   YYDPRINTF ((stderr, "Starting parse\n"));    YYDPRINTF ((stderr, "Starting parse\n"));
Line 1077  yyparse (YYPARSE_PARAM_ARG)
Line 1352  yyparse (YYPARSE_PARAM_ARG)
   
   yyssp = yyss;    yyssp = yyss;
   yyvsp = yyvs;    yyvsp = yyvs;
 #if YYLSP_NEEDED  
   yylsp = yyls;  
 #endif  
   goto yysetstate;    goto yysetstate;
   
 /*------------------------------------------------------------.  /*------------------------------------------------------------.
Line 1094  yyparse (YYPARSE_PARAM_ARG)
Line 1367  yyparse (YYPARSE_PARAM_ARG)
  yysetstate:   yysetstate:
   *yyssp = yystate;    *yyssp = yystate;
   
   if (yyssp >= yyss + yystacksize - 1)    if (yyss + yystacksize - 1 <= yyssp)
     {      {
       /* Get the current used size of the three stacks, in elements.  */        /* Get the current used size of the three stacks, in elements.  */
       YYSIZE_T yysize = yyssp - yyss + 1;        YYSIZE_T yysize = yyssp - yyss + 1;
Line 1107  yyparse (YYPARSE_PARAM_ARG)
Line 1380  yyparse (YYPARSE_PARAM_ARG)
         YYSTYPE *yyvs1 = yyvs;          YYSTYPE *yyvs1 = yyvs;
         short *yyss1 = yyss;          short *yyss1 = yyss;
   
   
         /* Each stack pointer address is followed by the size of the          /* Each stack pointer address is followed by the size of the
            data in use in that stack, in bytes.  */             data in use in that stack, in bytes.  This used to be a
 # if YYLSP_NEEDED             conditional around just the two extra args, but that might
         YYLTYPE *yyls1 = yyls;             be undefined if yyoverflow is a macro.  */
         /* This used to be a conditional around just the two extra args,  
            but that might be undefined if yyoverflow is a macro.  */  
         yyoverflow ("parser stack overflow",          yyoverflow ("parser stack overflow",
                     &yyss1, yysize * sizeof (*yyssp),                      &yyss1, yysize * sizeof (*yyssp),
                     &yyvs1, yysize * sizeof (*yyvsp),                      &yyvs1, yysize * sizeof (*yyvsp),
                     &yyls1, yysize * sizeof (*yylsp),  
                     &yystacksize);                      &yystacksize);
         yyls = yyls1;  
 # else  
         yyoverflow ("parser stack overflow",  
                     &yyss1, yysize * sizeof (*yyssp),  
                     &yyvs1, yysize * sizeof (*yyvsp),  
                     &yystacksize);  
 # endif  
         yyss = yyss1;          yyss = yyss1;
         yyvs = yyvs1;          yyvs = yyvs1;
       }        }
Line 1133  yyparse (YYPARSE_PARAM_ARG)
Line 1399  yyparse (YYPARSE_PARAM_ARG)
       goto yyoverflowlab;        goto yyoverflowlab;
 # else  # else
       /* Extend the stack our own way.  */        /* Extend the stack our own way.  */
       if (yystacksize >= YYMAXDEPTH)        if (YYMAXDEPTH <= yystacksize)
         goto yyoverflowlab;          goto yyoverflowlab;
       yystacksize *= 2;        yystacksize *= 2;
       if (yystacksize > YYMAXDEPTH)        if (YYMAXDEPTH < yystacksize)
         yystacksize = YYMAXDEPTH;          yystacksize = YYMAXDEPTH;
   
       {        {
Line 1147  yyparse (YYPARSE_PARAM_ARG)
Line 1413  yyparse (YYPARSE_PARAM_ARG)
           goto yyoverflowlab;            goto yyoverflowlab;
         YYSTACK_RELOCATE (yyss);          YYSTACK_RELOCATE (yyss);
         YYSTACK_RELOCATE (yyvs);          YYSTACK_RELOCATE (yyvs);
 # if YYLSP_NEEDED  
         YYSTACK_RELOCATE (yyls);  #  undef YYSTACK_RELOCATE
 # endif  
 # undef YYSTACK_RELOCATE  
         if (yyss1 != yyssa)          if (yyss1 != yyssa)
           YYSTACK_FREE (yyss1);            YYSTACK_FREE (yyss1);
       }        }
Line 1159  yyparse (YYPARSE_PARAM_ARG)
Line 1423  yyparse (YYPARSE_PARAM_ARG)
   
       yyssp = yyss + yysize - 1;        yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;        yyvsp = yyvs + yysize - 1;
 #if YYLSP_NEEDED  
       yylsp = yyls + yysize - 1;  
 #endif  
   
   
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                   (unsigned long int) yystacksize));                    (unsigned long int) yystacksize));
   
       if (yyssp >= yyss + yystacksize - 1)        if (yyss + yystacksize - 1 <= yyssp)
         YYABORT;          YYABORT;
     }      }
   
Line 1174  yyparse (YYPARSE_PARAM_ARG)
Line 1436  yyparse (YYPARSE_PARAM_ARG)
   
   goto yybackup;    goto yybackup;
   
   
 /*-----------.  /*-----------.
 | yybackup.  |  | yybackup.  |
 `-----------*/  `-----------*/
Line 1187  yybackup:
Line 1448  yybackup:
   /* First try to decide what to do without reference to lookahead token.  */    /* First try to decide what to do without reference to lookahead token.  */
   
   yyn = yypact[yystate];    yyn = yypact[yystate];
   if (yyn == YYFLAG)    if (yyn == YYPACT_NINF)
     goto yydefault;      goto yydefault;
   
   /* Not known => get a lookahead token if don't already have one.  */    /* Not known => get a lookahead token if don't already have one.  */
   
   /* yychar is either YYEMPTY or YYEOF    /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
      or a valid token in external form.  */  
   
   if (yychar == YYEMPTY)    if (yychar == YYEMPTY)
     {      {
       YYDPRINTF ((stderr, "Reading a token: "));        YYDPRINTF ((stderr, "Reading a token: "));
       yychar = YYLEX;        yychar = YYLEX;
     }      }
   
   /* Convert token to internal form (in yychar1) for indexing tables with */    if (yychar <= YYEOF)
   
   if (yychar <= 0)              /* This means end of input. */  
     {      {
       yychar1 = 0;        yychar = yytoken = YYEOF;
       yychar = YYEOF;           /* Don't call YYLEX any more */  
   
       YYDPRINTF ((stderr, "Now at end of input.\n"));        YYDPRINTF ((stderr, "Now at end of input.\n"));
     }      }
   else    else
     {      {
       yychar1 = YYTRANSLATE (yychar);        yytoken = YYTRANSLATE (yychar);
         YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
 #if YYDEBUG  
      /* We have to keep this `#if YYDEBUG', since we use variables  
         which are defined only if `YYDEBUG' is set.  */  
       if (yydebug)  
         {  
           YYFPRINTF (stderr, "Next token is %d (%s",  
                      yychar, yytname[yychar1]);  
           /* Give the individual parser a way to print the precise  
              meaning of a token, for further debugging info.  */  
 # ifdef YYPRINT  
           YYPRINT (stderr, yychar, yylval);  
 # endif  
           YYFPRINTF (stderr, ")\n");  
         }  
 #endif  
     }      }
   
   yyn += yychar1;    /* If the proper action on seeing token YYTOKEN is to reduce or to
   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)       detect an error, take that action.  */
     yyn += yytoken;
     if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
     goto yydefault;      goto yydefault;
   
   yyn = yytable[yyn];    yyn = yytable[yyn];
     if (yyn <= 0)
   /* yyn is what to do for this token type in this state.  
      Negative => reduce, -yyn is rule number.  
      Positive => shift, yyn is new state.  
        New state is final state => don't bother to shift,  
        just return success.  
      0, or most negative number => error.  */  
   
   if (yyn < 0)  
     {      {
       if (yyn == YYFLAG)        if (yyn == 0 || yyn == YYTABLE_NINF)
         goto yyerrlab;          goto yyerrlab;
       yyn = -yyn;        yyn = -yyn;
       goto yyreduce;        goto yyreduce;
     }      }
   else if (yyn == 0)  
     goto yyerrlab;  
   
   if (yyn == YYFINAL)    if (yyn == YYFINAL)
     YYACCEPT;      YYACCEPT;
   
   /* Shift the lookahead token.  */    /* Shift the lookahead token.  */
   YYDPRINTF ((stderr, "Shifting token %d (%s), ",    YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
               yychar, yytname[yychar1]));  
   
   /* Discard the token being shifted unless it is eof.  */    /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)    if (yychar != YYEOF)
     yychar = YYEMPTY;      yychar = YYEMPTY;
   
   *++yyvsp = yylval;    *++yyvsp = yylval;
 #if YYLSP_NEEDED  
   *++yylsp = yylloc;  
 #endif  
   
   
   /* Count tokens shifted since error; after three, turn off error    /* Count tokens shifted since error; after three, turn off error
      status.  */       status.  */
   if (yyerrstatus)    if (yyerrstatus)
Line 1299  yyreduce:
Line 1527  yyreduce:
   /* If YYLEN is nonzero, implement the default value of the action:    /* If YYLEN is nonzero, implement the default value of the action:
      `$$ = $1'.       `$$ = $1'.
   
      Otherwise, the following line sets YYVAL to the semantic value of       Otherwise, the following line sets YYVAL to garbage.
      the lookahead token.  This behavior is undocumented and Bison       This behavior is undocumented and Bison
      users should not rely upon it.  Assigning to YYVAL       users should not rely upon it.  Assigning to YYVAL
      unconditionally makes the parser a bit smaller, and it avoids a       unconditionally makes the parser a bit smaller, and it avoids a
      GCC warning that YYVAL may be used uninitialized.  */       GCC warning that YYVAL may be used uninitialized.  */
   yyval = yyvsp[1-yylen];    yyval = yyvsp[1-yylen];
   
 #if YYLSP_NEEDED  
   /* Similarly for the default location.  Let the user run additional  
      commands if for instance locations are ranges.  */  
   yyloc = yylsp[1-yylen];  
   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);  
 #endif  
   
 #if YYDEBUG    YY_REDUCE_PRINT (yyn);
   /* We have to keep this `#if YYDEBUG', since we use variables which    switch (yyn)
      are defined only if `YYDEBUG' is set.  */  
   if (yydebug)  
     {      {
       int yyi;          case 2:
   
       YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",  
                  yyn, yyrline[yyn]);  
   
       /* Print the symbols being reduced, and their result.  */  
       for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)  
         YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);  
       YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);  
     }  
 #endif  
   
   switch (yyn) {  
   
 case 1:  
 #line 131 "parse.y"  #line 131 "parse.y"
 {      {
                                 parse_snode = yyvsp[0].s;                                  parse_snode = yyvsp[0].s;
                                 if ( yychar >= 0 )                                  if ( yychar >= 0 )
                                         fprintf(stderr,                                          fprintf(stderr,
Line 1342  case 1:
Line 1548  case 1:
                                 YYACCEPT;                                  YYACCEPT;
                         }                          }
     break;      break;
 case 2:  
     case 3:
 #line 140 "parse.y"  #line 140 "parse.y"
 { yyval.s = 0; }      { yyval.s = 0; }
     break;      break;
 case 3:  
     case 4:
 #line 141 "parse.y"  #line 141 "parse.y"
 { gdef=1; }      { gdef=1; }
     break;      break;
 case 4:  
     case 5:
 #line 141 "parse.y"  #line 141 "parse.y"
 { gdef=0; }      { gdef=0; }
     break;      break;
 case 5:  
     case 6:
 #line 142 "parse.y"  #line 142 "parse.y"
 { yyval.s = 0; NOPR; }      { yyval.s = 0; NOPR; }
     break;      break;
 case 6:  
     case 7:
 #line 143 "parse.y"  #line 143 "parse.y"
 { mgdef=1; }      { mgdef=1; }
     break;      break;
 case 7:  
     case 8:
 #line 143 "parse.y"  #line 143 "parse.y"
 { mgdef=0; }      { mgdef=0; }
     break;      break;
 case 8:  
     case 9:
 #line 144 "parse.y"  #line 144 "parse.y"
 { yyval.s = 0; NOPR; }      { yyval.s = 0; NOPR; }
     break;      break;
 case 9:  
     case 10:
 #line 145 "parse.y"  #line 145 "parse.y"
 { ldef=1; }      { ldef=1; }
     break;      break;
 case 10:  
     case 11:
 #line 145 "parse.y"  #line 145 "parse.y"
 { ldef=0; }      { ldef=0; }
     break;      break;
 case 11:  
     case 12:
 #line 146 "parse.y"  #line 146 "parse.y"
 { yyval.s = 0; NOPR; }      { yyval.s = 0; NOPR; }
     break;      break;
 case 12:  
     case 13:
 #line 148 "parse.y"  #line 148 "parse.y"
 { appenduflist(yyvsp[-1].n); yyval.s = 0; NOPR; }      { appenduflist(yyvsp[-1].n); yyval.s = 0; NOPR; }
     break;      break;
 case 13:  
     case 14:
 #line 150 "parse.y"  #line 150 "parse.y"
 { structdef(yyvsp[-4].p,yyvsp[-2].n); yyval.s = 0; NOPR; }      { structdef(yyvsp[-4].p,yyvsp[-2].n); yyval.s = 0; NOPR; }
     break;      break;
 case 14:  
     case 15:
 #line 152 "parse.y"  #line 152 "parse.y"
 { yyval.s = mksnode(1,S_SINGLE,yyvsp[-1].f); }      { yyval.s = mksnode(1,S_SINGLE,yyvsp[-1].f); }
     break;      break;
 case 15:  
     case 16:
 #line 154 "parse.y"  #line 154 "parse.y"
 { yyval.s = yyvsp[0].s; }      { yyval.s = yyvsp[0].s; }
     break;      break;
 case 16:  
     case 17:
 #line 156 "parse.y"  #line 156 "parse.y"
 { yyval.s = mksnode(0,S_BREAK); }      { yyval.s = mksnode(0,S_BREAK); }
     break;      break;
 case 17:  
     case 18:
 #line 158 "parse.y"  #line 158 "parse.y"
 { yyval.s = mksnode(0,S_CONTINUE); }      { yyval.s = mksnode(0,S_CONTINUE); }
     break;      break;
 case 18:  
     case 19:
 #line 160 "parse.y"  #line 160 "parse.y"
 { yyval.s = mksnode(1,S_RETURN,0); }      { yyval.s = mksnode(1,S_RETURN,0); }
     break;      break;
 case 19:  
     case 20:
 #line 162 "parse.y"  #line 162 "parse.y"
 { yyval.s = mksnode(1,S_RETURN,yyvsp[-1].f); }      { yyval.s = mksnode(1,S_RETURN,yyvsp[-1].f); }
     break;      break;
 case 20:  
     case 21:
 #line 164 "parse.y"  #line 164 "parse.y"
 { 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; }      { 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; }
     break;      break;
 case 21:  
     case 22:
 #line 166 "parse.y"  #line 166 "parse.y"
 { 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; }      { 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; }
     break;      break;
 case 22:  
     case 23:
 #line 168 "parse.y"  #line 168 "parse.y"
 { 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; }      { 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; }
     break;      break;
 case 23:  
     case 24:
 #line 170 "parse.y"  #line 170 "parse.y"
 { 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; }      { 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; }
     break;      break;
 case 24:  
     case 25:
 #line 172 "parse.y"  #line 172 "parse.y"
 { yyval.s = mksnode(3,S_DO,yyvsp[-6].i,yyvsp[-5].s,yyvsp[-2].n); }      { yyval.s = mksnode(3,S_DO,yyvsp[-6].i,yyvsp[-5].s,yyvsp[-2].n); NOPR; }
     break;      break;
 case 25:  
     case 26:
 #line 174 "parse.y"  #line 174 "parse.y"
 { yyval.s = mksnode(3,S_PFDEF,yyvsp[-7].p,yyvsp[-5].n,yyvsp[-1].f); NOPR; }      { yyval.s = mksnode(3,S_PFDEF,yyvsp[-7].p,yyvsp[-5].n,yyvsp[-1].f); NOPR; }
     break;      break;
 case 26:  
     case 27:
 #line 176 "parse.y"  #line 176 "parse.y"
 { yyval.s = mksnode(3,S_PFDEF,yyvsp[-4].p,yyvsp[-2].n,0); NOPR; }      { yyval.s = mksnode(3,S_PFDEF,yyvsp[-4].p,yyvsp[-2].n,0); NOPR; }
     break;      break;
 case 27:  
     case 28:
 #line 177 "parse.y"  #line 177 "parse.y"
 { mkpvs(yyvsp[0].p); }      { mkpvs(yyvsp[0].p); }
     break;      break;
 case 28:  
     case 29:
 #line 177 "parse.y"  #line 177 "parse.y"
 { ldef = 1; }      { ldef = 1; }
     break;      break;
 case 29:  
     case 30:
 #line 177 "parse.y"  #line 177 "parse.y"
 { ldef = -1; }      { ldef = -1; }
     break;      break;
 case 30:  
     case 31:
 #line 178 "parse.y"  #line 178 "parse.y"
 {      {
                                 mkuf(yyvsp[-10].p,asir_infile->name,yyvsp[-6].n,                                  mkuf(yyvsp[-10].p,asir_infile->name,yyvsp[-6].n,
                                         mksnode(1,S_CPLX,yyvsp[-1].n),yyvsp[-11].i,asir_infile->ln,yyvsp[-3].p,CUR_MODULE);                                          mksnode(1,S_CPLX,yyvsp[-1].n),yyvsp[-11].i,asir_infile->ln,yyvsp[-3].p,CUR_MODULE);
                                 yyval.s = 0; NOPR;                                  yyval.s = 0; NOPR;
                         }                          }
     break;      break;
 case 31:  
     case 32:
 #line 184 "parse.y"  #line 184 "parse.y"
 { CUR_MODULE = mkmodule(yyvsp[-1].p); MPVS = CUR_MODULE->pvs; yyval.s = 0; NOPR; }      {
                                   CUR_MODULE = mkmodule(yyvsp[-1].p);
                                   MPVS = CUR_MODULE->pvs;
                                   yyval.s = mksnode(1,S_MODULE,CUR_MODULE); NOPR;
                           }
     break;      break;
 case 32:  
 #line 186 "parse.y"    case 33:
 { CUR_MODULE = 0; MPVS = 0; yyval.s = 0; NOPR; }  #line 190 "parse.y"
       { CUR_MODULE = 0; MPVS = 0; yyval.s = mksnode(1,S_MODULE,0); NOPR; }
     break;      break;
 case 33:  
 #line 188 "parse.y"    case 34:
 { yyerrok; yyval.s = 0; }  #line 192 "parse.y"
       { yyerrok; yyval.s = 0; }
     break;      break;
 case 34:  
 #line 191 "parse.y"    case 35:
 { if ( main_parser ) prresult = 1; }  #line 195 "parse.y"
       { if ( main_parser ) prresult = 1; }
     break;      break;
 case 35:  
 #line 193 "parse.y"    case 36:
 { if ( main_parser ) prresult = 0; }  #line 197 "parse.y"
       { if ( main_parser ) prresult = 0; }
     break;      break;
 case 36:  
 #line 196 "parse.y"    case 37:
 { yyval.p = 0; }  #line 200 "parse.y"
       { yyval.p = 0; }
     break;      break;
 case 37:  
 #line 198 "parse.y"    case 38:
 { yyval.p = yyvsp[0].p; }  #line 202 "parse.y"
       { yyval.p = yyvsp[0].p; }
     break;      break;
 case 38:  
 #line 201 "parse.y"    case 39:
 { yyval.s = mksnode(1,S_CPLX,yyvsp[-1].n); }  #line 205 "parse.y"
       { yyval.s = mksnode(1,S_CPLX,yyvsp[-1].n); }
     break;      break;
 case 39:  
 #line 204 "parse.y"    case 40:
 { MKNODE(yyval.n,yyvsp[0].p,0); }  #line 208 "parse.y"
       { MKNODE(yyval.n,yyvsp[0].p,0); }
     break;      break;
 case 40:  
 #line 206 "parse.y"    case 41:
 { appendtonode(yyvsp[-2].n,yyvsp[0].p,&yyval.n); }  #line 210 "parse.y"
       { appendtonode(yyvsp[-2].n,yyvsp[0].p,&yyval.n); }
     break;      break;
 case 41:  
 #line 209 "parse.y"    case 42:
 { MKNODE(yyval.n,yyvsp[0].p,0); }  #line 213 "parse.y"
       { MKNODE(yyval.n,yyvsp[0].p,0); }
     break;      break;
 case 42:  
 #line 211 "parse.y"    case 43:
 { appendtonode(yyvsp[-2].n,yyvsp[0].p,&yyval.n); }  #line 215 "parse.y"
       { appendtonode(yyvsp[-2].n,yyvsp[0].p,&yyval.n); }
     break;      break;
 case 43:  
 #line 214 "parse.y"    case 44:
 { val = (pointer)makepvar(yyvsp[0].p); MKNODE(yyval.n,val,0); }  #line 218 "parse.y"
       { val = (pointer)makepvar(yyvsp[0].p); MKNODE(yyval.n,val,0); }
     break;      break;
 case 44:  
 #line 216 "parse.y"    case 45:
 { appendtonode(yyvsp[-2].n,(pointer)makepvar(yyvsp[0].p),&yyval.n); }  #line 220 "parse.y"
       { appendtonode(yyvsp[-2].n,(pointer)makepvar(yyvsp[0].p),&yyval.n); }
     break;      break;
 case 45:  
 #line 219 "parse.y"    case 46:
 { yyval.n = 0; }  #line 223 "parse.y"
       { yyval.n = 0; }
     break;      break;
 case 46:  
 #line 221 "parse.y"    case 47:
 { appendtonode(yyvsp[-1].n,(pointer)yyvsp[0].s,&yyval.n); }  #line 225 "parse.y"
       { appendtonode(yyvsp[-1].n,(pointer)yyvsp[0].s,&yyval.n); }
     break;      break;
 case 47:  
 #line 224 "parse.y"    case 48:
 { yyval.n = 0; }  #line 228 "parse.y"
       { yyval.n = 0; }
     break;      break;
 case 48:  
 #line 226 "parse.y"    case 49:
 { yyval.n = yyvsp[0].n; }  #line 230 "parse.y"
       { yyval.n = yyvsp[0].n; }
     break;      break;
 case 49:  
 #line 229 "parse.y"    case 50:
 { MKNODE(yyval.n,yyvsp[0].f,0); }  #line 233 "parse.y"
       { MKNODE(yyval.n,yyvsp[0].f,0); }
     break;      break;
 case 50:  
 #line 231 "parse.y"    case 51:
 { appendtonode(yyvsp[-2].n,(pointer)yyvsp[0].f,&yyval.n); }  #line 235 "parse.y"
       { appendtonode(yyvsp[-2].n,(pointer)yyvsp[0].f,&yyval.n); }
     break;      break;
 case 51:  
 #line 234 "parse.y"    case 52:
 { MKNODE(yyval.n,yyvsp[0].f,0); }  #line 238 "parse.y"
       { MKNODE(yyval.n,yyvsp[0].f,0); }
     break;      break;
 case 52:  
 #line 236 "parse.y"    case 53:
 { appendtonode(yyvsp[-2].n,(pointer)yyvsp[0].f,&yyval.n); }  #line 240 "parse.y"
       { appendtonode(yyvsp[-2].n,(pointer)yyvsp[0].f,&yyval.n); }
     break;      break;
 case 53:  
 #line 239 "parse.y"    case 54:
 { yyval.p = yyvsp[0].p; }  #line 243 "parse.y"
       { yyval.p = yyvsp[0].p; }
     break;      break;
 case 54:  
 #line 241 "parse.y"    case 55:
 { yyval.p = yyvsp[0].p; }  #line 245 "parse.y"
       { yyval.p = yyvsp[0].p; }
     break;      break;
 case 55:  
 #line 244 "parse.y"    case 56:
 { yyval.f = mkfnode(2,I_OPT,yyvsp[-2].p,yyvsp[0].f); }  #line 248 "parse.y"
       { yyval.f = mkfnode(2,I_OPT,yyvsp[-2].p,yyvsp[0].f); }
     break;      break;
 case 56:  
 #line 247 "parse.y"    case 57:
 { yyval.f = mkfnode(1,I_STR,yyvsp[0].p); }  
     break;  
 case 57:  
 #line 249 "parse.y"  
 { yyval.f = mkfnode(1,I_FORMULA,yyvsp[0].p); }  
     break;  
 case 58:  
 #line 251 "parse.y"  #line 251 "parse.y"
 { yyval.f = mkfnode(1,I_ANS,yyvsp[0].i); }      { yyval.f = mkfnode(1,I_STR,yyvsp[0].p); }
     break;      break;
 case 59:  
     case 58:
 #line 253 "parse.y"  #line 253 "parse.y"
 { yyval.f = mkfnode(0,I_GF2NGEN); }      { yyval.f = mkfnode(1,I_FORMULA,yyvsp[0].p); }
     break;      break;
 case 60:  
     case 59:
 #line 255 "parse.y"  #line 255 "parse.y"
 { yyval.f = mkfnode(0,I_GFPNGEN); }      { yyval.f = mkfnode(1,I_ANS,yyvsp[0].i); }
     break;      break;
 case 61:  
     case 60:
 #line 257 "parse.y"  #line 257 "parse.y"
 { yyval.f = mkfnode(0,I_GFSNGEN); }      { yyval.f = mkfnode(0,I_GF2NGEN); }
     break;      break;
 case 62:  
     case 61:
 #line 259 "parse.y"  #line 259 "parse.y"
 {      { yyval.f = mkfnode(0,I_GFPNGEN); }
       break;
   
     case 62:
   #line 261 "parse.y"
       { yyval.f = mkfnode(0,I_GFSNGEN); }
       break;
   
     case 63:
   #line 263 "parse.y"
       {
                                 FUNC f;                                  FUNC f;
   
                                 searchf(noargsysf,yyvsp[0].p,&f);                                  searchf(noargsysf,yyvsp[0].p,&f);
Line 1609  case 62:
Line 1880  case 62:
                                 }                                  }
                         }                          }
     break;      break;
 case 63:  
 #line 280 "parse.y"    case 64:
 {  #line 284 "parse.y"
       {
                                 gen_searchf(yyvsp[-3].p,(FUNC *)&val);                                  gen_searchf(yyvsp[-3].p,(FUNC *)&val);
                                 print_crossref(val);                                  print_crossref(val);
                                 yyval.f = mkfnode(2,I_FUNC,val,mkfnode(1,I_LIST,yyvsp[-1].n));                                  yyval.f = mkfnode(2,I_FUNC,val,mkfnode(1,I_LIST,yyvsp[-1].n));
                         }                          }
     break;      break;
 case 64:  
 #line 287 "parse.y"    case 65:
 {  #line 291 "parse.y"
       {
                                 gen_searchf(yyvsp[-5].p,(FUNC *)&val);                                  gen_searchf(yyvsp[-5].p,(FUNC *)&val);
                                 print_crossref(val);                                  print_crossref(val);
                                 yyval.f = mkfnode(3,I_FUNC_OPT,val,                                  yyval.f = mkfnode(3,I_FUNC_OPT,val,
                                         mkfnode(1,I_LIST,yyvsp[-3].n),mkfnode(1,I_LIST,yyvsp[-1].n));                                          mkfnode(1,I_LIST,yyvsp[-3].n),mkfnode(1,I_LIST,yyvsp[-1].n));
                         }                          }
     break;      break;
 case 65:  
 #line 294 "parse.y"    case 66:
 {  #line 298 "parse.y"
       {
                                 gen_searchf(yyvsp[-3].p,(FUNC *)&val);                                  gen_searchf(yyvsp[-3].p,(FUNC *)&val);
                                 print_crossref(val);                                  print_crossref(val);
                                 yyval.f = mkfnode(2,I_MAP,val,mkfnode(1,I_LIST,yyvsp[-1].n));                                  yyval.f = mkfnode(2,I_MAP,val,mkfnode(1,I_LIST,yyvsp[-1].n));
                         }                          }
     break;      break;
 case 66:  
 #line 300 "parse.y"    case 67:
 {  #line 304 "parse.y"
       {
                                 gen_searchf(yyvsp[-3].p,(FUNC *)&val);                                  gen_searchf(yyvsp[-3].p,(FUNC *)&val);
                                 print_crossref(val);                                  print_crossref(val);
                                 yyval.f = mkfnode(2,I_RECMAP,val,mkfnode(1,I_LIST,yyvsp[-1].n));                                  yyval.f = mkfnode(2,I_RECMAP,val,mkfnode(1,I_LIST,yyvsp[-1].n));
                         }                          }
     break;      break;
 case 67:  
 #line 306 "parse.y"    case 68:
 {  #line 310 "parse.y"
       {
                                 searchpf(yyvsp[-6].p,(FUNC *)&val);                                  searchpf(yyvsp[-6].p,(FUNC *)&val);
                                 yyval.f = mkfnode(2,I_PFDERIV,val,mkfnode(1,I_LIST,yyvsp[-1].n),mkfnode(1,I_LIST,yyvsp[-4].n));                                  yyval.f = mkfnode(3,I_PFDERIV,val,mkfnode(1,I_LIST,yyvsp[-1].n),mkfnode(1,I_LIST,yyvsp[-4].n));
                         }                          }
     break;      break;
 case 68:  
 #line 311 "parse.y"    case 69:
 {  #line 315 "parse.y"
       {
                                 yyval.f = mkfnode(2,I_GETOPT,yyvsp[-1].p);                                  yyval.f = mkfnode(2,I_GETOPT,yyvsp[-1].p);
                         }                          }
     break;      break;
 case 69:  
 #line 315 "parse.y"    case 70:
 {  #line 319 "parse.y"
       {
                                 yyval.f = mkfnode(2,I_GETOPT,0);                                  yyval.f = mkfnode(2,I_GETOPT,0);
                         }                          }
     break;      break;
 case 70:  
 #line 319 "parse.y"    case 71:
 {  #line 323 "parse.y"
       {
                                 yyval.f = mkfnode(3,I_TIMER,yyvsp[-5].f,yyvsp[-3].f,yyvsp[-1].f);                                  yyval.f = mkfnode(3,I_TIMER,yyvsp[-5].f,yyvsp[-3].f,yyvsp[-1].f);
                         }                          }
     break;      break;
 case 71:  
 #line 323 "parse.y"    case 72:
 {  #line 327 "parse.y"
       {
                                 searchf(parif,yyvsp[-1].p,(FUNC *)&val);                                  searchf(parif,yyvsp[-1].p,(FUNC *)&val);
                                 if ( !val )                                  if ( !val )
                                         mkparif(yyvsp[-1].p,(FUNC *)&val);                                          mkparif(yyvsp[-1].p,(FUNC *)&val);
                                 yyval.f = mkfnode(2,I_FUNC,val,0);                                  yyval.f = mkfnode(2,I_FUNC,val,0);
                         }                          }
     break;      break;
 case 72:  
 #line 330 "parse.y"    case 73:
 {  #line 334 "parse.y"
       {
                                 searchf(parif,yyvsp[-3].p,(FUNC *)&val);                                  searchf(parif,yyvsp[-3].p,(FUNC *)&val);
                                 if ( !val )                                  if ( !val )
                                         mkparif(yyvsp[-3].p,(FUNC *)&val);                                          mkparif(yyvsp[-3].p,(FUNC *)&val);
                                 yyval.f = mkfnode(2,I_FUNC,val,mkfnode(1,I_LIST,yyvsp[-1].n));                                  yyval.f = mkfnode(2,I_FUNC,val,mkfnode(1,I_LIST,yyvsp[-1].n));
                         }                          }
     break;      break;
 case 73:  
 #line 337 "parse.y"    case 74:
 {  #line 341 "parse.y"
       {
                                 yyval.f = mkfnode(2,I_IFUNC,yyvsp[-4].f,mkfnode(1,I_LIST,yyvsp[-1].n));                                  yyval.f = mkfnode(2,I_IFUNC,yyvsp[-4].f,mkfnode(1,I_LIST,yyvsp[-1].n));
                         }                          }
     break;      break;
 case 74:  
 #line 341 "parse.y"    case 75:
 { yyval.f = mkfnode(1,I_CAR,yyvsp[-1].f); }  #line 345 "parse.y"
       {
                                   if ( main_parser || allow_create_var )
                                           t = mkfnode(2,I_PVAR,makepvar(yyvsp[-3].p),0);
                                   else {
                                           ind = searchpvar(yyvsp[-3].p);
                                           if ( ind == -1 ) {
                                                   fprintf(stderr,"%s : no such variable.\n",yyvsp[-3].p);
                                                   YYABORT;
                                           } else
                                                   t = mkfnode(2,I_PVAR,ind,0);
                                   }
                                   yyval.f = mkfnode(2,I_IFUNC,t,mkfnode(1,I_LIST,yyvsp[-1].n));
                           }
     break;      break;
 case 75:  
 #line 343 "parse.y"    case 76:
 { yyval.f = mkfnode(1,I_CDR,yyvsp[-1].f); }  #line 359 "parse.y"
       { yyval.f = mkfnode(1,I_CAR,yyvsp[-1].f); }
     break;      break;
 case 76:  
 #line 345 "parse.y"    case 77:
 { yyval.f = mkfnode(1,I_PAREN,yyvsp[-1].f); }  #line 361 "parse.y"
       { yyval.f = mkfnode(1,I_CDR,yyvsp[-1].f); }
     break;      break;
 case 77:  
 #line 347 "parse.y"    case 78:
 {  #line 363 "parse.y"
       { yyval.f = mkfnode(1,I_PAREN,yyvsp[-1].f); }
       break;
   
     case 79:
   #line 365 "parse.y"
       {
                                 if ( main_parser || allow_create_var )                                  if ( main_parser || allow_create_var )
                                         yyval.f = mkfnode(2,I_PVAR,makepvar(yyvsp[0].p),0);                                          yyval.f = mkfnode(2,I_PVAR,makepvar(yyvsp[0].p),0);
                                 else {                                  else {
Line 1718  case 77:
Line 2021  case 77:
                                 }                                  }
                         }                          }
     break;      break;
 case 78:  
 #line 360 "parse.y"    case 80:
 {  #line 378 "parse.y"
       {
                                 if ( yyvsp[-3].f->id == I_PVAR || yyvsp[-3].f->id == I_INDEX ) {                                  if ( yyvsp[-3].f->id == I_PVAR || yyvsp[-3].f->id == I_INDEX ) {
                                         appendtonode((NODE)yyvsp[-3].f->arg[1],(pointer)yyvsp[-1].f,&a);                                          appendtonode((NODE)yyvsp[-3].f->arg[1],(pointer)yyvsp[-1].f,&a);
                                         yyvsp[-3].f->arg[1] = (pointer)a; yyval.f = yyvsp[-3].f;                                          yyvsp[-3].f->arg[1] = (pointer)a; yyval.f = yyvsp[-3].f;
Line 1730  case 78:
Line 2034  case 78:
                                 }                                  }
                         }                          }
     break;      break;
 case 79:  
 #line 370 "parse.y"    case 81:
 { yyval.f = mkfnode(2,I_POINT,yyvsp[-2].f,yyvsp[0].p); }  #line 388 "parse.y"
       { yyval.f = mkfnode(2,I_POINT,yyvsp[-2].f,yyvsp[0].p); }
     break;      break;
 case 80:  
 #line 373 "parse.y"    case 82:
 { yyval.f = yyvsp[0].f; }  
     break;  
 case 81:  
 #line 375 "parse.y"  
 { yyval.f = mkfnode(3,I_CAST,structtoindex(yyvsp[-2].p),yyvsp[0].f,0); }  
     break;  
 case 82:  
 #line 377 "parse.y"  
 { yyval.f = mkfnode(2,I_ASSPVAR,yyvsp[-2].f,yyvsp[0].f); }  
     break;  
 case 83:  
 #line 379 "parse.y"  
 { yyval.f = mkfnode(2,I_ASSPVAR,yyvsp[-2].f,mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f)); }  
     break;  
 case 84:  
 #line 381 "parse.y"  
 { yyval.f = mkfnode(2,I_POSTSELF,yyvsp[0].p,yyvsp[-1].f); }  
     break;  
 case 85:  
 #line 383 "parse.y"  
 { yyval.f = mkfnode(2,I_PRESELF,yyvsp[-1].p,yyvsp[0].f); }  
     break;  
 case 86:  
 #line 385 "parse.y"  
 { yyval.f = mkfnode(1,I_LIST,yyvsp[-1].n); }  
     break;  
 case 87:  
 #line 387 "parse.y"  
 { yyval.f = yyvsp[0].f; }  
     break;  
 case 88:  
 #line 389 "parse.y"  
 { yyval.f = mkfnode(1,I_MINUS,yyvsp[0].f); }  
     break;  
 case 89:  
 #line 391 "parse.y"  #line 391 "parse.y"
 { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }      { yyval.f = yyvsp[0].f; }
     break;      break;
 case 90:  
     case 83:
 #line 393 "parse.y"  #line 393 "parse.y"
 { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }      { yyval.f = mkfnode(3,I_CAST,structtoindex(yyvsp[-2].p),yyvsp[0].f,0); }
     break;      break;
 case 91:  
     case 84:
 #line 395 "parse.y"  #line 395 "parse.y"
 { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }      { yyval.f = mkfnode(2,I_ASSPVAR,yyvsp[-2].f,yyvsp[0].f); }
     break;      break;
 case 92:  
     case 85:
 #line 397 "parse.y"  #line 397 "parse.y"
 { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }      { yyval.f = mkfnode(2,I_ASSPVAR,yyvsp[-2].f,mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f)); }
     break;      break;
 case 93:  
     case 86:
 #line 399 "parse.y"  #line 399 "parse.y"
 { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }      { yyval.f = mkfnode(2,I_POSTSELF,yyvsp[0].p,yyvsp[-1].f); }
     break;      break;
 case 94:  
     case 87:
 #line 401 "parse.y"  #line 401 "parse.y"
 { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }      { yyval.f = mkfnode(2,I_PRESELF,yyvsp[-1].p,yyvsp[0].f); }
     break;      break;
 case 95:  
     case 88:
 #line 403 "parse.y"  #line 403 "parse.y"
 { yyval.f = mkfnode(3,I_COP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }      { yyval.f = mkfnode(1,I_LIST,yyvsp[-1].n); }
     break;      break;
 case 96:  
     case 89:
 #line 405 "parse.y"  #line 405 "parse.y"
 { yyval.f = mkfnode(1,I_NOT,yyvsp[0].f); }      { yyval.f = yyvsp[0].f; }
     break;      break;
 case 97:  
     case 90:
 #line 407 "parse.y"  #line 407 "parse.y"
 { yyval.f = mkfnode(2,I_OR,yyvsp[-2].f,yyvsp[0].f); }      { yyval.f = mkfnode(1,I_MINUS,yyvsp[0].f); }
     break;      break;
 case 98:  
     case 91:
 #line 409 "parse.y"  #line 409 "parse.y"
 { yyval.f = mkfnode(2,I_AND,yyvsp[-2].f,yyvsp[0].f); }      { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
     break;      break;
 case 99:  
     case 92:
 #line 411 "parse.y"  #line 411 "parse.y"
 { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[0].f,0); }      { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
     break;      break;
 case 100:  
     case 93:
 #line 413 "parse.y"  #line 413 "parse.y"
 { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }      { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
     break;      break;
 case 101:  
     case 94:
 #line 415 "parse.y"  #line 415 "parse.y"
 { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }      { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
     break;      break;
 case 102:  
     case 95:
 #line 417 "parse.y"  #line 417 "parse.y"
 { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }      { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
     break;      break;
 case 103:  
     case 96:
 #line 419 "parse.y"  #line 419 "parse.y"
 { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }      { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
     break;      break;
 case 104:  
     case 97:
 #line 421 "parse.y"  #line 421 "parse.y"
 { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }      { yyval.f = mkfnode(3,I_COP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
     break;      break;
 case 105:  
     case 98:
 #line 423 "parse.y"  #line 423 "parse.y"
 { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }      { yyval.f = mkfnode(1,I_NOT,yyvsp[0].f); }
     break;      break;
 case 106:  
     case 99:
 #line 425 "parse.y"  #line 425 "parse.y"
 { yyval.f = mkfnode(3,I_CE,yyvsp[-4].f,yyvsp[-2].f,yyvsp[0].f); }      { yyval.f = mkfnode(2,I_OR,yyvsp[-2].f,yyvsp[0].f); }
     break;      break;
 case 107:  
     case 100:
 #line 427 "parse.y"  #line 427 "parse.y"
 { yyval.f = mkfnode(1,I_EV,yyvsp[-1].n); }      { yyval.f = mkfnode(2,I_AND,yyvsp[-2].f,yyvsp[0].f); }
     break;      break;
 case 108:  
     case 101:
 #line 429 "parse.y"  #line 429 "parse.y"
 { yyval.f = mkfnode(1,I_NEWCOMP,(int)structtoindex(yyvsp[-1].p)); }      { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[0].f,0); }
     break;      break;
 case 109:  
     case 102:
 #line 431 "parse.y"  #line 431 "parse.y"
 { MKQUOTE(quote,yyvsp[-1].f); yyval.f = mkfnode(1,I_FORMULA,(pointer)quote); }      { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
     break;      break;
 case 110:  
     case 103:
 #line 433 "parse.y"  #line 433 "parse.y"
 { MKQUOTE(quote,yyvsp[0].f); yyval.f = mkfnode(1,I_FORMULA,(pointer)quote); }      { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
     break;      break;
 }  
   
 #line 705 "/usr/share/bison/bison.simple"    case 104:
   #line 435 "parse.y"
       { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
       break;
   
     case 105:
   #line 437 "parse.y"
       { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
       break;
   
     case 106:
   #line 439 "parse.y"
       { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
       break;
   
     case 107:
   #line 441 "parse.y"
       { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
       break;
   
     case 108:
   #line 443 "parse.y"
       { yyval.f = mkfnode(3,I_CE,yyvsp[-4].f,yyvsp[-2].f,yyvsp[0].f); }
       break;
   
     case 109:
   #line 445 "parse.y"
       { yyval.f = mkfnode(1,I_EV,yyvsp[-1].n); }
       break;
   
     case 110:
   #line 447 "parse.y"
       { yyval.f = mkfnode(1,I_NEWCOMP,(int)structtoindex(yyvsp[-1].p)); }
       break;
   
     case 111:
   #line 449 "parse.y"
       { MKQUOTE(quote,yyvsp[-1].f); yyval.f = mkfnode(1,I_FORMULA,(pointer)quote); }
       break;
   
     case 112:
   #line 451 "parse.y"
       { yyval.f = mkfnode(2,I_CONS,yyvsp[-3].n,yyvsp[-1].f); }
       break;
   
     case 113:
   #line 453 "parse.y"
       { MKQUOTE(quote,yyvsp[0].f); yyval.f = mkfnode(1,I_FORMULA,(pointer)quote); }
       break;
   
   
       }
   
   /* Line 999 of yacc.c.  */
   #line 2208 "y.tab.c"
   
   yyvsp -= yylen;    yyvsp -= yylen;
   yyssp -= yylen;    yyssp -= yylen;
 #if YYLSP_NEEDED  
   yylsp -= yylen;  
 #endif  
   
 #if YYDEBUG  
   if (yydebug)  
     {  
       short *yyssp1 = yyss - 1;  
       YYFPRINTF (stderr, "state stack now");  
       while (yyssp1 != yyssp)  
         YYFPRINTF (stderr, " %d", *++yyssp1);  
       YYFPRINTF (stderr, "\n");  
     }  
 #endif  
   
     YY_STACK_PRINT (yyss, yyssp);
   
   *++yyvsp = yyval;    *++yyvsp = yyval;
 #if YYLSP_NEEDED  
   *++yylsp = yyloc;  
 #endif  
   
   
   /* Now `shift' the result of the reduction.  Determine what state    /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule       that goes to, based on the state we popped back to and the rule
      number reduced by.  */       number reduced by.  */
   
   yyn = yyr1[yyn];    yyn = yyr1[yyn];
   
   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;    yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)    if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
     yystate = yytable[yystate];      yystate = yytable[yystate];
   else    else
     yystate = yydefgoto[yyn - YYNTBASE];      yystate = yydefgoto[yyn - YYNTOKENS];
   
   goto yynewstate;    goto yynewstate;
   
Line 1908  yyerrlab:
Line 2238  yyerrlab:
   if (!yyerrstatus)    if (!yyerrstatus)
     {      {
       ++yynerrs;        ++yynerrs;
   #if YYERROR_VERBOSE
 #ifdef YYERROR_VERBOSE  
       yyn = yypact[yystate];        yyn = yypact[yystate];
   
       if (yyn > YYFLAG && yyn < YYLAST)        if (YYPACT_NINF < yyn && yyn < YYLAST)
         {          {
           YYSIZE_T yysize = 0;            YYSIZE_T yysize = 0;
             int yytype = YYTRANSLATE (yychar);
             const char* yyprefix;
           char *yymsg;            char *yymsg;
           int yyx, yycount;            int yyx;
   
           yycount = 0;  
           /* Start YYX at -YYN if negative to avoid negative indexes in            /* Start YYX at -YYN if negative to avoid negative indexes in
              YYCHECK.  */               YYCHECK.  */
           for (yyx = yyn < 0 ? -yyn : 0;            int yyxbegin = yyn < 0 ? -yyn : 0;
                yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)  
             if (yycheck[yyx + yyn] == yyx)            /* Stay within bounds of both yycheck and yytname.  */
               yysize += yystrlen (yytname[yyx]) + 15, yycount++;            int yychecklim = YYLAST - yyn;
           yysize += yystrlen ("parse error, unexpected ") + 1;            int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
           yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);            int yycount = 0;
   
             yyprefix = ", expecting ";
             for (yyx = yyxbegin; yyx < yyxend; ++yyx)
               if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
                 {
                   yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
                   yycount += 1;
                   if (yycount == 5)
                     {
                       yysize = 0;
                       break;
                     }
                 }
             yysize += (sizeof ("syntax error, unexpected ")
                        + yystrlen (yytname[yytype]));
           yymsg = (char *) YYSTACK_ALLOC (yysize);            yymsg = (char *) YYSTACK_ALLOC (yysize);
           if (yymsg != 0)            if (yymsg != 0)
             {              {
               char *yyp = yystpcpy (yymsg, "parse error, unexpected ");                char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
               yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);                yyp = yystpcpy (yyp, yytname[yytype]);
   
               if (yycount < 5)                if (yycount < 5)
                 {                  {
                   yycount = 0;                    yyprefix = ", expecting ";
                   for (yyx = yyn < 0 ? -yyn : 0;                    for (yyx = yyxbegin; yyx < yyxend; ++yyx)
                        yyx < (int) (sizeof (yytname) / sizeof (char *));                      if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
                        yyx++)  
                     if (yycheck[yyx + yyn] == yyx)  
                       {                        {
                         const char *yyq = ! yycount ? ", expecting " : " or ";                          yyp = yystpcpy (yyp, yyprefix);
                         yyp = yystpcpy (yyp, yyq);  
                         yyp = yystpcpy (yyp, yytname[yyx]);                          yyp = yystpcpy (yyp, yytname[yyx]);
                         yycount++;                          yyprefix = " or ";
                       }                        }
                 }                  }
               yyerror (yymsg);                yyerror (yymsg);
               YYSTACK_FREE (yymsg);                YYSTACK_FREE (yymsg);
             }              }
           else            else
             yyerror ("parse error; also virtual memory exhausted");              yyerror ("syntax error; also virtual memory exhausted");
         }          }
       else        else
 #endif /* defined (YYERROR_VERBOSE) */  #endif /* YYERROR_VERBOSE */
         yyerror ("parse error");          yyerror ("syntax error");
     }      }
   goto yyerrlab1;  
   
   
 /*--------------------------------------------------.  
 | yyerrlab1 -- error raised explicitly by an action |  
 `--------------------------------------------------*/  
 yyerrlab1:  
   if (yyerrstatus == 3)    if (yyerrstatus == 3)
     {      {
       /* If just tried and failed to reuse lookahead token after an        /* If just tried and failed to reuse lookahead token after an
          error, discard it.  */           error, discard it.  */
   
       /* return failure if at end of input */        /* Return failure if at end of input.  */
       if (yychar == YYEOF)        if (yychar == YYEOF)
         YYABORT;          {
       YYDPRINTF ((stderr, "Discarding token %d (%s).\n",            /* Pop the error token.  */
                   yychar, yytname[yychar1]));            YYPOPSTACK;
             /* Pop the rest of the stack.  */
             while (yyss < yyssp)
               {
                 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
                 yydestruct (yystos[*yyssp], yyvsp);
                 YYPOPSTACK;
               }
             YYABORT;
           }
   
         YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
         yydestruct (yytoken, &yylval);
       yychar = YYEMPTY;        yychar = YYEMPTY;
   
     }      }
   
   /* Else will try to reuse lookahead token after shifting the error    /* Else will try to reuse lookahead token after shifting the error
      token.  */       token.  */
     goto yyerrlab1;
   
   yyerrstatus = 3;              /* Each real token shifted decrements this */  
   
   goto yyerrhandle;  /*----------------------------------------------------.
   | yyerrlab1 -- error raised explicitly by an action.  |
   `----------------------------------------------------*/
   yyerrlab1:
     yyerrstatus = 3;      /* Each real token shifted decrements this.  */
   
     for (;;)
 /*-------------------------------------------------------------------.  
 | yyerrdefault -- current state does not do anything special for the |  
 | error token.                                                       |  
 `-------------------------------------------------------------------*/  
 yyerrdefault:  
 #if 0  
   /* This is wrong; only states that explicitly want error tokens  
      should shift them.  */  
   
   /* If its default is to accept any token, ok.  Otherwise pop it.  */  
   yyn = yydefact[yystate];  
   if (yyn)  
     goto yydefault;  
 #endif  
   
   
 /*---------------------------------------------------------------.  
 | yyerrpop -- pop the current state because it cannot handle the |  
 | error token                                                    |  
 `---------------------------------------------------------------*/  
 yyerrpop:  
   if (yyssp == yyss)  
     YYABORT;  
   yyvsp--;  
   yystate = *--yyssp;  
 #if YYLSP_NEEDED  
   yylsp--;  
 #endif  
   
 #if YYDEBUG  
   if (yydebug)  
     {      {
       short *yyssp1 = yyss - 1;        yyn = yypact[yystate];
       YYFPRINTF (stderr, "Error: state stack now");        if (yyn != YYPACT_NINF)
       while (yyssp1 != yyssp)          {
         YYFPRINTF (stderr, " %d", *++yyssp1);            yyn += YYTERROR;
       YYFPRINTF (stderr, "\n");            if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
     }              {
 #endif                yyn = yytable[yyn];
                 if (0 < yyn)
                   break;
               }
           }
   
 /*--------------.        /* Pop the current state because it cannot handle the error token.  */
 | yyerrhandle.  |        if (yyssp == yyss)
 `--------------*/          YYABORT;
 yyerrhandle:  
   yyn = yypact[yystate];  
   if (yyn == YYFLAG)  
     goto yyerrdefault;  
   
   yyn += YYTERROR;        YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)        yydestruct (yystos[yystate], yyvsp);
     goto yyerrdefault;        yyvsp--;
         yystate = *--yyssp;
   
   yyn = yytable[yyn];        YY_STACK_PRINT (yyss, yyssp);
   if (yyn < 0)  
     {  
       if (yyn == YYFLAG)  
         goto yyerrpop;  
       yyn = -yyn;  
       goto yyreduce;  
     }      }
   else if (yyn == 0)  
     goto yyerrpop;  
   
   if (yyn == YYFINAL)    if (yyn == YYFINAL)
     YYACCEPT;      YYACCEPT;
Line 2054  yyerrhandle:
Line 2371  yyerrhandle:
   YYDPRINTF ((stderr, "Shifting error token, "));    YYDPRINTF ((stderr, "Shifting error token, "));
   
   *++yyvsp = yylval;    *++yyvsp = yylval;
 #if YYLSP_NEEDED  
   *++yylsp = yylloc;  
 #endif  
   
   
   yystate = yyn;    yystate = yyn;
   goto yynewstate;    goto yynewstate;
   
Line 2076  yyabortlab:
Line 2391  yyabortlab:
   yyresult = 1;    yyresult = 1;
   goto yyreturn;    goto yyreturn;
   
 /*---------------------------------------------.  #ifndef yyoverflow
 | yyoverflowab -- parser overflow comes here.  |  /*----------------------------------------------.
 `---------------------------------------------*/  | yyoverflowlab -- parser overflow comes here.  |
   `----------------------------------------------*/
 yyoverflowlab:  yyoverflowlab:
   yyerror ("parser stack overflow");    yyerror ("parser stack overflow");
   yyresult = 2;    yyresult = 2;
   /* Fall through.  */    /* Fall through.  */
   #endif
   
 yyreturn:  yyreturn:
 #ifndef yyoverflow  #ifndef yyoverflow
Line 2091  yyreturn:
Line 2408  yyreturn:
 #endif  #endif
   return yyresult;    return yyresult;
 }  }
 #line 435 "parse.y"  
   
   #line 455 "parse.y"
   
   

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

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