The Machine Perception Toolbox

[Introduction]- [News]- [Download]- [Screenshots]- [Manual (pdf)]- [Forums]- [API Reference]- [Repository ]

 

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

jamgram.c

Go to the documentation of this file.
00001 /* A Bison parser, made by GNU Bison 1.875a.  */
00002 
00003 /* Skeleton parser for Yacc-like parsing with Bison,
00004    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
00005 
00006    This program is free software; you can redistribute it and/or modify
00007    it under the terms of the GNU General Public License as published by
00008    the Free Software Foundation; either version 2, or (at your option)
00009    any later version.
00010 
00011    This program is distributed in the hope that it will be useful,
00012    but WITHOUT ANY WARRANTY; without even the implied warranty of
00013    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014    GNU General Public License for more details.
00015 
00016    You should have received a copy of the GNU General Public License
00017    along with this program; if not, write to the Free Software
00018    Foundation, Inc., 59 Temple Place - Suite 330,
00019    Boston, MA 02111-1307, USA.  */
00020 
00021 /* As a special exception, when this file is copied by Bison into a
00022    Bison output file, you may use that output file without restriction.
00023    This special exception was added by the Free Software Foundation
00024    in version 1.24 of Bison.  */
00025 
00026 /* Written by Richard Stallman by simplifying the original so called
00027    ``semantic'' parser.  */
00028 
00029 /* All symbols defined below should begin with yy or YY, to avoid
00030    infringing on user name space.  This should be done even for local
00031    variables, as they might otherwise be expanded by user macros.
00032    There are some unavoidable exceptions within include files to
00033    define necessary library symbols; they are noted "INFRINGES ON
00034    USER NAME SPACE" below.  */
00035 
00036 /* Identify Bison output.  */
00037 #define YYBISON 1
00038 
00039 /* Skeleton name.  */
00040 #define YYSKELETON_NAME "yacc.c"
00041 
00042 /* Pure parsers.  */
00043 #define YYPURE 0
00044 
00045 /* Using locations.  */
00046 #define YYLSP_NEEDED 0
00047 
00048 
00049 
00050 /* Tokens.  */
00051 #ifndef YYTOKENTYPE
00052 # define YYTOKENTYPE
00053    /* Put the tokens into the symbol table, so that GDB and other debuggers
00054       know about them.  */
00055    enum yytokentype {
00056      _BANG_t = 258,
00057      _BANG_EQUALS_t = 259,
00058      _AMPER_t = 260,
00059      _AMPERAMPER_t = 261,
00060      _LPAREN_t = 262,
00061      _RPAREN_t = 263,
00062      _PLUS_EQUALS_t = 264,
00063      _COLON_t = 265,
00064      _SEMIC_t = 266,
00065      _LANGLE_t = 267,
00066      _LANGLE_EQUALS_t = 268,
00067      _EQUALS_t = 269,
00068      _RANGLE_t = 270,
00069      _RANGLE_EQUALS_t = 271,
00070      _QUESTION_EQUALS_t = 272,
00071      _LBRACKET_t = 273,
00072      _RBRACKET_t = 274,
00073      ACTIONS_t = 275,
00074      BIND_t = 276,
00075      CASE_t = 277,
00076      CLASS_t = 278,
00077      DEFAULT_t = 279,
00078      ELSE_t = 280,
00079      EXISTING_t = 281,
00080      FOR_t = 282,
00081      IF_t = 283,
00082      IGNORE_t = 284,
00083      IN_t = 285,
00084      INCLUDE_t = 286,
00085      LOCAL_t = 287,
00086      MODULE_t = 288,
00087      ON_t = 289,
00088      PIECEMEAL_t = 290,
00089      QUIETLY_t = 291,
00090      RETURN_t = 292,
00091      RULE_t = 293,
00092      SWITCH_t = 294,
00093      TOGETHER_t = 295,
00094      UPDATED_t = 296,
00095      WHILE_t = 297,
00096      _LBRACE_t = 298,
00097      _BAR_t = 299,
00098      _BARBAR_t = 300,
00099      _RBRACE_t = 301,
00100      ARG = 302,
00101      STRING = 303
00102    };
00103 #endif
00104 #define _BANG_t 258
00105 #define _BANG_EQUALS_t 259
00106 #define _AMPER_t 260
00107 #define _AMPERAMPER_t 261
00108 #define _LPAREN_t 262
00109 #define _RPAREN_t 263
00110 #define _PLUS_EQUALS_t 264
00111 #define _COLON_t 265
00112 #define _SEMIC_t 266
00113 #define _LANGLE_t 267
00114 #define _LANGLE_EQUALS_t 268
00115 #define _EQUALS_t 269
00116 #define _RANGLE_t 270
00117 #define _RANGLE_EQUALS_t 271
00118 #define _QUESTION_EQUALS_t 272
00119 #define _LBRACKET_t 273
00120 #define _RBRACKET_t 274
00121 #define ACTIONS_t 275
00122 #define BIND_t 276
00123 #define CASE_t 277
00124 #define CLASS_t 278
00125 #define DEFAULT_t 279
00126 #define ELSE_t 280
00127 #define EXISTING_t 281
00128 #define FOR_t 282
00129 #define IF_t 283
00130 #define IGNORE_t 284
00131 #define IN_t 285
00132 #define INCLUDE_t 286
00133 #define LOCAL_t 287
00134 #define MODULE_t 288
00135 #define ON_t 289
00136 #define PIECEMEAL_t 290
00137 #define QUIETLY_t 291
00138 #define RETURN_t 292
00139 #define RULE_t 293
00140 #define SWITCH_t 294
00141 #define TOGETHER_t 295
00142 #define UPDATED_t 296
00143 #define WHILE_t 297
00144 #define _LBRACE_t 298
00145 #define _BAR_t 299
00146 #define _BARBAR_t 300
00147 #define _RBRACE_t 301
00148 #define ARG 302
00149 #define STRING 303
00150 
00151 
00152 
00153 
00154 /* Copy the first part of user declarations.  */
00155 #line 98 "jamgram.y"
00156 
00157 #include "jam.h"
00158 
00159 #include "lists.h"
00160 #include "parse.h"
00161 #include "scan.h"
00162 #include "compile.h"
00163 #include "newstr.h"
00164 #include "rules.h"
00165 
00166 # define YYMAXDEPTH 10000       /* for OSF and other less endowed yaccs */
00167 
00168 # define F0 (LIST *(*)(PARSE *, FRAME *))0
00169 # define P0 (PARSE *)0
00170 # define S0 (char *)0
00171 
00172 # define pappend( l,r )         parse_make( compile_append,l,r,P0,S0,S0,0 )
00173 # define peval( c,l,r ) parse_make( compile_eval,l,r,P0,S0,S0,c )
00174 # define pfor( s,l,r,x )        parse_make( compile_foreach,l,r,P0,s,S0,x )
00175 # define pif( l,r,t )           parse_make( compile_if,l,r,t,S0,S0,0 )
00176 # define pincl( l )             parse_make( compile_include,l,P0,P0,S0,S0,0 )
00177 # define plist( s )             parse_make( compile_list,P0,P0,P0,s,S0,0 )
00178 # define plocal( l,r,t )        parse_make( compile_local,l,r,t,S0,S0,0 )
00179 # define pmodule( l,r )         parse_make( compile_module,l,r,P0,S0,S0,0 )
00180 # define pclass( l,r )          parse_make( compile_class,l,r,P0,S0,S0,0 )
00181 # define pnull()                parse_make( compile_null,P0,P0,P0,S0,S0,0 )
00182 # define pon( l,r )             parse_make( compile_on,l,r,P0,S0,S0,0 )
00183 # define prule( s,p )           parse_make( compile_rule,p,P0,P0,s,S0,0 )
00184 # define prules( l,r )          parse_make( compile_rules,l,r,P0,S0,S0,0 )
00185 # define pset( l,r,a )          parse_make( compile_set,l,r,P0,S0,S0,a )
00186 # define pset1( l,r,t,a )       parse_make( compile_settings,l,r,t,S0,S0,a )
00187 # define psetc( s,p,a,l )       parse_make( compile_setcomp,p,a,P0,s,S0,l )
00188 # define psete( s,l,s1,f )      parse_make( compile_setexec,l,P0,P0,s,s1,f )
00189 # define pswitch( l,r )         parse_make( compile_switch,l,r,P0,S0,S0,0 )
00190 # define pwhile( l,r )          parse_make( compile_while,l,r,P0,S0,S0,0 )
00191 
00192 # define pnode( l,r )           parse_make( F0,l,r,P0,S0,S0,0 )
00193 # define psnode( s,l )          parse_make( F0,l,P0,P0,s,S0,0 )
00194 
00195 
00196 
00197 /* Enabling traces.  */
00198 #ifndef YYDEBUG
00199 # define YYDEBUG 0
00200 #endif
00201 
00202 /* Enabling verbose error messages.  */
00203 #ifdef YYERROR_VERBOSE
00204 # undef YYERROR_VERBOSE
00205 # define YYERROR_VERBOSE 1
00206 #else
00207 # define YYERROR_VERBOSE 0
00208 #endif
00209 
00210 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
00211 typedef int YYSTYPE;
00212 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
00213 # define YYSTYPE_IS_DECLARED 1
00214 # define YYSTYPE_IS_TRIVIAL 1
00215 #endif
00216 
00217 
00218 
00219 /* Copy the second part of user declarations.  */
00220 
00221 
00222 /* Line 214 of yacc.c.  */
00223 #line 224 "y.tab.c"
00224 
00225 #if ! defined (yyoverflow) || YYERROR_VERBOSE
00226 
00227 /* The parser invokes alloca or malloc; define the necessary symbols.  */
00228 
00229 # if YYSTACK_USE_ALLOCA
00230 #  define YYSTACK_ALLOC alloca
00231 # else
00232 #  ifndef YYSTACK_USE_ALLOCA
00233 #   if defined (alloca) || defined (_ALLOCA_H)
00234 #    define YYSTACK_ALLOC alloca
00235 #   else
00236 #    ifdef __GNUC__
00237 #     define YYSTACK_ALLOC __builtin_alloca
00238 #    endif
00239 #   endif
00240 #  endif
00241 # endif
00242 
00243 # ifdef YYSTACK_ALLOC
00244    /* Pacify GCC's `empty if-body' warning. */
00245 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
00246 # else
00247 #  if defined (__STDC__) || defined (__cplusplus)
00248 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
00249 #   define YYSIZE_T size_t
00250 #  endif
00251 #  define YYSTACK_ALLOC malloc
00252 #  define YYSTACK_FREE free
00253 # endif
00254 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
00255 
00256 
00257 #if (! defined (yyoverflow) \
00258      && (! defined (__cplusplus) \
00259          || (YYSTYPE_IS_TRIVIAL)))
00260 
00261 /* A type that is properly aligned for any stack member.  */
00262 union yyalloc
00263 {
00264   short yyss;
00265   YYSTYPE yyvs;
00266   };
00267 
00268 /* The size of the maximum gap between one aligned stack and the next.  */
00269 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
00270 
00271 /* The size of an array large to enough to hold all stacks, each with
00272    N elements.  */
00273 # define YYSTACK_BYTES(N) \
00274      ((N) * (sizeof (short) + sizeof (YYSTYPE))                         \
00275       + YYSTACK_GAP_MAXIMUM)
00276 
00277 /* Copy COUNT objects from FROM to TO.  The source and destination do
00278    not overlap.  */
00279 # ifndef YYCOPY
00280 #  if 1 < __GNUC__
00281 #   define YYCOPY(To, From, Count) \
00282       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00283 #  else
00284 #   define YYCOPY(To, From, Count)              \
00285       do                                        \
00286         {                                       \
00287           register YYSIZE_T yyi;                \
00288           for (yyi = 0; yyi < (Count); yyi++)   \
00289             (To)[yyi] = (From)[yyi];            \
00290         }                                       \
00291       while (0)
00292 #  endif
00293 # endif
00294 
00295 /* Relocate STACK from its old location to the new one.  The
00296    local variables YYSIZE and YYSTACKSIZE give the old and new number of
00297    elements in the stack, and YYPTR gives the new location of the
00298    stack.  Advance YYPTR to a properly aligned location for the next
00299    stack.  */
00300 # define YYSTACK_RELOCATE(Stack)                                        \
00301     do                                                                  \
00302       {                                                                 \
00303         YYSIZE_T yynewbytes;                                            \
00304         YYCOPY (&yyptr->Stack, Stack, yysize);                          \
00305         Stack = &yyptr->Stack;                                          \
00306         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
00307         yyptr += yynewbytes / sizeof (*yyptr);                          \
00308       }                                                                 \
00309     while (0)
00310 
00311 #endif
00312 
00313 #if defined (__STDC__) || defined (__cplusplus)
00314    typedef signed char yysigned_char;
00315 #else
00316    typedef short yysigned_char;
00317 #endif
00318 
00319 /* YYFINAL -- State number of the termination state. */
00320 #define YYFINAL  43
00321 /* YYLAST -- Last index in YYTABLE.  */
00322 #define YYLAST   261
00323 
00324 /* YYNTOKENS -- Number of terminals. */
00325 #define YYNTOKENS  49
00326 /* YYNNTS -- Number of nonterminals. */
00327 #define YYNNTS  24
00328 /* YYNRULES -- Number of rules. */
00329 #define YYNRULES  75
00330 /* YYNRULES -- Number of states. */
00331 #define YYNSTATES  159
00332 
00333 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
00334 #define YYUNDEFTOK  2
00335 #define YYMAXUTOK   303
00336 
00337 #define YYTRANSLATE(YYX)                                                \
00338   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
00339 
00340 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
00341 static const unsigned char yytranslate[] =
00342 {
00343        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00344        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00345        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00346        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00347        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00348        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00349        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00350        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00351        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00352        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00353        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00354        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00355        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00356        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00357        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00358        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00359        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00360        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00361        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00362        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00363        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00364        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00365        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00366        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00367        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00368        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
00369        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
00370       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
00371       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
00372       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
00373       45,    46,    47,    48
00374 };
00375 
00376 #if YYDEBUG
00377 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
00378    YYRHS.  */
00379 static const unsigned char yyprhs[] =
00380 {
00381        0,     0,     3,     4,     6,     8,    10,    12,    15,    21,
00382       22,    25,    27,    31,    32,    34,    35,    39,    43,    47,
00383       52,    59,    63,    72,    78,    84,    90,    96,   102,   110,
00384      116,   120,   121,   122,   132,   134,   136,   138,   141,   143,
00385      147,   151,   155,   159,   163,   167,   171,   175,   179,   183,
00386      187,   190,   194,   195,   198,   203,   205,   209,   211,   212,
00387      215,   217,   218,   223,   226,   231,   236,   237,   240,   242,
00388      244,   246,   248,   250,   252,   253
00389 };
00390 
00391 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
00392 static const yysigned_char yyrhs[] =
00393 {
00394       50,     0,    -1,    -1,    52,    -1,    53,    -1,    52,    -1,
00395       57,    -1,    57,    52,    -1,    32,    65,    54,    11,    51,
00396       -1,    -1,    14,    65,    -1,    53,    -1,     7,    64,     8,
00397       -1,    -1,    32,    -1,    -1,    43,    51,    46,    -1,    31,
00398       65,    11,    -1,    47,    64,    11,    -1,    67,    60,    65,
00399       11,    -1,    67,    34,    65,    60,    65,    11,    -1,    37,
00400       65,    11,    -1,    27,    56,    47,    30,    65,    43,    51,
00401       46,    -1,    39,    65,    43,    62,    46,    -1,    28,    61,
00402       43,    51,    46,    -1,    33,    65,    43,    51,    46,    -1,
00403       23,    64,    43,    51,    46,    -1,    42,    61,    43,    51,
00404       46,    -1,    28,    61,    43,    51,    46,    25,    57,    -1,
00405       56,    38,    47,    55,    57,    -1,    34,    67,    57,    -1,
00406       -1,    -1,    20,    70,    47,    72,    43,    58,    48,    59,
00407       46,    -1,    14,    -1,     9,    -1,    17,    -1,    24,    14,
00408       -1,    67,    -1,    61,    14,    61,    -1,    61,     4,    61,
00409       -1,    61,    12,    61,    -1,    61,    13,    61,    -1,    61,
00410       15,    61,    -1,    61,    16,    61,    -1,    61,     5,    61,
00411       -1,    61,     6,    61,    -1,    61,    44,    61,    -1,    61,
00412       45,    61,    -1,    67,    30,    65,    -1,     3,    61,    -1,
00413        7,    61,     8,    -1,    -1,    63,    62,    -1,    22,    47,
00414       10,    51,    -1,    65,    -1,    65,    10,    64,    -1,    66,
00415       -1,    -1,    66,    67,    -1,    47,    -1,    -1,    18,    68,
00416       69,    19,    -1,    67,    64,    -1,    34,    67,    67,    64,
00417       -1,    34,    67,    37,    65,    -1,    -1,    70,    71,    -1,
00418       41,    -1,    40,    -1,    29,    -1,    36,    -1,    35,    -1,
00419       26,    -1,    -1,    21,    65,    -1
00420 };
00421 
00422 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
00423 static const unsigned short yyrline[] =
00424 {
00425        0,   141,   141,   143,   154,   156,   160,   162,   164,   169,
00426      172,   174,   178,   181,   184,   187,   190,   192,   194,   196,
00427      198,   200,   202,   204,   206,   208,   210,   212,   214,   216,
00428      218,   221,   223,   220,   232,   234,   236,   238,   245,   247,
00429      249,   251,   253,   255,   257,   259,   261,   263,   265,   267,
00430      269,   271,   283,   284,   288,   297,   299,   309,   314,   315,
00431      319,   321,   321,   330,   332,   334,   345,   346,   350,   352,
00432      354,   356,   358,   360,   370,   371
00433 };
00434 #endif
00435 
00436 #if YYDEBUG || YYERROR_VERBOSE
00437 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
00438    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
00439 static const char *const yytname[] =
00440 {
00441   "$end", "error", "$undefined", "_BANG_t", "_BANG_EQUALS_t", "_AMPER_t", 
00442   "_AMPERAMPER_t", "_LPAREN_t", "_RPAREN_t", "_PLUS_EQUALS_t", "_COLON_t", 
00443   "_SEMIC_t", "_LANGLE_t", "_LANGLE_EQUALS_t", "_EQUALS_t", "_RANGLE_t", 
00444   "_RANGLE_EQUALS_t", "_QUESTION_EQUALS_t", "_LBRACKET_t", "_RBRACKET_t", 
00445   "ACTIONS_t", "BIND_t", "CASE_t", "CLASS_t", "DEFAULT_t", "ELSE_t", 
00446   "EXISTING_t", "FOR_t", "IF_t", "IGNORE_t", "IN_t", "INCLUDE_t", 
00447   "LOCAL_t", "MODULE_t", "ON_t", "PIECEMEAL_t", "QUIETLY_t", "RETURN_t", 
00448   "RULE_t", "SWITCH_t", "TOGETHER_t", "UPDATED_t", "WHILE_t", "_LBRACE_t", 
00449   "_BAR_t", "_BARBAR_t", "_RBRACE_t", "ARG", "STRING", "$accept", "run", 
00450   "block", "rules", "null", "assign_list_opt", "arglist_opt", "local_opt", 
00451   "rule", "@1", "@2", "assign", "expr", "cases", "case", "lol", "list", 
00452   "listp", "arg", "@3", "func", "eflags", "eflag", "bindlist", 0
00453 };
00454 #endif
00455 
00456 # ifdef YYPRINT
00457 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
00458    token YYLEX-NUM.  */
00459 static const unsigned short yytoknum[] =
00460 {
00461        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
00462      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
00463      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
00464      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
00465      295,   296,   297,   298,   299,   300,   301,   302,   303
00466 };
00467 # endif
00468 
00469 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
00470 static const unsigned char yyr1[] =
00471 {
00472        0,    49,    50,    50,    51,    51,    52,    52,    52,    53,
00473       54,    54,    55,    55,    56,    56,    57,    57,    57,    57,
00474       57,    57,    57,    57,    57,    57,    57,    57,    57,    57,
00475       57,    58,    59,    57,    60,    60,    60,    60,    61,    61,
00476       61,    61,    61,    61,    61,    61,    61,    61,    61,    61,
00477       61,    61,    62,    62,    63,    64,    64,    65,    66,    66,
00478       67,    68,    67,    69,    69,    69,    70,    70,    71,    71,
00479       71,    71,    71,    71,    72,    72
00480 };
00481 
00482 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
00483 static const unsigned char yyr2[] =
00484 {
00485        0,     2,     0,     1,     1,     1,     1,     2,     5,     0,
00486        2,     1,     3,     0,     1,     0,     3,     3,     3,     4,
00487        6,     3,     8,     5,     5,     5,     5,     5,     7,     5,
00488        3,     0,     0,     9,     1,     1,     1,     2,     1,     3,
00489        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
00490        2,     3,     0,     2,     4,     1,     3,     1,     0,     2,
00491        1,     0,     4,     2,     4,     4,     0,     2,     1,     1,
00492        1,     1,     1,     1,     0,     2
00493 };
00494 
00495 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
00496    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
00497    means the default is an error.  */
00498 static const unsigned char yydefact[] =
00499 {
00500        2,    61,    66,    58,    15,     0,    58,    58,    58,     0,
00501       58,    58,     0,     9,    60,     0,     3,     0,     6,     0,
00502        0,     0,     0,    55,    57,    14,     0,     0,     0,    60,
00503        0,    38,     0,     9,     0,    15,     0,     0,     0,     0,
00504        5,     4,     0,     1,     0,     7,    35,    34,    36,     0,
00505       58,    58,     0,    58,     0,    73,    70,    72,    71,    69,
00506       68,    74,    67,     9,    58,    59,     0,    50,     0,     0,
00507        0,     0,     0,     0,     0,     0,     0,     9,     0,     0,
00508       58,    17,    58,    11,     0,     9,    30,    21,    52,     9,
00509       16,    18,    13,    37,     0,     0,     0,    63,    62,    58,
00510        0,     0,    56,    58,    51,    40,    45,    46,    41,    42,
00511       39,    43,    44,     0,    47,    48,    49,    10,     9,     0,
00512        0,     0,    52,     0,    58,    15,    58,    19,    58,    58,
00513       75,    31,    26,     0,    24,     8,    25,     0,    23,    53,
00514       27,     0,    29,     0,    65,    64,     0,     9,    15,     9,
00515       12,    20,    32,     0,    28,    54,     0,    22,    33
00516 };
00517 
00518 /* YYDEFGOTO[NTERM-NUM]. */
00519 static const short yydefgoto[] =
00520 {
00521       -1,    15,    39,    40,    41,    84,   125,    17,    18,   146,
00522      156,    51,    30,   121,   122,    22,    23,    24,    31,    20,
00523       54,    21,    62,   100
00524 };
00525 
00526 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
00527    STATE-NUM.  */
00528 #define YYPACT_NINF -48
00529 static const short yypact[] =
00530 {
00531      179,   -48,   -48,   -48,   -15,     7,   -48,   -16,   -48,     3,
00532      -48,   -48,     7,   179,     1,    27,   -48,    -9,   179,    19,
00533       -3,    33,   -11,    24,     3,   -48,   -10,     7,     7,   -48,
00534      138,     9,    30,    35,    13,   205,    53,    22,   151,    20,
00535      -48,   -48,    56,   -48,    23,   -48,   -48,   -48,   -48,    61,
00536      -48,   -48,     3,   -48,    62,   -48,   -48,   -48,   -48,   -48,
00537      -48,    58,   -48,   179,   -48,   -48,    52,   -48,   164,     7,
00538        7,     7,     7,     7,     7,     7,     7,   179,     7,     7,
00539      -48,   -48,   -48,   -48,    72,   179,   -48,   -48,    68,   179,
00540      -48,   -48,    85,   -48,    77,    73,     8,   -48,   -48,   -48,
00541       50,    57,   -48,   -48,   -48,    45,    93,    93,   -48,   -48,
00542       45,   -48,   -48,    64,   245,   245,   -48,   -48,   179,    66,
00543       67,    69,    68,    71,   -48,   205,   -48,   -48,   -48,   -48,
00544      -48,   -48,   -48,    70,    79,   -48,   -48,   109,   -48,   -48,
00545      -48,   112,   -48,   115,   -48,   -48,    75,   179,   205,   179,
00546      -48,   -48,   -48,    81,   -48,   -48,    82,   -48,   -48
00547 };
00548 
00549 /* YYPGOTO[NTERM-NUM].  */
00550 static const short yypgoto[] =
00551 {
00552      -48,   -48,   -47,     5,   104,   -48,   -48,   136,   -27,   -48,
00553      -48,    47,    60,    36,   -48,   -13,    -4,   -48,     0,   -48,
00554      -48,   -48,   -48,   -48
00555 };
00556 
00557 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
00558    positive, shift that token.  If negative, reduce the rule which
00559    number is the opposite.  If zero, do what YYDEFACT says.
00560    If YYTABLE_NINF, syntax error.  */
00561 #define YYTABLE_NINF -59
00562 static const short yytable[] =
00563 {
00564       19,    42,    32,    33,    34,    16,    36,    37,    86,    35,
00565       27,   -58,   -58,    19,    28,     1,   101,    25,    19,   -58,
00566       53,     1,   -14,    45,    65,     1,     1,    43,    46,    44,
00567      113,    52,    63,    47,    64,    19,    48,    66,   119,    80,
00568       97,    81,   123,    49,    29,   128,    94,    95,   -58,    82,
00569       29,   102,    96,    50,    29,    29,    85,    72,    73,    55,
00570       75,    76,    56,    19,    87,    88,    90,    91,    57,    58,
00571       92,   135,    38,    59,    60,    93,   116,    19,   117,    99,
00572       61,    98,   103,   118,   127,    19,    46,    67,    68,    19,
00573      120,    47,   124,   131,    48,   130,   129,    69,   142,   133,
00574      153,    49,   155,   132,   148,    72,    73,    74,    75,    76,
00575      134,   141,   136,   147,   137,   138,   145,   140,    19,   149,
00576      150,   154,   143,   152,   144,    19,   151,   157,   158,   105,
00577      106,   107,   108,   109,   110,   111,   112,    83,   114,   115,
00578       26,   126,    69,    70,    71,     0,     0,    19,    19,    19,
00579       72,    73,    74,    75,    76,    69,    70,    71,   139,     0,
00580        0,     0,     0,    72,    73,    74,    75,    76,    69,    70,
00581       71,     0,   104,     0,     0,     0,    72,    73,    74,    75,
00582       76,    77,    78,    79,     0,     0,     0,     0,     0,     0,
00583        0,     0,     0,     0,    89,    78,    79,     1,     0,     2,
00584        0,     0,     3,     0,     0,     0,     4,     5,    78,    79,
00585        6,     7,     8,     9,     0,     0,    10,   -15,    11,     0,
00586        0,    12,    13,     1,     0,     2,    14,     0,     3,     0,
00587        0,     0,     4,     5,     0,     0,     6,    25,     8,     9,
00588        0,     0,    10,     0,    11,     0,     0,    12,    13,    69,
00589       70,    71,    14,     0,     0,     0,     0,    72,    73,    74,
00590       75,    76
00591 };
00592 
00593 static const short yycheck[] =
00594 {
00595        0,    14,     6,     7,     8,     0,    10,    11,    35,     9,
00596        3,    10,    11,    13,     7,    18,    63,    32,    18,    18,
00597       20,    18,    38,    18,    24,    18,    18,     0,     9,    38,
00598       77,    34,    43,    14,    10,    35,    17,    47,    85,    30,
00599       53,    11,    89,    24,    47,    37,    50,    51,    47,    14,
00600       47,    64,    52,    34,    47,    47,    43,    12,    13,    26,
00601       15,    16,    29,    63,    11,    43,    46,    11,    35,    36,
00602       47,   118,    12,    40,    41,    14,    80,    77,    82,    21,
00603       47,    19,    30,    11,    11,    85,     9,    27,    28,    89,
00604       22,    14,     7,    43,    17,    99,    96,     4,   125,   103,
00605      147,    24,   149,    46,    25,    12,    13,    14,    15,    16,
00606       46,   124,    46,    43,    47,    46,   129,    46,   118,    10,
00607        8,   148,   126,    48,   128,   125,    11,    46,    46,    69,
00608       70,    71,    72,    73,    74,    75,    76,    33,    78,    79,
00609        4,    94,     4,     5,     6,    -1,    -1,   147,   148,   149,
00610       12,    13,    14,    15,    16,     4,     5,     6,   122,    -1,
00611       -1,    -1,    -1,    12,    13,    14,    15,    16,     4,     5,
00612        6,    -1,     8,    -1,    -1,    -1,    12,    13,    14,    15,
00613       16,    43,    44,    45,    -1,    -1,    -1,    -1,    -1,    -1,
00614       -1,    -1,    -1,    -1,    43,    44,    45,    18,    -1,    20,
00615       -1,    -1,    23,    -1,    -1,    -1,    27,    28,    44,    45,
00616       31,    32,    33,    34,    -1,    -1,    37,    38,    39,    -1,
00617       -1,    42,    43,    18,    -1,    20,    47,    -1,    23,    -1,
00618       -1,    -1,    27,    28,    -1,    -1,    31,    32,    33,    34,
00619       -1,    -1,    37,    -1,    39,    -1,    -1,    42,    43,     4,
00620        5,     6,    47,    -1,    -1,    -1,    -1,    12,    13,    14,
00621       15,    16
00622 };
00623 
00624 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
00625    symbol of state STATE-NUM.  */
00626 static const unsigned char yystos[] =
00627 {
00628        0,    18,    20,    23,    27,    28,    31,    32,    33,    34,
00629       37,    39,    42,    43,    47,    50,    52,    56,    57,    67,
00630       68,    70,    64,    65,    66,    32,    56,     3,     7,    47,
00631       61,    67,    65,    65,    65,    67,    65,    65,    61,    51,
00632       52,    53,    64,     0,    38,    52,     9,    14,    17,    24,
00633       34,    60,    34,    67,    69,    26,    29,    35,    36,    40,
00634       41,    47,    71,    43,    10,    67,    47,    61,    61,     4,
00635        5,     6,    12,    13,    14,    15,    16,    43,    44,    45,
00636       30,    11,    14,    53,    54,    43,    57,    11,    43,    43,
00637       46,    11,    47,    14,    65,    65,    67,    64,    19,    21,
00638       72,    51,    64,    30,     8,    61,    61,    61,    61,    61,
00639       61,    61,    61,    51,    61,    61,    65,    65,    11,    51,
00640       22,    62,    63,    51,     7,    55,    60,    11,    37,    67,
00641       65,    43,    46,    65,    46,    51,    46,    47,    46,    62,
00642       46,    64,    57,    65,    65,    64,    58,    43,    25,    10,
00643        8,    11,    48,    51,    57,    51,    59,    46,    46
00644 };
00645 
00646 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
00647 # define YYSIZE_T __SIZE_TYPE__
00648 #endif
00649 #if ! defined (YYSIZE_T) && defined (size_t)
00650 # define YYSIZE_T size_t
00651 #endif
00652 #if ! defined (YYSIZE_T)
00653 # if defined (__STDC__) || defined (__cplusplus)
00654 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
00655 #  define YYSIZE_T size_t
00656 # endif
00657 #endif
00658 #if ! defined (YYSIZE_T)
00659 # define YYSIZE_T unsigned int
00660 #endif
00661 
00662 #define yyerrok         (yyerrstatus = 0)
00663 #define yyclearin       (yychar = YYEMPTY)
00664 #define YYEMPTY         (-2)
00665 #define YYEOF           0
00666 
00667 #define YYACCEPT        goto yyacceptlab
00668 #define YYABORT         goto yyabortlab
00669 #define YYERROR         goto yyerrlab1
00670 
00671 
00672 /* Like YYERROR except do call yyerror.  This remains here temporarily
00673    to ease the transition to the new meaning of YYERROR, for GCC.
00674    Once GCC version 2 has supplanted version 1, this can go.  */
00675 
00676 #define YYFAIL          goto yyerrlab
00677 
00678 #define YYRECOVERING()  (!!yyerrstatus)
00679 
00680 #define YYBACKUP(Token, Value)                                  \
00681 do                                                              \
00682   if (yychar == YYEMPTY && yylen == 1)                          \
00683     {                                                           \
00684       yychar = (Token);                                         \
00685       yylval = (Value);                                         \
00686       yytoken = YYTRANSLATE (yychar);                           \
00687       YYPOPSTACK;                                               \
00688       goto yybackup;                                            \
00689     }                                                           \
00690   else                                                          \
00691     {                                                           \
00692       yyerror ("syntax error: cannot back up");\
00693       YYERROR;                                                  \
00694     }                                                           \
00695 while (0)
00696 
00697 #define YYTERROR        1
00698 #define YYERRCODE       256
00699 
00700 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
00701    are run).  */
00702 
00703 #ifndef YYLLOC_DEFAULT
00704 # define YYLLOC_DEFAULT(Current, Rhs, N)         \
00705   Current.first_line   = Rhs[1].first_line;      \
00706   Current.first_column = Rhs[1].first_column;    \
00707   Current.last_line    = Rhs[N].last_line;       \
00708   Current.last_column  = Rhs[N].last_column;
00709 #endif
00710 
00711 /* YYLEX -- calling `yylex' with the right arguments.  */
00712 
00713 #ifdef YYLEX_PARAM
00714 # define YYLEX yylex (YYLEX_PARAM)
00715 #else
00716 # define YYLEX yylex ()
00717 #endif
00718 
00719 /* Enable debugging if requested.  */
00720 #if YYDEBUG
00721 
00722 # ifndef YYFPRINTF
00723 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
00724 #  define YYFPRINTF fprintf
00725 # endif
00726 
00727 # define YYDPRINTF(Args)                        \
00728 do {                                            \
00729   if (yydebug)                                  \
00730     YYFPRINTF Args;                             \
00731 } while (0)
00732 
00733 # define YYDSYMPRINT(Args)                      \
00734 do {                                            \
00735   if (yydebug)                                  \
00736     yysymprint Args;                            \
00737 } while (0)
00738 
00739 # define YYDSYMPRINTF(Title, Token, Value, Location)            \
00740 do {                                                            \
00741   if (yydebug)                                                  \
00742     {                                                           \
00743       YYFPRINTF (stderr, "%s ", Title);                         \
00744       yysymprint (stderr,                                       \
00745                   Token, Value);        \
00746       YYFPRINTF (stderr, "\n");                                 \
00747     }                                                           \
00748 } while (0)
00749 
00750 /*------------------------------------------------------------------.
00751 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
00752 | TOP (cinluded).                                                   |
00753 `------------------------------------------------------------------*/
00754 
00755 #if defined (__STDC__) || defined (__cplusplus)
00756 static void
00757 yy_stack_print (short *bottom, short *top)
00758 #else
00759 static void
00760 yy_stack_print (bottom, top)
00761     short *bottom;
00762     short *top;
00763 #endif
00764 {
00765   YYFPRINTF (stderr, "Stack now");
00766   for (/* Nothing. */; bottom <= top; ++bottom)
00767     YYFPRINTF (stderr, " %d", *bottom);
00768   YYFPRINTF (stderr, "\n");
00769 }
00770 
00771 # define YY_STACK_PRINT(Bottom, Top)                            \
00772 do {                                                            \
00773   if (yydebug)                                                  \
00774     yy_stack_print ((Bottom), (Top));                           \
00775 } while (0)
00776 
00777 
00778 /*------------------------------------------------.
00779 | Report that the YYRULE is going to be reduced.  |
00780 `------------------------------------------------*/
00781 
00782 #if defined (__STDC__) || defined (__cplusplus)
00783 static void
00784 yy_reduce_print (int yyrule)
00785 #else
00786 static void
00787 yy_reduce_print (yyrule)
00788     int yyrule;
00789 #endif
00790 {
00791   int yyi;
00792   unsigned int yylineno = yyrline[yyrule];
00793   YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
00794              yyrule - 1, yylineno);
00795   /* Print the symbols being reduced, and their result.  */
00796   for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
00797     YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
00798   YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
00799 }
00800 
00801 # define YY_REDUCE_PRINT(Rule)          \
00802 do {                                    \
00803   if (yydebug)                          \
00804     yy_reduce_print (Rule);             \
00805 } while (0)
00806 
00807 /* Nonzero means print parse trace.  It is left uninitialized so that
00808    multiple parsers can coexist.  */
00809 int yydebug;
00810 #else /* !YYDEBUG */
00811 # define YYDPRINTF(Args)
00812 # define YYDSYMPRINT(Args)
00813 # define YYDSYMPRINTF(Title, Token, Value, Location)
00814 # define YY_STACK_PRINT(Bottom, Top)
00815 # define YY_REDUCE_PRINT(Rule)
00816 #endif /* !YYDEBUG */
00817 
00818 
00819 /* YYINITDEPTH -- initial size of the parser's stacks.  */
00820 #ifndef YYINITDEPTH
00821 # define YYINITDEPTH 200
00822 #endif
00823 
00824 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
00825    if the built-in stack extension method is used).
00826 
00827    Do not make this value too large; the results are undefined if
00828    SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
00829    evaluated with infinite-precision integer arithmetic.  */
00830 
00831 #if YYMAXDEPTH == 0
00832 # undef YYMAXDEPTH
00833 #endif
00834 
00835 #ifndef YYMAXDEPTH
00836 # define YYMAXDEPTH 10000
00837 #endif
00838 
00839 
00840 
00841 #if YYERROR_VERBOSE
00842 
00843 # ifndef yystrlen
00844 #  if defined (__GLIBC__) && defined (_STRING_H)
00845 #   define yystrlen strlen
00846 #  else
00847 /* Return the length of YYSTR.  */
00848 static YYSIZE_T
00849 #   if defined (__STDC__) || defined (__cplusplus)
00850 yystrlen (const char *yystr)
00851 #   else
00852 yystrlen (yystr)
00853      const char *yystr;
00854 #   endif
00855 {
00856   register const char *yys = yystr;
00857 
00858   while (*yys++ != '\0')
00859     continue;
00860 
00861   return yys - yystr - 1;
00862 }
00863 #  endif
00864 # endif
00865 
00866 # ifndef yystpcpy
00867 #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
00868 #   define yystpcpy stpcpy
00869 #  else
00870 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
00871    YYDEST.  */
00872 static char *
00873 #   if defined (__STDC__) || defined (__cplusplus)
00874 yystpcpy (char *yydest, const char *yysrc)
00875 #   else
00876 yystpcpy (yydest, yysrc)
00877      char *yydest;
00878      const char *yysrc;
00879 #   endif
00880 {
00881   register char *yyd = yydest;
00882   register const char *yys = yysrc;
00883 
00884   while ((*yyd++ = *yys++) != '\0')
00885     continue;
00886 
00887   return yyd - 1;
00888 }
00889 #  endif
00890 # endif
00891 
00892 #endif /* !YYERROR_VERBOSE */
00893 
00894 
00895 
00896 #if YYDEBUG
00897 /*--------------------------------.
00898 | Print this symbol on YYOUTPUT.  |
00899 `--------------------------------*/
00900 
00901 #if defined (__STDC__) || defined (__cplusplus)
00902 static void
00903 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
00904 #else
00905 static void
00906 yysymprint (yyoutput, yytype, yyvaluep)
00907     FILE *yyoutput;
00908     int yytype;
00909     YYSTYPE *yyvaluep;
00910 #endif
00911 {
00912   /* Pacify ``unused variable'' warnings.  */
00913   (void) yyvaluep;
00914 
00915   if (yytype < YYNTOKENS)
00916     {
00917       YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
00918 # ifdef YYPRINT
00919       YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
00920 # endif
00921     }
00922   else
00923     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
00924 
00925   switch (yytype)
00926     {
00927       default:
00928         break;
00929     }
00930   YYFPRINTF (yyoutput, ")");
00931 }
00932 
00933 #endif /* ! YYDEBUG */
00934 /*-----------------------------------------------.
00935 | Release the memory associated to this symbol.  |
00936 `-----------------------------------------------*/
00937 
00938 #if defined (__STDC__) || defined (__cplusplus)
00939 static void
00940 yydestruct (int yytype, YYSTYPE *yyvaluep)
00941 #else
00942 static void
00943 yydestruct (yytype, yyvaluep)
00944     int yytype;
00945     YYSTYPE *yyvaluep;
00946 #endif
00947 {
00948   /* Pacify ``unused variable'' warnings.  */
00949   (void) yyvaluep;
00950 
00951   switch (yytype)
00952     {
00953 
00954       default:
00955         break;
00956     }
00957 }
00958 
00959 
00960 /* Prevent warnings from -Wmissing-prototypes.  */
00961 
00962 #ifdef YYPARSE_PARAM
00963 # if defined (__STDC__) || defined (__cplusplus)
00964 int yyparse (void *YYPARSE_PARAM);
00965 # else
00966 int yyparse ();
00967 # endif
00968 #else /* ! YYPARSE_PARAM */
00969 #if defined (__STDC__) || defined (__cplusplus)
00970 int yyparse (void);
00971 #else
00972 int yyparse ();
00973 #endif
00974 #endif /* ! YYPARSE_PARAM */
00975 
00976 
00977 
00978 /* The lookahead symbol.  */
00979 int yychar;
00980 
00981 /* The semantic value of the lookahead symbol.  */
00982 YYSTYPE yylval;
00983 
00984 /* Number of syntax errors so far.  */
00985 int yynerrs;
00986 
00987 
00988 
00989 /*----------.
00990 | yyparse.  |
00991 `----------*/
00992 
00993 #ifdef YYPARSE_PARAM
00994 # if defined (__STDC__) || defined (__cplusplus)
00995 int yyparse (void *YYPARSE_PARAM)
00996 # else
00997 int yyparse (YYPARSE_PARAM)
00998   void *YYPARSE_PARAM;
00999 # endif
01000 #else /* ! YYPARSE_PARAM */
01001 #if defined (__STDC__) || defined (__cplusplus)
01002 int
01003 yyparse (void)
01004 #else
01005 int
01006 yyparse ()
01007 
01008 #endif
01009 #endif
01010 {
01011   
01012   register int yystate;
01013   register int yyn;
01014   int yyresult;
01015   /* Number of tokens to shift before error messages enabled.  */
01016   int yyerrstatus;
01017   /* Lookahead token as an internal (translated) token number.  */
01018   int yytoken = 0;
01019 
01020   /* Three stacks and their tools:
01021      `yyss': related to states,
01022      `yyvs': related to semantic values,
01023      `yyls': related to locations.
01024 
01025      Refer to the stacks thru separate pointers, to allow yyoverflow
01026      to reallocate them elsewhere.  */
01027 
01028   /* The state stack.  */
01029   short yyssa[YYINITDEPTH];
01030   short *yyss = yyssa;
01031   register short *yyssp;
01032 
01033   /* The semantic value stack.  */
01034   YYSTYPE yyvsa[YYINITDEPTH];
01035   YYSTYPE *yyvs = yyvsa;
01036   register YYSTYPE *yyvsp;
01037 
01038 
01039 
01040 #define YYPOPSTACK   (yyvsp--, yyssp--)
01041 
01042   YYSIZE_T yystacksize = YYINITDEPTH;
01043 
01044   /* The variables used to return semantic value and location from the
01045      action routines.  */
01046   YYSTYPE yyval;
01047 
01048 
01049   /* When reducing, the number of symbols on the RHS of the reduced
01050      rule.  */
01051   int yylen;
01052 
01053   YYDPRINTF ((stderr, "Starting parse\n"));
01054 
01055   yystate = 0;
01056   yyerrstatus = 0;
01057   yynerrs = 0;
01058   yychar = YYEMPTY;             /* Cause a token to be read.  */
01059 
01060   /* Initialize stack pointers.
01061      Waste one element of value and location stack
01062      so that they stay on the same level as the state stack.
01063      The wasted elements are never initialized.  */
01064 
01065   yyssp = yyss;
01066   yyvsp = yyvs;
01067 
01068   goto yysetstate;
01069 
01070 /*------------------------------------------------------------.
01071 | yynewstate -- Push a new state, which is found in yystate.  |
01072 `------------------------------------------------------------*/
01073  yynewstate:
01074   /* In all cases, when you get here, the value and location stacks
01075      have just been pushed. so pushing a state here evens the stacks.
01076      */
01077   yyssp++;
01078 
01079  yysetstate:
01080   *yyssp = yystate;
01081 
01082   if (yyss + yystacksize - 1 <= yyssp)
01083     {
01084       /* Get the current used size of the three stacks, in elements.  */
01085       YYSIZE_T yysize = yyssp - yyss + 1;
01086 
01087 #ifdef yyoverflow
01088       {
01089         /* Give user a chance to reallocate the stack. Use copies of
01090            these so that the &'s don't force the real ones into
01091            memory.  */
01092         YYSTYPE *yyvs1 = yyvs;
01093         short *yyss1 = yyss;
01094 
01095 
01096         /* Each stack pointer address is followed by the size of the
01097            data in use in that stack, in bytes.  This used to be a
01098            conditional around just the two extra args, but that might
01099            be undefined if yyoverflow is a macro.  */
01100         yyoverflow ("parser stack overflow",
01101                     &yyss1, yysize * sizeof (*yyssp),
01102                     &yyvs1, yysize * sizeof (*yyvsp),
01103 
01104                     &yystacksize);
01105 
01106         yyss = yyss1;
01107         yyvs = yyvs1;
01108       }
01109 #else /* no yyoverflow */
01110 # ifndef YYSTACK_RELOCATE
01111       goto yyoverflowlab;
01112 # else
01113       /* Extend the stack our own way.  */
01114       if (YYMAXDEPTH <= yystacksize)
01115         goto yyoverflowlab;
01116       yystacksize *= 2;
01117       if (YYMAXDEPTH < yystacksize)
01118         yystacksize = YYMAXDEPTH;
01119 
01120       {
01121         short *yyss1 = yyss;
01122         union yyalloc *yyptr =
01123           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
01124         if (! yyptr)
01125           goto yyoverflowlab;
01126         YYSTACK_RELOCATE (yyss);
01127         YYSTACK_RELOCATE (yyvs);
01128 
01129 #  undef YYSTACK_RELOCATE
01130         if (yyss1 != yyssa)
01131           YYSTACK_FREE (yyss1);
01132       }
01133 # endif
01134 #endif /* no yyoverflow */
01135 
01136       yyssp = yyss + yysize - 1;
01137       yyvsp = yyvs + yysize - 1;
01138 
01139 
01140       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
01141                   (unsigned long int) yystacksize));
01142 
01143       if (yyss + yystacksize - 1 <= yyssp)
01144         YYABORT;
01145     }
01146 
01147   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
01148 
01149   goto yybackup;
01150 
01151 /*-----------.
01152 | yybackup.  |
01153 `-----------*/
01154 yybackup:
01155 
01156 /* Do appropriate processing given the current state.  */
01157 /* Read a lookahead token if we need one and don't already have one.  */
01158 /* yyresume: */
01159 
01160   /* First try to decide what to do without reference to lookahead token.  */
01161 
01162   yyn = yypact[yystate];
01163   if (yyn == YYPACT_NINF)
01164     goto yydefault;
01165 
01166   /* Not known => get a lookahead token if don't already have one.  */
01167 
01168   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
01169   if (yychar == YYEMPTY)
01170     {
01171       YYDPRINTF ((stderr, "Reading a token: "));
01172       yychar = YYLEX;
01173     }
01174 
01175   if (yychar <= YYEOF)
01176     {
01177       yychar = yytoken = YYEOF;
01178       YYDPRINTF ((stderr, "Now at end of input.\n"));
01179     }
01180   else
01181     {
01182       yytoken = YYTRANSLATE (yychar);
01183       YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
01184     }
01185 
01186   /* If the proper action on seeing token YYTOKEN is to reduce or to
01187      detect an error, take that action.  */
01188   yyn += yytoken;
01189   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
01190     goto yydefault;
01191   yyn = yytable[yyn];
01192   if (yyn <= 0)
01193     {
01194       if (yyn == 0 || yyn == YYTABLE_NINF)
01195         goto yyerrlab;
01196       yyn = -yyn;
01197       goto yyreduce;
01198     }
01199 
01200   if (yyn == YYFINAL)
01201     YYACCEPT;
01202 
01203   /* Shift the lookahead token.  */
01204   YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
01205 
01206   /* Discard the token being shifted unless it is eof.  */
01207   if (yychar != YYEOF)
01208     yychar = YYEMPTY;
01209 
01210   *++yyvsp = yylval;
01211 
01212 
01213   /* Count tokens shifted since error; after three, turn off error
01214      status.  */
01215   if (yyerrstatus)
01216     yyerrstatus--;
01217 
01218   yystate = yyn;
01219   goto yynewstate;
01220 
01221 
01222 /*-----------------------------------------------------------.
01223 | yydefault -- do the default action for the current state.  |
01224 `-----------------------------------------------------------*/
01225 yydefault:
01226   yyn = yydefact[yystate];
01227   if (yyn == 0)
01228     goto yyerrlab;
01229   goto yyreduce;
01230 
01231 
01232 /*-----------------------------.
01233 | yyreduce -- Do a reduction.  |
01234 `-----------------------------*/
01235 yyreduce:
01236   /* yyn is the number of a rule to reduce with.  */
01237   yylen = yyr2[yyn];
01238 
01239   /* If YYLEN is nonzero, implement the default value of the action:
01240      `$$ = $1'.
01241 
01242      Otherwise, the following line sets YYVAL to garbage.
01243      This behavior is undocumented and Bison
01244      users should not rely upon it.  Assigning to YYVAL
01245      unconditionally makes the parser a bit smaller, and it avoids a
01246      GCC warning that YYVAL may be used uninitialized.  */
01247   yyval = yyvsp[1-yylen];
01248 
01249 
01250   YY_REDUCE_PRINT (yyn);
01251   switch (yyn)
01252     {
01253         case 3:
01254 #line 144 "jamgram.y"
01255     { parse_save( yyvsp[0].parse ); }
01256     break;
01257 
01258   case 4:
01259 #line 155 "jamgram.y"
01260     { yyval.parse = yyvsp[0].parse; }
01261     break;
01262 
01263   case 5:
01264 #line 157 "jamgram.y"
01265     { yyval.parse = yyvsp[0].parse; }
01266     break;
01267 
01268   case 6:
01269 #line 161 "jamgram.y"
01270     { yyval.parse = yyvsp[0].parse; }
01271     break;
01272 
01273   case 7:
01274 #line 163 "jamgram.y"
01275     { yyval.parse = prules( yyvsp[-1].parse, yyvsp[0].parse ); }
01276     break;
01277 
01278   case 8:
01279 #line 165 "jamgram.y"
01280     { yyval.parse = plocal( yyvsp[-3].parse, yyvsp[-2].parse, yyvsp[0].parse ); }
01281     break;
01282 
01283   case 9:
01284 #line 169 "jamgram.y"
01285     { yyval.parse = pnull(); }
01286     break;
01287 
01288   case 10:
01289 #line 173 "jamgram.y"
01290     { yyval.parse = yyvsp[0].parse; yyval.number = ASSIGN_SET; }
01291     break;
01292 
01293   case 11:
01294 #line 175 "jamgram.y"
01295     { yyval.parse = yyvsp[0].parse; yyval.number = ASSIGN_APPEND; }
01296     break;
01297 
01298   case 12:
01299 #line 179 "jamgram.y"
01300     { yyval.parse = yyvsp[-1].parse; }
01301     break;
01302 
01303   case 13:
01304 #line 181 "jamgram.y"
01305     { yyval.parse = P0; }
01306     break;
01307 
01308   case 14:
01309 #line 185 "jamgram.y"
01310     { yyval.number = 1; }
01311     break;
01312 
01313   case 15:
01314 #line 187 "jamgram.y"
01315     { yyval.number = 0; }
01316     break;
01317 
01318   case 16:
01319 #line 191 "jamgram.y"
01320     { yyval.parse = yyvsp[-1].parse; }
01321     break;
01322 
01323   case 17:
01324 #line 193 "jamgram.y"
01325     { yyval.parse = pincl( yyvsp[-1].parse ); }
01326     break;
01327 
01328   case 18:
01329 #line 195 "jamgram.y"
01330     { yyval.parse = prule( yyvsp[-2].string, yyvsp[-1].parse ); }
01331     break;
01332 
01333   case 19:
01334 #line 197 "jamgram.y"
01335     { yyval.parse = pset( yyvsp[-3].parse, yyvsp[-1].parse, yyvsp[-2].number ); }
01336     break;
01337 
01338   case 20:
01339 #line 199 "jamgram.y"
01340     { yyval.parse = pset1( yyvsp[-5].parse, yyvsp[-3].parse, yyvsp[-1].parse, yyvsp[-2].number ); }
01341     break;
01342 
01343   case 21:
01344 #line 201 "jamgram.y"
01345     { yyval.parse = yyvsp[-1].parse; }
01346     break;
01347 
01348   case 22:
01349 #line 203 "jamgram.y"
01350     { yyval.parse = pfor( yyvsp[-5].string, yyvsp[-3].parse, yyvsp[-1].parse, yyvsp[-6].number ); }
01351     break;
01352 
01353   case 23:
01354 #line 205 "jamgram.y"
01355     { yyval.parse = pswitch( yyvsp[-3].parse, yyvsp[-1].parse ); }
01356     break;
01357 
01358   case 24:
01359 #line 207 "jamgram.y"
01360     { yyval.parse = pif( yyvsp[-3].parse, yyvsp[-1].parse, pnull() ); }
01361     break;
01362 
01363   case 25:
01364 #line 209 "jamgram.y"
01365     { yyval.parse = pmodule( yyvsp[-3].parse, yyvsp[-1].parse ); }
01366     break;
01367 
01368   case 26:
01369 #line 211 "jamgram.y"
01370     { yyval.parse = pclass( yyvsp[-3].parse, yyvsp[-1].parse ); }
01371     break;
01372 
01373   case 27:
01374 #line 213 "jamgram.y"
01375     { yyval.parse = pwhile( yyvsp[-3].parse, yyvsp[-1].parse ); }
01376     break;
01377 
01378   case 28:
01379 #line 215 "jamgram.y"
01380     { yyval.parse = pif( yyvsp[-5].parse, yyvsp[-3].parse, yyvsp[0].parse ); }
01381     break;
01382 
01383   case 29:
01384 #line 217 "jamgram.y"
01385     { yyval.parse = psetc( yyvsp[-2].string, yyvsp[0].parse, yyvsp[-1].parse, yyvsp[-4].number ); }
01386     break;
01387 
01388   case 30:
01389 #line 219 "jamgram.y"
01390     { yyval.parse = pon( yyvsp[-1].parse, yyvsp[0].parse ); }
01391     break;
01392 
01393   case 31:
01394 #line 221 "jamgram.y"
01395     { yymode( SCAN_STRING ); }
01396     break;
01397 
01398   case 32:
01399 #line 223 "jamgram.y"
01400     { yymode( SCAN_NORMAL ); }
01401     break;
01402 
01403   case 33:
01404 #line 225 "jamgram.y"
01405     { yyval.parse = psete( yyvsp[-6].string,yyvsp[-5].parse,yyvsp[-2].string,yyvsp[-7].number ); }
01406     break;
01407 
01408   case 34:
01409 #line 233 "jamgram.y"
01410     { yyval.number = ASSIGN_SET; }
01411     break;
01412 
01413   case 35:
01414 #line 235 "jamgram.y"
01415     { yyval.number = ASSIGN_APPEND; }
01416     break;
01417 
01418   case 36:
01419 #line 237 "jamgram.y"
01420     { yyval.number = ASSIGN_DEFAULT; }
01421     break;
01422 
01423   case 37:
01424 #line 239 "jamgram.y"
01425     { yyval.number = ASSIGN_DEFAULT; }
01426     break;
01427 
01428   case 38:
01429 #line 246 "jamgram.y"
01430     { yyval.parse = peval( EXPR_EXISTS, yyvsp[0].parse, pnull() ); }
01431     break;
01432 
01433   case 39:
01434 #line 248 "jamgram.y"
01435     { yyval.parse = peval( EXPR_EQUALS, yyvsp[-2].parse, yyvsp[0].parse ); }
01436     break;
01437 
01438   case 40:
01439 #line 250 "jamgram.y"
01440     { yyval.parse = peval( EXPR_NOTEQ, yyvsp[-2].parse, yyvsp[0].parse ); }
01441     break;
01442 
01443   case 41:
01444 #line 252 "jamgram.y"
01445     { yyval.parse = peval( EXPR_LESS, yyvsp[-2].parse, yyvsp[0].parse ); }
01446     break;
01447 
01448   case 42:
01449 #line 254 "jamgram.y"
01450     { yyval.parse = peval( EXPR_LESSEQ, yyvsp[-2].parse, yyvsp[0].parse ); }
01451     break;
01452 
01453   case 43:
01454 #line 256 "jamgram.y"
01455     { yyval.parse = peval( EXPR_MORE, yyvsp[-2].parse, yyvsp[0].parse ); }
01456     break;
01457 
01458   case 44:
01459 #line 258 "jamgram.y"
01460     { yyval.parse = peval( EXPR_MOREEQ, yyvsp[-2].parse, yyvsp[0].parse ); }
01461     break;
01462 
01463   case 45:
01464 #line 260 "jamgram.y"
01465     { yyval.parse = peval( EXPR_AND, yyvsp[-2].parse, yyvsp[0].parse ); }
01466     break;
01467 
01468   case 46:
01469 #line 262 "jamgram.y"
01470     { yyval.parse = peval( EXPR_AND, yyvsp[-2].parse, yyvsp[0].parse ); }
01471     break;
01472 
01473   case 47:
01474 #line 264 "jamgram.y"
01475     { yyval.parse = peval( EXPR_OR, yyvsp[-2].parse, yyvsp[0].parse ); }
01476     break;
01477 
01478   case 48:
01479 #line 266 "jamgram.y"
01480     { yyval.parse = peval( EXPR_OR, yyvsp[-2].parse, yyvsp[0].parse ); }
01481     break;
01482 
01483   case 49:
01484 #line 268 "jamgram.y"
01485     { yyval.parse = peval( EXPR_IN, yyvsp[-2].parse, yyvsp[0].parse ); }
01486     break;
01487 
01488   case 50:
01489 #line 270 "jamgram.y"
01490     { yyval.parse = peval( EXPR_NOT, yyvsp[0].parse, pnull() ); }
01491     break;
01492 
01493   case 51:
01494 #line 272 "jamgram.y"
01495     { yyval.parse = yyvsp[-1].parse; }
01496     break;
01497 
01498   case 52:
01499 #line 283 "jamgram.y"
01500     { yyval.parse = P0; }
01501     break;
01502 
01503   case 53:
01504 #line 285 "jamgram.y"
01505     { yyval.parse = pnode( yyvsp[-1].parse, yyvsp[0].parse ); }
01506     break;
01507 
01508   case 54:
01509 #line 289 "jamgram.y"
01510     { yyval.parse = psnode( yyvsp[-2].string, yyvsp[0].parse ); }
01511     break;
01512 
01513   case 55:
01514 #line 298 "jamgram.y"
01515     { yyval.parse = pnode( P0, yyvsp[0].parse ); }
01516     break;
01517 
01518   case 56:
01519 #line 300 "jamgram.y"
01520     { yyval.parse = pnode( yyvsp[0].parse, yyvsp[-2].parse ); }
01521     break;
01522 
01523   case 57:
01524 #line 310 "jamgram.y"
01525     { yyval.parse = yyvsp[0].parse; yymode( SCAN_NORMAL ); }
01526     break;
01527 
01528   case 58:
01529 #line 314 "jamgram.y"
01530     { yyval.parse = pnull(); yymode( SCAN_PUNCT ); }
01531     break;
01532 
01533   case 59:
01534 #line 316 "jamgram.y"
01535     { yyval.parse = pappend( yyvsp[-1].parse, yyvsp[0].parse ); }
01536     break;
01537 
01538   case 60:
01539 #line 320 "jamgram.y"
01540     { yyval.parse = plist( yyvsp[0].string ); }
01541     break;
01542 
01543   case 61:
01544 #line 321 "jamgram.y"
01545     { yymode( SCAN_NORMAL ); }
01546     break;
01547 
01548   case 62:
01549 #line 322 "jamgram.y"
01550     { yyval.parse = yyvsp[-1].parse; }
01551     break;
01552 
01553   case 63:
01554 #line 331 "jamgram.y"
01555     { yyval.parse = prule( yyvsp[-1].string, yyvsp[0].parse ); }
01556     break;
01557 
01558   case 64:
01559 #line 333 "jamgram.y"
01560     { yyval.parse = pon( yyvsp[-2].parse, prule( yyvsp[-1].string, yyvsp[0].parse ) ); }
01561     break;
01562 
01563   case 65:
01564 #line 335 "jamgram.y"
01565     { yyval.parse = pon( yyvsp[-2].parse, yyvsp[0].parse ); }
01566     break;
01567 
01568   case 66:
01569 #line 345 "jamgram.y"
01570     { yyval.number = 0; }
01571     break;
01572 
01573   case 67:
01574 #line 347 "jamgram.y"
01575     { yyval.number = yyvsp[-1].number | yyvsp[0].number; }
01576     break;
01577 
01578   case 68:
01579 #line 351 "jamgram.y"
01580     { yyval.number = EXEC_UPDATED; }
01581     break;
01582 
01583   case 69:
01584 #line 353 "jamgram.y"
01585     { yyval.number = EXEC_TOGETHER; }
01586     break;
01587 
01588   case 70:
01589 #line 355 "jamgram.y"
01590     { yyval.number = EXEC_IGNORE; }
01591     break;
01592 
01593   case 71:
01594 #line 357 "jamgram.y"
01595     { yyval.number = EXEC_QUIETLY; }
01596     break;
01597 
01598   case 72:
01599 #line 359 "jamgram.y"
01600     { yyval.number = EXEC_PIECEMEAL; }
01601     break;
01602 
01603   case 73:
01604 #line 361 "jamgram.y"
01605     { yyval.number = EXEC_EXISTING; }
01606     break;
01607 
01608   case 74:
01609 #line 370 "jamgram.y"
01610     { yyval.parse = pnull(); }
01611     break;
01612 
01613   case 75:
01614 #line 372 "jamgram.y"
01615     { yyval.parse = yyvsp[0].parse; }
01616     break;
01617 
01618 
01619     }
01620 
01621 /* Line 999 of yacc.c.  */
01622 #line 1623 "y.tab.c"
01623 
01624   yyvsp -= yylen;
01625   yyssp -= yylen;
01626 
01627 
01628   YY_STACK_PRINT (yyss, yyssp);
01629 
01630   *++yyvsp = yyval;
01631 
01632 
01633   /* Now `shift' the result of the reduction.  Determine what state
01634      that goes to, based on the state we popped back to and the rule
01635      number reduced by.  */
01636 
01637   yyn = yyr1[yyn];
01638 
01639   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
01640   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
01641     yystate = yytable[yystate];
01642   else
01643     yystate = yydefgoto[yyn - YYNTOKENS];
01644 
01645   goto yynewstate;
01646 
01647 
01648 /*------------------------------------.
01649 | yyerrlab -- here on detecting error |
01650 `------------------------------------*/
01651 yyerrlab:
01652   /* If not already recovering from an error, report this error.  */
01653   if (!yyerrstatus)
01654     {
01655       ++yynerrs;
01656 #if YYERROR_VERBOSE
01657       yyn = yypact[yystate];
01658 
01659       if (YYPACT_NINF < yyn && yyn < YYLAST)
01660         {
01661           YYSIZE_T yysize = 0;
01662           int yytype = YYTRANSLATE (yychar);
01663           char *yymsg;
01664           int yyx, yycount;
01665 
01666           yycount = 0;
01667           /* Start YYX at -YYN if negative to avoid negative indexes in
01668              YYCHECK.  */
01669           for (yyx = yyn < 0 ? -yyn : 0;
01670                yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
01671             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
01672               yysize += yystrlen (yytname[yyx]) + 15, yycount++;
01673           yysize += yystrlen ("syntax error, unexpected ") + 1;
01674           yysize += yystrlen (yytname[yytype]);
01675           yymsg = (char *) YYSTACK_ALLOC (yysize);
01676           if (yymsg != 0)
01677             {
01678               char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
01679               yyp = yystpcpy (yyp, yytname[yytype]);
01680 
01681               if (yycount < 5)
01682                 {
01683                   yycount = 0;
01684                   for (yyx = yyn < 0 ? -yyn : 0;
01685                        yyx < (int) (sizeof (yytname) / sizeof (char *));
01686                        yyx++)
01687                     if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
01688                       {
01689                         const char *yyq = ! yycount ? ", expecting " : " or ";
01690                         yyp = yystpcpy (yyp, yyq);
01691                         yyp = yystpcpy (yyp, yytname[yyx]);
01692                         yycount++;
01693                       }
01694                 }
01695               yyerror (yymsg);
01696               YYSTACK_FREE (yymsg);
01697             }
01698           else
01699             yyerror ("syntax error; also virtual memory exhausted");
01700         }
01701       else
01702 #endif /* YYERROR_VERBOSE */
01703         yyerror ("syntax error");
01704     }
01705 
01706 
01707 
01708   if (yyerrstatus == 3)
01709     {
01710       /* If just tried and failed to reuse lookahead token after an
01711          error, discard it.  */
01712 
01713       /* Return failure if at end of input.  */
01714       if (yychar == YYEOF)
01715         {
01716           /* Pop the error token.  */
01717           YYPOPSTACK;
01718           /* Pop the rest of the stack.  */
01719           while (yyss < yyssp)
01720             {
01721               YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
01722               yydestruct (yystos[*yyssp], yyvsp);
01723               YYPOPSTACK;
01724             }
01725           YYABORT;
01726         }
01727 
01728       YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
01729       yydestruct (yytoken, &yylval);
01730       yychar = YYEMPTY;
01731 
01732     }
01733 
01734   /* Else will try to reuse lookahead token after shifting the error
01735      token.  */
01736   goto yyerrlab1;
01737 
01738 
01739 /*----------------------------------------------------.
01740 | yyerrlab1 -- error raised explicitly by an action.  |
01741 `----------------------------------------------------*/
01742 yyerrlab1:
01743   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
01744 
01745   for (;;)
01746     {
01747       yyn = yypact[yystate];
01748       if (yyn != YYPACT_NINF)
01749         {
01750           yyn += YYTERROR;
01751           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
01752             {
01753               yyn = yytable[yyn];
01754               if (0 < yyn)
01755                 break;
01756             }
01757         }
01758 
01759       /* Pop the current state because it cannot handle the error token.  */
01760       if (yyssp == yyss)
01761         YYABORT;
01762 
01763       YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
01764       yydestruct (yystos[yystate], yyvsp);
01765       yyvsp--;
01766       yystate = *--yyssp;
01767 
01768       YY_STACK_PRINT (yyss, yyssp);
01769     }
01770 
01771   if (yyn == YYFINAL)
01772     YYACCEPT;
01773 
01774   YYDPRINTF ((stderr, "Shifting error token, "));
01775 
01776   *++yyvsp = yylval;
01777 
01778 
01779   yystate = yyn;
01780   goto yynewstate;
01781 
01782 
01783 /*-------------------------------------.
01784 | yyacceptlab -- YYACCEPT comes here.  |
01785 `-------------------------------------*/
01786 yyacceptlab:
01787   yyresult = 0;
01788   goto yyreturn;
01789 
01790 /*-----------------------------------.
01791 | yyabortlab -- YYABORT comes here.  |
01792 `-----------------------------------*/
01793 yyabortlab:
01794   yyresult = 1;
01795   goto yyreturn;
01796 
01797 #ifndef yyoverflow
01798 /*----------------------------------------------.
01799 | yyoverflowlab -- parser overflow comes here.  |
01800 `----------------------------------------------*/
01801 yyoverflowlab:
01802   yyerror ("parser stack overflow");
01803   yyresult = 2;
01804   /* Fall through.  */
01805 #endif
01806 
01807 yyreturn:
01808 #ifndef yyoverflow
01809   if (yyss != yyssa)
01810     YYSTACK_FREE (yyss);
01811 #endif
01812   return yyresult;
01813 }
01814 
01815 
01816 

Generated on Mon Nov 8 17:07:36 2004 for MPT by  doxygen 1.3.9.1