diff --git a/direct/src/dcparser/dcLexer.cxx.prebuilt b/direct/src/dcparser/dcLexer.cxx.prebuilt index 6df29a3094..a19dd0b23e 100644 --- a/direct/src/dcparser/dcLexer.cxx.prebuilt +++ b/direct/src/dcparser/dcLexer.cxx.prebuilt @@ -918,7 +918,7 @@ YY_MALLOC_DECL YY_DECL { register yy_state_type yy_current_state; - register char *yy_cp = NULL, *yy_bp = NULL; + register char *yy_cp, *yy_bp; register int yy_act; #line 295 "dcLexer.lxx" @@ -1920,6 +1920,11 @@ YY_BUFFER_STATE b; } +#ifndef YY_ALWAYS_INTERACTIVE +#ifndef YY_NEVER_INTERACTIVE +extern int isatty YY_PROTO(( int )); +#endif +#endif #ifdef YY_USE_PROTOS void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) diff --git a/direct/src/dcparser/dcParser.cxx.prebuilt b/direct/src/dcparser/dcParser.cxx.prebuilt index 9dd12a84ed..ffe5a27ddc 100644 --- a/direct/src/dcparser/dcParser.cxx.prebuilt +++ b/direct/src/dcparser/dcParser.cxx.prebuilt @@ -1,49 +1,140 @@ -/* A Bison parser, made from dcParser.yxx - by GNU bison 1.35. */ +/* A Bison parser, made by GNU Bison 1.875. */ -#define YYBISON 1 /* Identify Bison output. */ +/* Skeleton parser for Yacc-like parsing with Bison, + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software 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. */ + +/* 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 + +/* If NAME_PREFIX is specified substitute the variables and functions + names. */ #define yyparse dcyyparse -#define yylex dcyylex +#define yylex dcyylex #define yyerror dcyyerror -#define yylval dcyylval -#define yychar dcyychar +#define yylval dcyylval +#define yychar dcyychar #define yydebug dcyydebug #define yynerrs dcyynerrs -# define INTEGER 257 -# define REAL 258 -# define STRING 259 -# define HEX_STRING 260 -# define IDENTIFIER 261 -# define KW_DCLASS 262 -# define KW_INT8 263 -# define KW_INT16 264 -# define KW_INT32 265 -# define KW_INT64 266 -# define KW_UINT8 267 -# define KW_UINT16 268 -# define KW_UINT32 269 -# define KW_UINT64 270 -# define KW_FLOAT64 271 -# define KW_STRING 272 -# define KW_BLOB 273 -# define KW_INT8ARRAY 274 -# define KW_INT16ARRAY 275 -# define KW_INT32ARRAY 276 -# define KW_UINT8ARRAY 277 -# define KW_UINT16ARRAY 278 -# define KW_UINT32ARRAY 279 -# define KW_UINT32UINT8ARRAY 280 -# define KW_MOL 281 -# define KW_REQUIRED 282 -# define KW_BROADCAST 283 -# define KW_P2P 284 -# define KW_RAM 285 -# define KW_DB 286 -# define KW_CLSEND 287 -# define KW_CLRECV 288 -# define KW_OWNSEND 289 + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + INTEGER = 258, + REAL = 259, + STRING = 260, + HEX_STRING = 261, + IDENTIFIER = 262, + KW_DCLASS = 263, + KW_INT8 = 264, + KW_INT16 = 265, + KW_INT32 = 266, + KW_INT64 = 267, + KW_UINT8 = 268, + KW_UINT16 = 269, + KW_UINT32 = 270, + KW_UINT64 = 271, + KW_FLOAT64 = 272, + KW_STRING = 273, + KW_BLOB = 274, + KW_INT8ARRAY = 275, + KW_INT16ARRAY = 276, + KW_INT32ARRAY = 277, + KW_UINT8ARRAY = 278, + KW_UINT16ARRAY = 279, + KW_UINT32ARRAY = 280, + KW_UINT32UINT8ARRAY = 281, + KW_MOL = 282, + KW_REQUIRED = 283, + KW_BROADCAST = 284, + KW_P2P = 285, + KW_RAM = 286, + KW_DB = 287, + KW_CLSEND = 288, + KW_CLRECV = 289, + KW_OWNSEND = 290 + }; +#endif +#define INTEGER 258 +#define REAL 259 +#define STRING 260 +#define HEX_STRING 261 +#define IDENTIFIER 262 +#define KW_DCLASS 263 +#define KW_INT8 264 +#define KW_INT16 265 +#define KW_INT32 266 +#define KW_INT64 267 +#define KW_UINT8 268 +#define KW_UINT16 269 +#define KW_UINT32 270 +#define KW_UINT64 271 +#define KW_FLOAT64 272 +#define KW_STRING 273 +#define KW_BLOB 274 +#define KW_INT8ARRAY 275 +#define KW_INT16ARRAY 276 +#define KW_INT32ARRAY 277 +#define KW_UINT8ARRAY 278 +#define KW_UINT16ARRAY 279 +#define KW_UINT32ARRAY 280 +#define KW_UINT32UINT8ARRAY 281 +#define KW_MOL 282 +#define KW_REQUIRED 283 +#define KW_BROADCAST 284 +#define KW_P2P 285 +#define KW_RAM 286 +#define KW_DB 287 +#define KW_CLSEND 288 +#define KW_CLRECV 289 +#define KW_OWNSEND 290 + + + + +/* Copy the first part of user declarations. */ #line 6 "dcParser.yxx" #include "dcLexerDefs.h" @@ -82,273 +173,37 @@ dc_cleanup_parser() { dc_file = (DCFile *)NULL; } + + +/* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif - - -#define YYFINAL 101 -#define YYFLAG -32768 -#define YYNTBASE 46 - -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -#define YYTRANSLATE(x) ((unsigned)(x) <= 289 ? yytranslate[x] : 71) - -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ -static const char yytranslate[] = -{ - 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, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 41, 42, 45, 2, 40, 2, 2, 43, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 39, 36, - 2, 44, 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, 37, 2, 38, 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, 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, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 -}; - -#if YYDEBUG -static const short yyprhs[] = -{ - 0, 0, 2, 5, 8, 9, 17, 19, 21, 24, - 26, 30, 32, 35, 38, 41, 42, 49, 51, 53, - 55, 57, 61, 62, 66, 68, 72, 75, 79, 83, - 87, 91, 97, 99, 102, 104, 106, 108, 112, 114, - 116, 118, 120, 124, 128, 132, 134, 136, 138, 140, - 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, - 162, 164, 166, 168, 170, 173, 176, 179, 182, 185, - 188, 191, 194, 195, 200, 202, 206 -}; -static const short yyrhs[] = -{ - 70, 0, 46, 36, 0, 46, 47, 0, 0, 8, - 7, 48, 50, 37, 52, 38, 0, 7, 0, 70, - 0, 39, 51, 0, 49, 0, 51, 40, 49, 0, - 70, 0, 52, 36, 0, 52, 53, 0, 52, 67, - 0, 0, 7, 41, 54, 56, 42, 66, 0, 7, - 0, 70, 0, 57, 0, 58, 0, 57, 40, 58, - 0, 0, 65, 59, 60, 0, 70, 0, 60, 43, - 3, 0, 60, 7, 0, 60, 44, 3, 0, 60, - 44, 4, 0, 60, 44, 5, 0, 60, 44, 6, - 0, 60, 44, 37, 61, 38, 0, 70, 0, 63, - 62, 0, 70, 0, 40, 0, 64, 0, 63, 40, - 64, 0, 3, 0, 4, 0, 5, 0, 6, 0, - 3, 45, 3, 0, 4, 45, 3, 0, 6, 45, - 3, 0, 9, 0, 10, 0, 11, 0, 12, 0, - 13, 0, 14, 0, 15, 0, 16, 0, 17, 0, - 18, 0, 19, 0, 20, 0, 21, 0, 22, 0, - 23, 0, 24, 0, 25, 0, 26, 0, 70, 0, - 66, 28, 0, 66, 29, 0, 66, 30, 0, 66, - 31, 0, 66, 32, 0, 66, 33, 0, 66, 34, - 0, 66, 35, 0, 0, 7, 39, 68, 69, 0, - 55, 0, 69, 40, 55, 0, 0 -}; - +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 #endif -#if YYDEBUG -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const short yyrline[] = -{ - 0, 87, 89, 90, 93, 93, 105, 119, 121, 124, - 131, 139, 141, 142, 143, 146, 146, 158, 174, 176, - 179, 181, 184, 184, 196, 198, 202, 206, 212, 218, - 224, 230, 240, 242, 245, 247, 250, 252, 255, 262, - 268, 274, 280, 289, 298, 309, 314, 318, 322, 326, - 330, 334, 338, 342, 346, 350, 354, 358, 362, 366, - 370, 374, 378, 384, 386, 390, 394, 398, 402, 406, - 410, 414, 420, 420, 432, 439, 452 -}; +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +typedef int YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 #endif -#if (YYDEBUG) || defined YYERROR_VERBOSE -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ -static const char *const yytname[] = -{ - "$", "error", "$undefined.", "INTEGER", "REAL", "STRING", "HEX_STRING", - "IDENTIFIER", "KW_DCLASS", "KW_INT8", "KW_INT16", "KW_INT32", - "KW_INT64", "KW_UINT8", "KW_UINT16", "KW_UINT32", "KW_UINT64", - "KW_FLOAT64", "KW_STRING", "KW_BLOB", "KW_INT8ARRAY", "KW_INT16ARRAY", - "KW_INT32ARRAY", "KW_UINT8ARRAY", "KW_UINT16ARRAY", "KW_UINT32ARRAY", - "KW_UINT32UINT8ARRAY", "KW_MOL", "KW_REQUIRED", "KW_BROADCAST", - "KW_P2P", "KW_RAM", "KW_DB", "KW_CLSEND", "KW_CLRECV", "KW_OWNSEND", - "';'", "'{'", "'}'", "':'", "','", "'('", "')'", "'/'", "'='", "'*'", - "dc", "dclass", "@1", "dclass_name", "dclass_derivation", "base_list", - "dclass_fields", "atomic_field", "@2", "atomic_name", "parameter_list", - "nonempty_parameter_list", "atomic_element", "@3", - "atomic_element_definition", "default_array", "maybe_comma", - "default_array_def", "default_array_element", "type_token", - "atomic_flags", "molecular_field", "@4", "molecular_atom_list", "empty", 0 -}; -#endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const short yyr1[] = -{ - 0, 46, 46, 46, 48, 47, 49, 50, 50, 51, - 51, 52, 52, 52, 52, 54, 53, 55, 56, 56, - 57, 57, 59, 58, 60, 60, 60, 60, 60, 60, - 60, 60, 61, 61, 62, 62, 63, 63, 64, 64, - 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 68, 67, 69, 69, 70 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const short yyr2[] = -{ - 0, 1, 2, 2, 0, 7, 1, 1, 2, 1, - 3, 1, 2, 2, 2, 0, 6, 1, 1, 1, - 1, 3, 0, 3, 1, 3, 2, 3, 3, 3, - 3, 5, 1, 2, 1, 1, 1, 3, 1, 1, - 1, 1, 3, 3, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 0, 4, 1, 3, 0 -}; - -/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ -static const short yydefact[] = -{ - 76, 0, 1, 0, 2, 3, 4, 76, 0, 0, - 7, 6, 9, 8, 76, 0, 0, 11, 10, 0, - 12, 5, 13, 14, 72, 15, 0, 76, 17, 74, - 73, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 0, - 19, 20, 22, 18, 0, 76, 0, 76, 75, 16, - 63, 21, 23, 24, 64, 65, 66, 67, 68, 69, - 70, 71, 26, 0, 0, 25, 27, 28, 29, 30, - 76, 38, 39, 40, 41, 0, 76, 36, 32, 0, - 0, 0, 31, 35, 33, 34, 42, 43, 44, 37, - 0, 0 -}; - -static const short yydefgoto[] = -{ - 1, 5, 7, 12, 9, 13, 16, 22, 27, 29, - 49, 50, 51, 57, 62, 85, 94, 86, 87, 52, - 59, 23, 26, 30, 2 -}; - -static const short yypact[] = -{ - -32768, 3,-32768, -2,-32768,-32768,-32768, -31, 2, -27, - -32768,-32768,-32768, -19,-32768, 2, -5,-32768,-32768, -35, - -32768,-32768,-32768,-32768,-32768,-32768, 15, 42,-32768,-32768, - -17,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -18, - -15,-32768,-32768,-32768, 15,-32768, 42,-32768,-32768, 52, - -32768,-32768, -6,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768, 23, 9,-32768,-32768,-32768,-32768,-32768, - 13, -16, -13,-32768, -11, -10, -4,-32768,-32768, 24, - 27, 32,-32768, 13,-32768,-32768,-32768,-32768,-32768,-32768, - 40,-32768 -}; - -static const short yypgoto[] = -{ - -32768,-32768,-32768, 26,-32768,-32768,-32768,-32768,-32768, -12, - -32768,-32768, -9,-32768,-32768,-32768,-32768,-32768, -50,-32768, - -32768,-32768,-32768,-32768, -7 -}; +/* Copy the second part of user declarations. */ -#define YYLAST 87 +/* Line 214 of yacc.c. */ +#line 204 "y.tab.c" - -static const short yytable[] = -{ - 10, 72, 19, 100, 24, 6, 25, 17, 8, 11, - 14, 3, 76, 77, 78, 79, 81, 82, 83, 84, - 53, 15, 28, 54, 55, 56, 75, 96, 92, 89, - 97, 20, 90, 21, 91, 98, 93, 73, 74, 4, - 101, 18, 58, 99, 0, 0, 80, 61, 60, 0, - 63, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 0, - 0, 0, 0, 88, 0, 0, 0, 0, 0, 95, - 64, 65, 66, 67, 68, 69, 70, 71 -}; - -static const short yycheck[] = -{ - 7, 7, 7, 0, 39, 7, 41, 14, 39, 7, - 37, 8, 3, 4, 5, 6, 3, 4, 5, 6, - 27, 40, 7, 40, 42, 40, 3, 3, 38, 45, - 3, 36, 45, 38, 45, 3, 40, 43, 44, 36, - 0, 15, 54, 93, -1, -1, 37, 56, 55, -1, - 57, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, - -1, -1, -1, 80, -1, -1, -1, -1, -1, 86, - 28, 29, 30, 31, 32, 33, 34, 35 -}; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison/bison.simple" - -/* Skeleton output parser for bison, - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software - 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) +#if ! defined (yyoverflow) || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -377,37 +232,28 @@ static const short yycheck[] = # define YYSTACK_ALLOC malloc # define YYSTACK_FREE free # endif -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ +#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ #if (! defined (yyoverflow) \ && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { short yyss; YYSTYPE yyvs; -# if YYLSP_NEEDED - YYLTYPE yyls; -# endif -}; + }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (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) \ +# define YYSTACK_BYTES(N) \ ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) -# endif + + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ @@ -438,13 +284,288 @@ union yyalloc YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) #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 3 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 79 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 46 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 26 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 77 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 101 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 290 + +#define YYTRANSLATE(YYX) \ + ((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, + 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, + 41, 42, 45, 2, 40, 2, 2, 43, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 39, 36, + 2, 44, 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, 37, 2, 38, 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, 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, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35 +}; + +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const unsigned char yyprhs[] = +{ + 0, 0, 3, 5, 8, 11, 12, 20, 22, 24, + 27, 29, 33, 35, 38, 41, 44, 45, 52, 54, + 56, 58, 60, 64, 65, 69, 71, 75, 78, 82, + 86, 90, 94, 100, 102, 105, 107, 109, 111, 115, + 117, 119, 121, 123, 127, 131, 135, 137, 139, 141, + 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, + 163, 165, 167, 169, 171, 173, 176, 179, 182, 185, + 188, 191, 194, 197, 198, 203, 205, 209 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yysigned_char yyrhs[] = +{ + 47, 0, -1, 71, -1, 47, 36, -1, 47, 48, + -1, -1, 8, 7, 49, 51, 37, 53, 38, -1, + 7, -1, 71, -1, 39, 52, -1, 50, -1, 52, + 40, 50, -1, 71, -1, 53, 36, -1, 53, 54, + -1, 53, 68, -1, -1, 7, 41, 55, 57, 42, + 67, -1, 7, -1, 71, -1, 58, -1, 59, -1, + 58, 40, 59, -1, -1, 66, 60, 61, -1, 71, + -1, 61, 43, 3, -1, 61, 7, -1, 61, 44, + 3, -1, 61, 44, 4, -1, 61, 44, 5, -1, + 61, 44, 6, -1, 61, 44, 37, 62, 38, -1, + 71, -1, 64, 63, -1, 71, -1, 40, -1, 65, + -1, 64, 40, 65, -1, 3, -1, 4, -1, 5, + -1, 6, -1, 3, 45, 3, -1, 4, 45, 3, + -1, 6, 45, 3, -1, 9, -1, 10, -1, 11, + -1, 12, -1, 13, -1, 14, -1, 15, -1, 16, + -1, 17, -1, 18, -1, 19, -1, 20, -1, 21, + -1, 22, -1, 23, -1, 24, -1, 25, -1, 26, + -1, 71, -1, 67, 28, -1, 67, 29, -1, 67, + 30, -1, 67, 31, -1, 67, 32, -1, 67, 33, + -1, 67, 34, -1, 67, 35, -1, -1, 7, 39, + 69, 70, -1, 56, -1, 70, 40, 56, -1, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const unsigned short yyrline[] = +{ + 0, 88, 88, 89, 90, 95, 94, 106, 120, 121, + 125, 131, 140, 141, 142, 143, 148, 147, 159, 175, + 176, 180, 181, 186, 185, 197, 198, 202, 206, 212, + 218, 224, 230, 241, 242, 246, 247, 251, 252, 256, + 262, 268, 274, 280, 289, 298, 310, 314, 318, 322, + 326, 330, 334, 338, 342, 346, 350, 354, 358, 362, + 366, 370, 374, 378, 385, 386, 390, 394, 398, 402, + 406, 410, 414, 422, 421, 433, 439, 452 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE +/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "INTEGER", "REAL", "STRING", "HEX_STRING", + "IDENTIFIER", "KW_DCLASS", "KW_INT8", "KW_INT16", "KW_INT32", + "KW_INT64", "KW_UINT8", "KW_UINT16", "KW_UINT32", "KW_UINT64", + "KW_FLOAT64", "KW_STRING", "KW_BLOB", "KW_INT8ARRAY", "KW_INT16ARRAY", + "KW_INT32ARRAY", "KW_UINT8ARRAY", "KW_UINT16ARRAY", "KW_UINT32ARRAY", + "KW_UINT32UINT8ARRAY", "KW_MOL", "KW_REQUIRED", "KW_BROADCAST", + "KW_P2P", "KW_RAM", "KW_DB", "KW_CLSEND", "KW_CLRECV", "KW_OWNSEND", + "';'", "'{'", "'}'", "':'", "','", "'('", "')'", "'/'", "'='", "'*'", + "$accept", "dc", "dclass", "@1", "dclass_name", "dclass_derivation", + "base_list", "dclass_fields", "atomic_field", "@2", "atomic_name", + "parameter_list", "nonempty_parameter_list", "atomic_element", "@3", + "atomic_element_definition", "default_array", "maybe_comma", + "default_array_def", "default_array_element", "type_token", + "atomic_flags", "molecular_field", "@4", "molecular_atom_list", "empty", 0 +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const unsigned short yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 59, 123, 125, 58, + 44, 40, 41, 47, 61, 42 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const unsigned char yyr1[] = +{ + 0, 46, 47, 47, 47, 49, 48, 50, 51, 51, + 52, 52, 53, 53, 53, 53, 55, 54, 56, 57, + 57, 58, 58, 60, 59, 61, 61, 61, 61, 61, + 61, 61, 61, 62, 62, 63, 63, 64, 64, 65, + 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 67, 67, 67, 67, 67, 67, + 67, 67, 67, 69, 68, 70, 70, 71 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const unsigned char yyr2[] = +{ + 0, 2, 1, 2, 2, 0, 7, 1, 1, 2, + 1, 3, 1, 2, 2, 2, 0, 6, 1, 1, + 1, 1, 3, 0, 3, 1, 3, 2, 3, 3, + 3, 3, 5, 1, 2, 1, 1, 1, 3, 1, + 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, + 2, 2, 2, 0, 4, 1, 3, 0 +}; + +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const unsigned char yydefact[] = +{ + 77, 0, 2, 1, 0, 3, 4, 5, 77, 0, + 0, 8, 7, 10, 9, 77, 0, 0, 12, 11, + 0, 13, 6, 14, 15, 73, 16, 0, 77, 18, + 75, 74, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 0, 20, 21, 23, 19, 0, 77, 0, 77, 76, + 17, 64, 22, 24, 25, 65, 66, 67, 68, 69, + 70, 71, 72, 27, 0, 0, 26, 28, 29, 30, + 31, 77, 39, 40, 41, 42, 0, 77, 37, 33, + 0, 0, 0, 32, 36, 34, 35, 43, 44, 45, + 38 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const yysigned_char yydefgoto[] = +{ + -1, 1, 6, 8, 13, 10, 14, 17, 23, 28, + 30, 50, 51, 52, 58, 63, 86, 95, 87, 88, + 53, 60, 24, 27, 31, 2 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -36 +static const yysigned_char yypact[] = +{ + -36, 3, -36, -36, -2, -36, -36, -36, -31, 2, + -27, -36, -36, -36, -11, -36, 2, -5, -36, -36, + -35, -36, -36, -36, -36, -36, -36, 23, 42, -36, + -36, -4, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -10, 0, -36, -36, -36, 23, -36, 42, -36, -36, + -7, -36, -36, -6, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, 31, 9, -36, -36, -36, -36, + -36, 13, -3, -1, -36, 4, 5, 1, -36, -36, + 32, 44, 66, -36, 13, -36, -36, -36, -36, -36, + -36 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yysigned_char yypgoto[] = +{ + -36, -36, -36, -36, 29, -36, -36, -36, -36, -36, + 15, -36, -36, 14, -36, -36, -36, -36, -36, -22, + -36, -36, -36, -36, -36, -8 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + 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. */ +#define YYTABLE_NINF -1 +static const unsigned char yytable[] = +{ + 11, 73, 20, 3, 25, 7, 26, 18, 9, 12, + 15, 4, 77, 78, 79, 80, 82, 83, 84, 85, + 54, 65, 66, 67, 68, 69, 70, 71, 72, 16, + 29, 21, 56, 22, 76, 97, 55, 74, 75, 5, + 57, 94, 90, 93, 91, 19, 81, 98, 61, 92, + 64, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 99, + 59, 62, 100, 89, 0, 0, 0, 0, 0, 96 +}; + +static const yysigned_char yycheck[] = +{ + 8, 7, 7, 0, 39, 7, 41, 15, 39, 7, + 37, 8, 3, 4, 5, 6, 3, 4, 5, 6, + 28, 28, 29, 30, 31, 32, 33, 34, 35, 40, + 7, 36, 42, 38, 3, 3, 40, 43, 44, 36, + 40, 40, 45, 38, 45, 16, 37, 3, 56, 45, + 58, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 3, + 55, 57, 94, 81, -1, -1, -1, -1, -1, 87 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const unsigned char yystos[] = +{ + 0, 47, 71, 0, 8, 36, 48, 7, 49, 39, + 51, 71, 7, 50, 52, 37, 40, 53, 71, 50, + 7, 36, 38, 54, 68, 39, 41, 69, 55, 7, + 56, 70, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 57, 58, 59, 66, 71, 40, 42, 40, 60, 56, + 67, 71, 59, 61, 71, 28, 29, 30, 31, 32, + 33, 34, 35, 7, 43, 44, 3, 3, 4, 5, + 6, 37, 3, 4, 5, 6, 62, 64, 65, 71, + 45, 45, 45, 38, 40, 63, 71, 3, 3, 3, + 65 +}; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ @@ -464,29 +585,34 @@ union yyalloc #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 +#define YYEMPTY (-2) #define YYEOF 0 + #define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab +#define YYABORT goto yyabortlab #define YYERROR goto yyerrlab1 + /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ + #define YYFAIL goto yyerrlab + #define YYRECOVERING() (!!yyerrstatus) + #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { \ yychar = (Token); \ yylval = (Value); \ - yychar1 = YYTRANSLATE (yychar); \ + yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { \ - yyerror ("syntax error: cannot back up"); \ + yyerror ("syntax error: cannot back up");\ YYERROR; \ } \ while (0) @@ -494,41 +620,24 @@ while (0) #define YYTERROR 1 #define YYERRCODE 256 - /* YYLLOC_DEFAULT -- Compute the default location (before the actions - 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. */ + are run). */ #ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + Current.first_line = Rhs[1].first_line; \ + Current.first_column = Rhs[1].first_column; \ + Current.last_line = Rhs[N].last_line; \ + Current.last_column = Rhs[N].last_column; #endif - /* YYLEX -- calling `yylex' with the right arguments. */ -#if YYPURE -# if YYLSP_NEEDED -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -# else -# 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 */ - +#ifdef YYLEX_PARAM +# define YYLEX yylex (YYLEX_PARAM) +#else +# define YYLEX yylex () +#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -543,13 +652,93 @@ do { \ if (yydebug) \ YYFPRINTF Args; \ } 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 yylineno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", + yyrule - 1, yylineno); + /* 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 multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # 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 */ + /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 @@ -569,8 +758,10 @@ int yydebug; #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif + -#ifdef YYERROR_VERBOSE + +#if YYERROR_VERBOSE # ifndef yystrlen # if defined (__GLIBC__) && defined (_STRING_H) @@ -620,86 +811,134 @@ yystpcpy (yydest, yysrc) } # 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 - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ +#if defined (__STDC__) || defined (__cplusplus) +static void +yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) +#else +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 # if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL +int yyparse (void *YYPARSE_PARAM); # else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; +int yyparse (); # endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) int yyparse (void); -# endif +#else +int yyparse (); #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. */ \ + +/* The lookahead symbol. */ +int yychar; + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval; + +/* Number of syntax errors so far. */ int yynerrs; -#if YYLSP_NEEDED -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES \ - \ -/* Location data for the lookahead symbol. */ \ -YYLTYPE yylloc; -#else -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES -#endif -/* If nonreentrant, generate the variables here. */ - -#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 -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - /* If reentrant, generate the variables here. */ -#if YYPURE - YY_DECL_VARIABLES -#endif /* !YYPURE */ +yyparse (void) +#else +int +yyparse () +#endif +#endif +{ + register int yystate; register int yyn; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Lookahead token as an internal (translated) token number. */ - int yychar1 = 0; + int yytoken = 0; /* Three stacks and their tools: `yyss': related to states, @@ -709,7 +948,7 @@ yyparse (YYPARSE_PARAM_ARG) Refer to the stacks thru separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ + /* The state stack. */ short yyssa[YYINITDEPTH]; short *yyss = yyssa; register short *yyssp; @@ -719,31 +958,19 @@ yyparse (YYPARSE_PARAM_ARG) YYSTYPE *yyvs = yyvsa; 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; - /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; -#if YYLSP_NEEDED - YYLTYPE yyloc; -#endif + /* When reducing, the number of symbols on the RHS of the reduced - rule. */ + rule. */ int yylen; YYDPRINTF ((stderr, "Starting parse\n")); @@ -760,9 +987,7 @@ yyparse (YYPARSE_PARAM_ARG) yyssp = yyss; yyvsp = yyvs; -#if YYLSP_NEEDED - yylsp = yyls; -#endif + goto yysetstate; /*------------------------------------------------------------. @@ -777,7 +1002,7 @@ yyparse (YYPARSE_PARAM_ARG) yysetstate: *yyssp = yystate; - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; @@ -790,24 +1015,17 @@ yyparse (YYPARSE_PARAM_ARG) YYSTYPE *yyvs1 = yyvs; short *yyss1 = yyss; + /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. */ -# if YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; - /* This used to be a conditional around just the two extra args, - but that might be undefined if yyoverflow is a macro. */ + data in use in that stack, in bytes. 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", &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), - &yyls1, yysize * sizeof (*yylsp), + &yystacksize); - yyls = yyls1; -# else - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); -# endif + yyss = yyss1; yyvs = yyvs1; } @@ -816,10 +1034,10 @@ yyparse (YYPARSE_PARAM_ARG) goto yyoverflowlab; # else /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) + if (YYMAXDEPTH <= yystacksize) goto yyoverflowlab; yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) + if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { @@ -830,10 +1048,8 @@ yyparse (YYPARSE_PARAM_ARG) goto yyoverflowlab; YYSTACK_RELOCATE (yyss); YYSTACK_RELOCATE (yyvs); -# if YYLSP_NEEDED - YYSTACK_RELOCATE (yyls); -# endif -# undef YYSTACK_RELOCATE + +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -842,14 +1058,12 @@ yyparse (YYPARSE_PARAM_ARG) yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; -#if YYLSP_NEEDED - yylsp = yyls + yysize - 1; -#endif + YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) YYABORT; } @@ -857,7 +1071,6 @@ yyparse (YYPARSE_PARAM_ARG) goto yybackup; - /*-----------. | yybackup. | `-----------*/ @@ -870,88 +1083,55 @@ yybackup: /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; - if (yyn == YYFLAG) + if (yyn == YYPACT_NINF) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ + if (yychar <= YYEOF) { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - + yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { - yychar1 = YYTRANSLATE (yychar); - -#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 + yytoken = YYTRANSLATE (yychar); + YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); } - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; - yyn = yytable[yyn]; - - /* 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 <= 0) { - if (yyn == YYFLAG) + if (yyn == 0 || yyn == YYTABLE_NINF) goto yyerrlab; yyn = -yyn; goto yyreduce; } - else if (yyn == 0) - goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); + YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif + /* Count tokens shifted since error; after three, turn off error status. */ @@ -982,42 +1162,20 @@ yyreduce: /* If YYLEN is nonzero, implement the default value of the action: `$$ = $1'. - Otherwise, the following line sets YYVAL to the semantic value of - the lookahead token. This behavior is undocumented and Bison + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ 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 - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) + YY_REDUCE_PRINT (yyn); + switch (yyn) { - int yyi; - - 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 4: + case 5: #line 95 "dcParser.yxx" -{ + { current_class = new DCClass; current_class->_name = yyvsp[0].str; if (!dc_file->add_class(current_class)) { @@ -1025,9 +1183,10 @@ case 4: } } break; -case 6: + + case 7: #line 107 "dcParser.yxx" -{ + { DCFile::ClassesByName::const_iterator ni; ni = dc_file->_classes_by_name.find(yyvsp[0].str); if (ni == dc_file->_classes_by_name.end()) { @@ -1038,25 +1197,28 @@ case 6: } } break; -case 9: + + case 10: #line 126 "dcParser.yxx" -{ + { if (yyvsp[0].u.dclass != (DCClass *)NULL) { current_class->_parents.push_back(yyvsp[0].u.dclass); } } break; -case 10: + + case 11: #line 132 "dcParser.yxx" -{ + { if (yyvsp[0].u.dclass != (DCClass *)NULL) { current_class->_parents.push_back(yyvsp[0].u.dclass); } } break; -case 15: + + case 16: #line 148 "dcParser.yxx" -{ + { current_atomic = new DCAtomicField; current_atomic->_name = yyvsp[-1].str; if (!current_class->add_field(current_atomic)) { @@ -1064,9 +1226,10 @@ case 15: } } break; -case 17: + + case 18: #line 160 "dcParser.yxx" -{ + { DCField *field = current_class->get_field_by_name(yyvsp[0].str); yyval.u.atomic = (DCAtomicField *)NULL; if (field == (DCField *)NULL) { @@ -1079,66 +1242,75 @@ case 17: } } break; -case 22: + + case 23: #line 186 "dcParser.yxx" -{ + { atomic_element = DCAtomicField::ElementType(); atomic_element._type = yyvsp[0].u.subatomic; } break; -case 23: + + case 24: #line 191 "dcParser.yxx" -{ + { current_atomic->_elements.push_back(atomic_element); } break; -case 25: + + case 26: #line 199 "dcParser.yxx" -{ + { atomic_element._divisor = yyvsp[0].u.integer; } break; -case 26: + + case 27: #line 203 "dcParser.yxx" -{ + { atomic_element._name = yyvsp[0].str; } break; -case 27: + + case 28: #line 207 "dcParser.yxx" -{ + { if (!atomic_element.set_default_value(yyvsp[0].u.integer)) { yyerror("Invalid default value: " + yyvsp[0].str); } } break; -case 28: + + case 29: #line 213 "dcParser.yxx" -{ + { if (!atomic_element.set_default_value(yyvsp[0].u.real)) { yyerror("Invalid default value: " + yyvsp[0].str); } } break; -case 29: + + case 30: #line 219 "dcParser.yxx" -{ + { if (!atomic_element.set_default_value(yyvsp[0].str)) { yyerror("Invalid default value: \"" + yyvsp[0].str + "\""); } } break; -case 30: + + case 31: #line 225 "dcParser.yxx" -{ + { if (!atomic_element.set_default_value_literal(yyvsp[0].str)) { yyerror("Invalid default hex string value"); } } break; -case 31: + + case 32: #line 231 "dcParser.yxx" -{ + { if (!atomic_element.end_array()) { yyerror("Array default value inappropriate"); } else { @@ -1146,41 +1318,46 @@ case 31: } } break; -case 38: + + case 39: #line 257 "dcParser.yxx" -{ + { if (!atomic_element.add_default_value(yyvsp[0].u.integer)) { yyerror("Invalid default value: " + yyvsp[0].str); } } break; -case 39: + + case 40: #line 263 "dcParser.yxx" -{ + { if (!atomic_element.add_default_value(yyvsp[0].u.real)) { yyerror("Invalid default value: " + yyvsp[0].str); } } break; -case 40: + + case 41: #line 269 "dcParser.yxx" -{ + { if (!atomic_element.add_default_value(yyvsp[0].str)) { yyerror("Invalid default value: " + yyvsp[0].str); } } break; -case 41: + + case 42: #line 275 "dcParser.yxx" -{ + { if (!atomic_element.add_default_value_literal(yyvsp[0].str)) { yyerror("Invalid hex literal in default array"); } } break; -case 42: + + case 43: #line 281 "dcParser.yxx" -{ + { for (int i = 0; i < yyvsp[0].u.integer; i++) { if (!atomic_element.add_default_value(yyvsp[-2].u.integer)) { yyerror("Invalid default value: " + yyvsp[-2].str); @@ -1189,9 +1366,10 @@ case 42: } } break; -case 43: + + case 44: #line 290 "dcParser.yxx" -{ + { for (int i = 0; i < yyvsp[0].u.integer; i++) { if (!atomic_element.add_default_value(yyvsp[-2].u.real)) { yyerror("Invalid default value: " + yyvsp[-2].str); @@ -1200,9 +1378,10 @@ case 43: } } break; -case 44: + + case 45: #line 299 "dcParser.yxx" -{ + { for (int i = 0; i < yyvsp[0].u.integer; i++) { if (!atomic_element.add_default_value_literal(yyvsp[-2].str)) { yyerror("Invalid hex literal in default array"); @@ -1211,165 +1390,192 @@ case 44: } } break; -case 45: + + case 46: #line 311 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_int8; } break; -case 46: + + case 47: #line 315 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_int16; } break; -case 47: + + case 48: #line 319 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_int32; } break; -case 48: + + case 49: #line 323 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_int64; } break; -case 49: + + case 50: #line 327 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_uint8; } break; -case 50: + + case 51: #line 331 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_uint16; } break; -case 51: + + case 52: #line 335 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_uint32; } break; -case 52: + + case 53: #line 339 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_uint64; } break; -case 53: + + case 54: #line 343 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_float64; } break; -case 54: + + case 55: #line 347 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_string; } break; -case 55: + + case 56: #line 351 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_blob; } break; -case 56: + + case 57: #line 355 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_int8array; } break; -case 57: + + case 58: #line 359 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_int16array; } break; -case 58: + + case 59: #line 363 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_int32array; } break; -case 59: + + case 60: #line 367 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_uint8array; } break; -case 60: + + case 61: #line 371 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_uint16array; } break; -case 61: + + case 62: #line 375 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_uint32array; } break; -case 62: + + case 63: #line 379 "dcParser.yxx" -{ + { yyval.u.subatomic = ST_uint32uint8array; } break; -case 64: + + case 65: #line 387 "dcParser.yxx" -{ + { current_atomic->_flags |= DCAtomicField::F_required; } break; -case 65: + + case 66: #line 391 "dcParser.yxx" -{ + { current_atomic->_flags |= DCAtomicField::F_broadcast; } break; -case 66: + + case 67: #line 395 "dcParser.yxx" -{ + { current_atomic->_flags |= DCAtomicField::F_p2p; } break; -case 67: + + case 68: #line 399 "dcParser.yxx" -{ + { current_atomic->_flags |= DCAtomicField::F_ram; } break; -case 68: + + case 69: #line 403 "dcParser.yxx" -{ + { current_atomic->_flags |= DCAtomicField::F_db; } break; -case 69: + + case 70: #line 407 "dcParser.yxx" -{ + { current_atomic->_flags |= DCAtomicField::F_clsend; } break; -case 70: + + case 71: #line 411 "dcParser.yxx" -{ + { current_atomic->_flags |= DCAtomicField::F_clrecv; } break; -case 71: + + case 72: #line 415 "dcParser.yxx" -{ + { current_atomic->_flags |= DCAtomicField::F_ownsend; } break; -case 72: + + case 73: #line 422 "dcParser.yxx" -{ + { current_molecular = new DCMolecularField; current_molecular->_name = yyvsp[-1].str; if (!current_class->add_field(current_molecular)) { @@ -1377,17 +1583,19 @@ case 72: } } break; -case 74: + + case 75: #line 434 "dcParser.yxx" -{ + { if (yyvsp[0].u.atomic != (DCAtomicField *)NULL) { current_molecular->_fields.push_back(yyvsp[0].u.atomic); } } break; -case 75: + + case 76: #line 440 "dcParser.yxx" -{ + { if (yyvsp[0].u.atomic != (DCAtomicField *)NULL) { current_molecular->_fields.push_back(yyvsp[0].u.atomic); if (current_molecular->_fields[0]->_flags != yyvsp[0].u.atomic->_flags) { @@ -1398,32 +1606,21 @@ case 75: } } break; -} -#line 705 "/usr/share/bison/bison.simple" + } + +/* Line 991 of yacc.c. */ +#line 1614 "y.tab.c" yyvsp -= 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; -#if YYLSP_NEEDED - *++yylsp = yyloc; -#endif + /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule @@ -1431,11 +1628,11 @@ case 75: yyn = yyr1[yyn]; - yystate = yypgoto[yyn - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else - yystate = yydefgoto[yyn - YYNTBASE]; + yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; @@ -1448,13 +1645,13 @@ yyerrlab: if (!yyerrstatus) { ++yynerrs; - -#ifdef YYERROR_VERBOSE +#if YYERROR_VERBOSE yyn = yypact[yystate]; - if (yyn > YYFLAG && yyn < YYLAST) + if (YYPACT_NINF < yyn && yyn < YYLAST) { YYSIZE_T yysize = 0; + int yytype = YYTRANSLATE (yychar); char *yymsg; int yyx, yycount; @@ -1463,15 +1660,15 @@ yyerrlab: YYCHECK. */ for (yyx = yyn < 0 ? -yyn : 0; yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) - if (yycheck[yyx + yyn] == yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); + yysize += yystrlen ("syntax error, unexpected ") + 1; + yysize += yystrlen (yytname[yytype]); yymsg = (char *) YYSTACK_ALLOC (yysize); if (yymsg != 0) { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); - yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); + char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); + yyp = yystpcpy (yyp, yytname[yytype]); if (yycount < 5) { @@ -1479,7 +1676,7 @@ yyerrlab: for (yyx = yyn < 0 ? -yyn : 0; yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) - if (yycheck[yyx + yyn] == yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { const char *yyq = ! yycount ? ", expecting " : " or "; yyp = yystpcpy (yyp, yyq); @@ -1491,102 +1688,92 @@ yyerrlab: YYSTACK_FREE (yymsg); } else - yyerror ("parse error; also virtual memory exhausted"); + yyerror ("syntax error; also virtual memory exhausted"); } else -#endif /* defined (YYERROR_VERBOSE) */ - yyerror ("parse error"); +#endif /* YYERROR_VERBOSE */ + yyerror ("syntax error"); } - goto yyerrlab1; -/*--------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action | -`--------------------------------------------------*/ -yyerrlab1: + if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ - /* return failure if at end of input */ + /* Return failure if at end of input. */ if (yychar == YYEOF) - YYABORT; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); + { + /* Pop the error token. */ + 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; + } /* Else will try to reuse lookahead token after shifting the error token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; + goto yyerrlab2; -/*-------------------------------------------------------------------. -| 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. */ +/*----------------------------------------------------. +| yyerrlab1 -- error raised explicitly by an action. | +`----------------------------------------------------*/ +yyerrlab1: - /* If its default is to accept any token, ok. Otherwise pop it. */ - yyn = yydefact[yystate]; - if (yyn) - goto yydefault; + /* Suppress GCC warning that yyerrlab1 is unused when no action + invokes YYERROR. */ +#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__) + __attribute__ ((__unused__)) #endif + goto yyerrlab2; + + /*---------------------------------------------------------------. -| yyerrpop -- pop the current state because it cannot handle the | -| error token | +| yyerrlab2 -- pop states until the error token can be shifted. | `---------------------------------------------------------------*/ -yyerrpop: - if (yyssp == yyss) - YYABORT; - yyvsp--; - yystate = *--yyssp; -#if YYLSP_NEEDED - yylsp--; -#endif +yyerrlab2: + yyerrstatus = 3; /* Each real token shifted decrements this. */ -#if YYDEBUG - if (yydebug) + for (;;) { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); + yydestruct (yystos[yystate], yyvsp); + yyvsp--; + yystate = *--yyssp; + + YY_STACK_PRINT (yyss, yyssp); } -#endif - -/*--------------. -| yyerrhandle. | -`--------------*/ -yyerrhandle: - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; @@ -1594,9 +1781,7 @@ yyerrhandle: YYDPRINTF ((stderr, "Shifting error token, ")); *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif + yystate = yyn; goto yynewstate; @@ -1616,13 +1801,15 @@ yyabortlab: yyresult = 1; goto yyreturn; -/*---------------------------------------------. -| yyoverflowab -- parser overflow comes here. | -`---------------------------------------------*/ +#ifndef yyoverflow +/*----------------------------------------------. +| yyoverflowlab -- parser overflow comes here. | +`----------------------------------------------*/ yyoverflowlab: yyerror ("parser stack overflow"); yyresult = 2; /* Fall through. */ +#endif yyreturn: #ifndef yyoverflow @@ -1631,4 +1818,6 @@ yyreturn: #endif return yyresult; } -#line 454 "dcParser.yxx" + + + diff --git a/direct/src/dcparser/dcParser.h.prebuilt b/direct/src/dcparser/dcParser.h.prebuilt index 165e9c462d..236f088397 100644 --- a/direct/src/dcparser/dcParser.h.prebuilt +++ b/direct/src/dcparser/dcParser.h.prebuilt @@ -1,41 +1,114 @@ -#ifndef BISON_Y_TAB_H -# define BISON_Y_TAB_H +/* A Bison parser, made by GNU Bison 1.875. */ -# define INTEGER 257 -# define REAL 258 -# define STRING 259 -# define HEX_STRING 260 -# define IDENTIFIER 261 -# define KW_DCLASS 262 -# define KW_INT8 263 -# define KW_INT16 264 -# define KW_INT32 265 -# define KW_INT64 266 -# define KW_UINT8 267 -# define KW_UINT16 268 -# define KW_UINT32 269 -# define KW_UINT64 270 -# define KW_FLOAT64 271 -# define KW_STRING 272 -# define KW_BLOB 273 -# define KW_INT8ARRAY 274 -# define KW_INT16ARRAY 275 -# define KW_INT32ARRAY 276 -# define KW_UINT8ARRAY 277 -# define KW_UINT16ARRAY 278 -# define KW_UINT32ARRAY 279 -# define KW_UINT32UINT8ARRAY 280 -# define KW_MOL 281 -# define KW_REQUIRED 282 -# define KW_BROADCAST 283 -# define KW_P2P 284 -# define KW_RAM 285 -# define KW_DB 286 -# define KW_CLSEND 287 -# define KW_CLRECV 288 -# define KW_OWNSEND 289 +/* Skeleton parser for Yacc-like parsing with Bison, + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software 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. */ + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + INTEGER = 258, + REAL = 259, + STRING = 260, + HEX_STRING = 261, + IDENTIFIER = 262, + KW_DCLASS = 263, + KW_INT8 = 264, + KW_INT16 = 265, + KW_INT32 = 266, + KW_INT64 = 267, + KW_UINT8 = 268, + KW_UINT16 = 269, + KW_UINT32 = 270, + KW_UINT64 = 271, + KW_FLOAT64 = 272, + KW_STRING = 273, + KW_BLOB = 274, + KW_INT8ARRAY = 275, + KW_INT16ARRAY = 276, + KW_INT32ARRAY = 277, + KW_UINT8ARRAY = 278, + KW_UINT16ARRAY = 279, + KW_UINT32ARRAY = 280, + KW_UINT32UINT8ARRAY = 281, + KW_MOL = 282, + KW_REQUIRED = 283, + KW_BROADCAST = 284, + KW_P2P = 285, + KW_RAM = 286, + KW_DB = 287, + KW_CLSEND = 288, + KW_CLRECV = 289, + KW_OWNSEND = 290 + }; +#endif +#define INTEGER 258 +#define REAL 259 +#define STRING 260 +#define HEX_STRING 261 +#define IDENTIFIER 262 +#define KW_DCLASS 263 +#define KW_INT8 264 +#define KW_INT16 265 +#define KW_INT32 266 +#define KW_INT64 267 +#define KW_UINT8 268 +#define KW_UINT16 269 +#define KW_UINT32 270 +#define KW_UINT64 271 +#define KW_FLOAT64 272 +#define KW_STRING 273 +#define KW_BLOB 274 +#define KW_INT8ARRAY 275 +#define KW_INT16ARRAY 276 +#define KW_INT32ARRAY 277 +#define KW_UINT8ARRAY 278 +#define KW_UINT16ARRAY 279 +#define KW_UINT32ARRAY 280 +#define KW_UINT32UINT8ARRAY 281 +#define KW_MOL 282 +#define KW_REQUIRED 283 +#define KW_BROADCAST 284 +#define KW_P2P 285 +#define KW_RAM 286 +#define KW_DB 287 +#define KW_CLSEND 288 +#define KW_CLRECV 289 +#define KW_OWNSEND 290 + + + + +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +typedef int YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif extern YYSTYPE dcyylval; -#endif /* not BISON_Y_TAB_H */ + + diff --git a/panda/src/egg/lexer.cxx.prebuilt b/panda/src/egg/lexer.cxx.prebuilt index d1b8628e23..b0ef8c012b 100644 --- a/panda/src/egg/lexer.cxx.prebuilt +++ b/panda/src/egg/lexer.cxx.prebuilt @@ -1125,7 +1125,7 @@ YY_MALLOC_DECL YY_DECL { register yy_state_type yy_current_state; - register char *yy_cp = NULL, *yy_bp = NULL; + register char *yy_cp, *yy_bp; register int yy_act; #line 290 "lexer.lxx" @@ -2553,6 +2553,11 @@ YY_BUFFER_STATE b; } +#ifndef YY_ALWAYS_INTERACTIVE +#ifndef YY_NEVER_INTERACTIVE +extern int isatty YY_PROTO(( int )); +#endif +#endif #ifdef YY_USE_PROTOS void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) diff --git a/panda/src/egg/parser.cxx.prebuilt b/panda/src/egg/parser.cxx.prebuilt index ba94390d9b..9ca06edd07 100644 --- a/panda/src/egg/parser.cxx.prebuilt +++ b/panda/src/egg/parser.cxx.prebuilt @@ -1,98 +1,238 @@ -/* A Bison parser, made from parser.yxx - by GNU bison 1.35. */ +/* A Bison parser, made by GNU Bison 1.875. */ -#define YYBISON 1 /* Identify Bison output. */ +/* Skeleton parser for Yacc-like parsing with Bison, + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software 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. */ + +/* 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 + +/* If NAME_PREFIX is specified substitute the variables and functions + names. */ #define yyparse eggyyparse -#define yylex eggyylex +#define yylex eggyylex #define yyerror eggyyerror -#define yylval eggyylval -#define yychar eggyychar +#define yylval eggyylval +#define yychar eggyychar #define yydebug eggyydebug #define yynerrs eggyynerrs -# define NUMBER 257 -# define ULONG 258 -# define STRING 259 -# define BEZIERCURVE 260 -# define BFACE 261 -# define BILLBOARD 262 -# define BILLBOARDCENTER 263 -# define BUNDLE 264 -# define CLOSED 265 -# define COLLIDE 266 -# define COMMENT 267 -# define COORDSYSTEM 268 -# define CV 269 -# define DART 270 -# define DNORMAL 271 -# define DRGBA 272 -# define DUV 273 -# define DXYZ 274 -# define DCS 275 -# define DISTANCE 276 -# define DTREF 277 -# define DYNAMICVERTEXPOOL 278 -# define EXTERNAL_FILE 279 -# define FLIGHT 280 -# define GROUP 281 -# define HIP 282 -# define INTANGENT 283 -# define JOINT 284 -# define KNOTS 285 -# define INCLUDE 286 -# define INSTANCE 287 -# define LOOP 288 -# define MATERIAL 289 -# define MATRIX3 290 -# define MATRIX4 291 -# define MODEL 292 -# define MREF 293 -# define NORMAL 294 -# define NURBSCURVE 295 -# define NURBSSURFACE 296 -# define OBJECTTYPE 297 -# define ORDER 298 -# define OUTTANGENT 299 -# define POINTLIGHT 300 -# define POLYGON 301 -# define REF 302 -# define RGBA 303 -# define ROTATE 304 -# define ROTX 305 -# define ROTY 306 -# define ROTZ 307 -# define SANIM 308 -# define SCALAR 309 -# define SCALE 310 -# define SEQUENCE 311 -# define SHADING 312 -# define SWITCH 313 -# define SWITCHCONDITION 314 -# define TABLE 315 -# define TABLE_V 316 -# define TAG 317 -# define TEXLIST 318 -# define TEXTURE 319 -# define TLENGTHS 320 -# define TRANSFORM 321 -# define TRANSLATE 322 -# define TREF 323 -# define TRIM 324 -# define TXT 325 -# define UKNOTS 326 -# define UV 327 -# define VKNOTS 328 -# define VERTEX 329 -# define VERTEXANIM 330 -# define VERTEXPOOL 331 -# define VERTEXREF 332 -# define XFMANIM 333 -# define XFMSANIM 334 -# define START_EGG 335 -# define START_GROUP_BODY 336 -# define START_TEXTURE_BODY 337 -# define START_PRIMITIVE_BODY 338 + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + NUMBER = 258, + ULONG = 259, + STRING = 260, + BEZIERCURVE = 261, + BFACE = 262, + BILLBOARD = 263, + BILLBOARDCENTER = 264, + BUNDLE = 265, + CLOSED = 266, + COLLIDE = 267, + COMMENT = 268, + COORDSYSTEM = 269, + CV = 270, + DART = 271, + DNORMAL = 272, + DRGBA = 273, + DUV = 274, + DXYZ = 275, + DCS = 276, + DISTANCE = 277, + DTREF = 278, + DYNAMICVERTEXPOOL = 279, + EXTERNAL_FILE = 280, + FLIGHT = 281, + GROUP = 282, + HIP = 283, + INTANGENT = 284, + JOINT = 285, + KNOTS = 286, + INCLUDE = 287, + INSTANCE = 288, + LOOP = 289, + MATERIAL = 290, + MATRIX3 = 291, + MATRIX4 = 292, + MODEL = 293, + MREF = 294, + NORMAL = 295, + NURBSCURVE = 296, + NURBSSURFACE = 297, + OBJECTTYPE = 298, + ORDER = 299, + OUTTANGENT = 300, + POINTLIGHT = 301, + POLYGON = 302, + REF = 303, + RGBA = 304, + ROTATE = 305, + ROTX = 306, + ROTY = 307, + ROTZ = 308, + SANIM = 309, + SCALAR = 310, + SCALE = 311, + SEQUENCE = 312, + SHADING = 313, + SWITCH = 314, + SWITCHCONDITION = 315, + TABLE = 316, + TABLE_V = 317, + TAG = 318, + TEXLIST = 319, + TEXTURE = 320, + TLENGTHS = 321, + TRANSFORM = 322, + TRANSLATE = 323, + TREF = 324, + TRIM = 325, + TXT = 326, + UKNOTS = 327, + UV = 328, + VKNOTS = 329, + VERTEX = 330, + VERTEXANIM = 331, + VERTEXPOOL = 332, + VERTEXREF = 333, + XFMANIM = 334, + XFMSANIM = 335, + START_EGG = 336, + START_GROUP_BODY = 337, + START_TEXTURE_BODY = 338, + START_PRIMITIVE_BODY = 339 + }; +#endif +#define NUMBER 258 +#define ULONG 259 +#define STRING 260 +#define BEZIERCURVE 261 +#define BFACE 262 +#define BILLBOARD 263 +#define BILLBOARDCENTER 264 +#define BUNDLE 265 +#define CLOSED 266 +#define COLLIDE 267 +#define COMMENT 268 +#define COORDSYSTEM 269 +#define CV 270 +#define DART 271 +#define DNORMAL 272 +#define DRGBA 273 +#define DUV 274 +#define DXYZ 275 +#define DCS 276 +#define DISTANCE 277 +#define DTREF 278 +#define DYNAMICVERTEXPOOL 279 +#define EXTERNAL_FILE 280 +#define FLIGHT 281 +#define GROUP 282 +#define HIP 283 +#define INTANGENT 284 +#define JOINT 285 +#define KNOTS 286 +#define INCLUDE 287 +#define INSTANCE 288 +#define LOOP 289 +#define MATERIAL 290 +#define MATRIX3 291 +#define MATRIX4 292 +#define MODEL 293 +#define MREF 294 +#define NORMAL 295 +#define NURBSCURVE 296 +#define NURBSSURFACE 297 +#define OBJECTTYPE 298 +#define ORDER 299 +#define OUTTANGENT 300 +#define POINTLIGHT 301 +#define POLYGON 302 +#define REF 303 +#define RGBA 304 +#define ROTATE 305 +#define ROTX 306 +#define ROTY 307 +#define ROTZ 308 +#define SANIM 309 +#define SCALAR 310 +#define SCALE 311 +#define SEQUENCE 312 +#define SHADING 313 +#define SWITCH 314 +#define SWITCHCONDITION 315 +#define TABLE 316 +#define TABLE_V 317 +#define TAG 318 +#define TEXLIST 319 +#define TEXTURE 320 +#define TLENGTHS 321 +#define TRANSFORM 322 +#define TRANSLATE 323 +#define TREF 324 +#define TRIM 325 +#define TXT 326 +#define UKNOTS 327 +#define UV 328 +#define VKNOTS 329 +#define VERTEX 330 +#define VERTEXANIM 331 +#define VERTEXPOOL 332 +#define VERTEXREF 333 +#define XFMANIM 334 +#define XFMSANIM 335 +#define START_EGG 336 +#define START_GROUP_BODY 337 +#define START_TEXTURE_BODY 338 +#define START_PRIMITIVE_BODY 339 + + + + +/* Copy the first part of user declarations. */ #line 6 "parser.yxx" @@ -199,820 +339,37 @@ egg_cleanup_parser() { materials.clear(); } + + +/* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif - - -#define YYFINAL 683 -#define YYFLAG -32768 -#define YYNTBASE 87 - -/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ -#define YYTRANSLATE(x) ((unsigned)(x) <= 338 ? yytranslate[x] : 196) - -/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ -static const char yytranslate[] = -{ - 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, - 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, 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, 85, 2, 86, 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, 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, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84 -}; - -#if YYDEBUG -static const short yyprhs[] = -{ - 0, 0, 3, 6, 9, 12, 14, 17, 19, 21, - 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, - 43, 45, 50, 56, 57, 65, 67, 74, 77, 78, - 85, 87, 94, 100, 107, 108, 115, 117, 120, 121, - 127, 128, 135, 137, 140, 144, 149, 155, 161, 167, - 176, 185, 188, 196, 204, 208, 217, 226, 231, 241, - 251, 252, 259, 260, 267, 268, 275, 277, 284, 290, - 298, 306, 312, 318, 324, 330, 336, 342, 348, 355, - 361, 364, 367, 370, 373, 375, 377, 380, 381, 387, - 389, 392, 395, 398, 401, 404, 407, 410, 417, 422, - 427, 432, 440, 447, 452, 457, 459, 476, 477, 483, - 485, 488, 491, 494, 497, 503, 508, 514, 519, 521, - 531, 541, 543, 550, 555, 567, 580, 581, 588, 589, - 596, 597, 604, 605, 612, 614, 620, 626, 632, 635, - 641, 647, 653, 660, 662, 668, 674, 680, 683, 689, - 695, 701, 707, 713, 719, 722, 728, 735, 737, 743, - 749, 755, 758, 764, 770, 776, 782, 788, 795, 797, - 799, 801, 805, 814, 823, 828, 838, 848, 850, 859, - 862, 864, 866, 868, 874, 876, 879, 881, 883, 884, - 891, 892, 899, 901, 904, 907, 910, 913, 916, 917, - 924, 926, 933, 939, 940, 947, 949, 956, 962, 963, - 970, 972, 979, 982, 984, 987, 989, 992, 994, 996, - 998, 1000, 1002, 1004, 1006, 1008, 1010, 1012, 1014, 1016, - 1018, 1020, 1022, 1024, 1027, 1029, 1031, 1033, 1035, 1037, - 1039, 1041 -}; -static const short yyrhs[] = -{ - 81, 88, 0, 82, 115, 0, 83, 94, 0, 84, - 149, 0, 195, 0, 88, 89, 0, 90, 0, 91, - 0, 92, 0, 95, 0, 98, 0, 99, 0, 109, - 0, 111, 0, 113, 0, 141, 0, 143, 0, 145, - 0, 147, 0, 166, 0, 14, 85, 187, 86, 0, - 13, 186, 85, 190, 86, 0, 0, 65, 185, 85, - 187, 93, 94, 86, 0, 195, 0, 94, 55, 185, - 85, 193, 86, 0, 94, 129, 0, 0, 35, 185, - 85, 96, 97, 86, 0, 195, 0, 97, 55, 185, - 85, 193, 86, 0, 25, 186, 85, 187, 86, 0, - 189, 25, 186, 85, 187, 86, 0, 0, 77, 185, - 100, 85, 101, 86, 0, 195, 0, 101, 102, 0, - 0, 75, 103, 85, 105, 86, 0, 0, 75, 194, - 104, 85, 105, 86, 0, 192, 0, 192, 192, 0, - 192, 192, 192, 0, 192, 192, 192, 192, 0, 105, - 73, 85, 106, 86, 0, 105, 40, 85, 107, 86, - 0, 105, 49, 85, 108, 86, 0, 105, 20, 189, - 85, 192, 192, 192, 86, 0, 105, 20, 85, 189, - 192, 192, 192, 86, 0, 192, 192, 0, 106, 19, - 189, 85, 192, 192, 86, 0, 106, 19, 85, 189, - 192, 192, 86, 0, 192, 192, 192, 0, 107, 17, - 189, 85, 192, 192, 192, 86, 0, 107, 17, 85, - 189, 192, 192, 192, 86, 0, 192, 192, 192, 192, - 0, 108, 18, 189, 85, 192, 192, 192, 192, 86, - 0, 108, 18, 85, 189, 192, 192, 192, 192, 86, - 0, 0, 27, 186, 110, 85, 115, 86, 0, 0, - 30, 186, 112, 85, 115, 86, 0, 0, 33, 186, - 114, 85, 115, 86, 0, 195, 0, 115, 55, 185, - 85, 193, 86, 0, 115, 8, 85, 189, 86, 0, - 115, 9, 85, 192, 192, 192, 86, 0, 115, 12, - 186, 85, 116, 117, 86, 0, 115, 21, 85, 194, - 86, 0, 115, 21, 85, 5, 86, 0, 115, 16, - 85, 194, 86, 0, 115, 16, 85, 5, 86, 0, - 115, 59, 85, 194, 86, 0, 115, 43, 85, 187, - 86, 0, 115, 38, 85, 194, 86, 0, 115, 63, - 186, 85, 190, 86, 0, 115, 64, 85, 194, 86, - 0, 115, 118, 0, 115, 137, 0, 115, 139, 0, - 115, 89, 0, 189, 0, 195, 0, 117, 189, 0, - 0, 67, 119, 85, 120, 86, 0, 195, 0, 120, - 121, 0, 120, 122, 0, 120, 123, 0, 120, 124, - 0, 120, 125, 0, 120, 126, 0, 120, 127, 0, - 68, 85, 192, 192, 192, 86, 0, 51, 85, 192, - 86, 0, 52, 85, 192, 86, 0, 53, 85, 192, - 86, 0, 50, 85, 192, 192, 192, 192, 86, 0, - 56, 85, 192, 192, 192, 86, 0, 56, 85, 192, - 86, 0, 37, 85, 128, 86, 0, 195, 0, 192, - 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 0, 0, 67, 130, 85, - 131, 86, 0, 195, 0, 131, 135, 0, 131, 132, - 0, 131, 133, 0, 131, 134, 0, 68, 85, 192, - 192, 86, 0, 50, 85, 192, 86, 0, 56, 85, - 192, 192, 86, 0, 36, 85, 136, 86, 0, 195, - 0, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 0, 78, 85, 180, 138, 48, 85, 184, 86, 86, - 0, 195, 0, 138, 55, 185, 85, 193, 86, 0, - 60, 85, 140, 86, 0, 22, 85, 192, 192, 75, - 85, 192, 192, 192, 86, 86, 0, 22, 85, 192, - 192, 192, 75, 85, 192, 192, 192, 86, 86, 0, - 0, 47, 186, 142, 85, 149, 86, 0, 0, 46, - 186, 144, 85, 149, 86, 0, 0, 42, 186, 146, - 85, 150, 86, 0, 0, 41, 186, 148, 85, 151, - 86, 0, 195, 0, 149, 69, 85, 152, 86, 0, - 149, 65, 85, 153, 86, 0, 149, 39, 85, 154, - 86, 0, 149, 158, 0, 149, 40, 85, 155, 86, - 0, 149, 49, 85, 156, 86, 0, 149, 7, 85, - 157, 86, 0, 149, 55, 185, 85, 193, 86, 0, - 195, 0, 150, 69, 85, 152, 86, 0, 150, 65, - 85, 153, 86, 0, 150, 39, 85, 154, 86, 0, - 150, 158, 0, 150, 40, 85, 155, 86, 0, 150, - 49, 85, 156, 86, 0, 150, 7, 85, 157, 86, - 0, 150, 44, 85, 159, 86, 0, 150, 72, 85, - 160, 86, 0, 150, 74, 85, 161, 86, 0, 150, - 147, 0, 150, 70, 85, 162, 86, 0, 150, 55, - 185, 85, 193, 86, 0, 195, 0, 151, 69, 85, - 152, 86, 0, 151, 65, 85, 153, 86, 0, 151, - 39, 85, 154, 86, 0, 151, 158, 0, 151, 40, - 85, 155, 86, 0, 151, 49, 85, 156, 86, 0, - 151, 7, 85, 157, 86, 0, 151, 44, 85, 164, - 86, 0, 151, 31, 85, 165, 86, 0, 151, 55, - 185, 85, 193, 86, 0, 182, 0, 185, 0, 183, - 0, 192, 192, 192, 0, 155, 17, 189, 85, 192, - 192, 192, 86, 0, 155, 17, 85, 189, 192, 192, - 192, 86, 0, 192, 192, 192, 192, 0, 156, 18, - 189, 85, 192, 192, 192, 192, 86, 0, 156, 18, - 85, 189, 192, 192, 192, 192, 86, 0, 194, 0, - 78, 85, 180, 48, 85, 184, 86, 86, 0, 194, - 194, 0, 181, 0, 181, 0, 195, 0, 162, 34, - 85, 163, 86, 0, 195, 0, 163, 147, 0, 194, - 0, 181, 0, 0, 61, 186, 167, 85, 170, 86, - 0, 0, 10, 186, 169, 85, 170, 86, 0, 195, - 0, 170, 166, 0, 170, 168, 0, 170, 171, 0, - 170, 174, 0, 170, 177, 0, 0, 54, 186, 172, - 85, 173, 86, 0, 195, 0, 173, 55, 185, 85, - 193, 86, 0, 173, 62, 85, 181, 86, 0, 0, - 79, 186, 175, 85, 176, 86, 0, 195, 0, 176, - 55, 185, 85, 193, 86, 0, 176, 62, 85, 181, - 86, 0, 0, 80, 186, 178, 85, 179, 86, 0, - 195, 0, 179, 55, 185, 85, 193, 86, 0, 179, - 171, 0, 195, 0, 180, 194, 0, 195, 0, 181, - 192, 0, 185, 0, 185, 0, 185, 0, 195, 0, - 189, 0, 188, 0, 195, 0, 189, 0, 195, 0, - 189, 0, 3, 0, 4, 0, 5, 0, 195, 0, - 191, 0, 189, 0, 191, 189, 0, 3, 0, 4, - 0, 3, 0, 4, 0, 5, 0, 3, 0, 4, - 0, 0 -}; - +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 #endif -#if YYDEBUG -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const short yyrline[] = -{ - 0, 179, 181, 182, 183, 193, 195, 209, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 233, 256, 270, 270, 298, 300, 407, 417, 417, - 444, 446, 540, 548, 567, 567, 595, 597, 607, 607, - 619, 619, 664, 669, 673, 677, 681, 682, 683, 684, - 692, 710, 715, 723, 740, 745, 753, 770, 775, 783, - 800, 800, 820, 820, 841, 841, 862, 864, 918, 930, - 935, 942, 948, 961, 968, 981, 987, 993, 999, 1004, - 1010, 1011, 1012, 1013, 1026, 1048, 1050, 1071, 1071, 1087, - 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1098, 1104, 1110, - 1116, 1122, 1128, 1132, 1138, 1142, 1144, 1165, 1165, 1184, - 1186, 1187, 1188, 1189, 1192, 1198, 1204, 1210, 1213, 1215, - 1233, 1266, 1271, 1295, 1307, 1313, 1329, 1329, 1348, 1348, - 1367, 1367, 1386, 1386, 1406, 1408, 1409, 1410, 1411, 1412, - 1413, 1414, 1415, 1463, 1465, 1466, 1467, 1468, 1469, 1470, - 1471, 1472, 1473, 1474, 1475, 1481, 1482, 1535, 1537, 1538, - 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1604, 1621, - 1661, 1678, 1683, 1691, 1708, 1713, 1721, 1738, 1754, 1785, - 1803, 1823, 1843, 1849, 1859, 1866, 1884, 1900, 1921, 1921, - 1943, 1943, 1965, 1967, 1971, 1975, 1979, 1983, 1997, 1997, - 2018, 2020, 2032, 2045, 2045, 2066, 2068, 2085, 2098, 2098, - 2119, 2121, 2136, 2150, 2155, 2168, 2173, 2186, 2207, 2228, - 2250, 2256, 2267, 2279, 2285, 2295, 2300, 2313, 2318, 2322, - 2334, 2339, 2354, 2359, 2372, 2374, 2388, 2395, 2401, 2417, - 2426, 2432 -}; +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +typedef int YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 #endif -#if (YYDEBUG) || defined YYERROR_VERBOSE -/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */ -static const char *const yytname[] = -{ - "$", "error", "$undefined.", "NUMBER", "ULONG", "STRING", "BEZIERCURVE", - "BFACE", "BILLBOARD", "BILLBOARDCENTER", "BUNDLE", "CLOSED", "COLLIDE", - "COMMENT", "COORDSYSTEM", "CV", "DART", "DNORMAL", "DRGBA", "DUV", - "DXYZ", "DCS", "DISTANCE", "DTREF", "DYNAMICVERTEXPOOL", - "EXTERNAL_FILE", "FLIGHT", "GROUP", "HIP", "INTANGENT", "JOINT", - "KNOTS", "INCLUDE", "INSTANCE", "LOOP", "MATERIAL", "MATRIX3", - "MATRIX4", "MODEL", "MREF", "NORMAL", "NURBSCURVE", "NURBSSURFACE", - "OBJECTTYPE", "ORDER", "OUTTANGENT", "POINTLIGHT", "POLYGON", "REF", - "RGBA", "ROTATE", "ROTX", "ROTY", "ROTZ", "SANIM", "SCALAR", "SCALE", - "SEQUENCE", "SHADING", "SWITCH", "SWITCHCONDITION", "TABLE", "TABLE_V", - "TAG", "TEXLIST", "TEXTURE", "TLENGTHS", "TRANSFORM", "TRANSLATE", - "TREF", "TRIM", "TXT", "UKNOTS", "UV", "VKNOTS", "VERTEX", "VERTEXANIM", - "VERTEXPOOL", "VERTEXREF", "XFMANIM", "XFMSANIM", "START_EGG", - "START_GROUP_BODY", "START_TEXTURE_BODY", "START_PRIMITIVE_BODY", "'{'", - "'}'", "grammar", "egg", "node", "coordsystem", "comment", "texture", - "@1", "texture_body", "material", "@2", "material_body", - "external_reference", "vertex_pool", "@3", "vertex_pool_body", "vertex", - "@4", "@5", "vertex_body", "vertex_uv_body", "vertex_normal_body", - "vertex_color_body", "group", "@6", "joint", "@7", "instance", "@8", - "group_body", "cs_type", "collide_flags", "transform_3d", "@9", - "transform_3d_body", "translate_3d", "rotx_3d", "roty_3d", "rotz_3d", - "rotate_3d", "scale_3d", "matrix4_3d", "matrix4_3d_body", - "transform_2d", "@10", "transform_2d_body", "translate_2d", "rotate_2d", - "scale_2d", "matrix3_2d", "matrix3_2d_body", "group_vertex_ref", - "group_vertex_membership", "switchcondition", "switchcondition_body", - "polygon", "@11", "point_light", "@12", "nurbs_surface", "@13", - "nurbs_curve", "@14", "primitive_body", "nurbs_surface_body", - "nurbs_curve_body", "primitive_tref_body", "primitive_texture_body", - "primitive_material_body", "primitive_normal_body", - "primitive_color_body", "primitive_bface_body", "primitive_vertex_ref", - "nurbs_surface_order_body", "nurbs_surface_uknots_body", - "nurbs_surface_vknots_body", "nurbs_surface_trim_body", - "nurbs_surface_trim_loop_body", "nurbs_curve_order_body", - "nurbs_curve_knots_body", "table", "@15", "bundle", "@16", "table_body", - "sanim", "@17", "sanim_body", "xfmanim", "@18", "xfmanim_body", - "xfm_s_anim", "@19", "xfm_s_anim_body", "integer_list", "real_list", - "texture_name", "material_name", "vertex_pool_name", "required_name", - "optional_name", "required_string", "optional_string", "string", - "repeated_string", "repeated_string_body", "real", "real_or_string", - "integer", "empty", 0 -}; -#endif - -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const short yyr1[] = -{ - 0, 87, 87, 87, 87, 88, 88, 89, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, - 89, 90, 91, 93, 92, 94, 94, 94, 96, 95, - 97, 97, 98, 98, 100, 99, 101, 101, 103, 102, - 104, 102, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 106, 106, 106, 107, 107, 107, 108, 108, 108, - 110, 109, 112, 111, 114, 113, 115, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 115, 115, 115, 116, 117, 117, 119, 118, 120, - 120, 120, 120, 120, 120, 120, 120, 121, 122, 123, - 124, 125, 126, 126, 127, 128, 128, 130, 129, 131, - 131, 131, 131, 131, 132, 133, 134, 135, 136, 136, - 137, 138, 138, 139, 140, 140, 142, 141, 144, 143, - 146, 145, 148, 147, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, 152, 153, - 154, 155, 155, 155, 156, 156, 156, 157, 158, 159, - 160, 161, 162, 162, 163, 163, 164, 165, 167, 166, - 169, 168, 170, 170, 170, 170, 170, 170, 172, 171, - 173, 173, 173, 175, 174, 176, 176, 176, 178, 177, - 179, 179, 179, 180, 180, 181, 181, 182, 183, 184, - 185, 185, 186, 187, 187, 188, 188, 189, 189, 189, - 190, 190, 191, 191, 192, 192, 193, 193, 193, 194, - 194, 195 -}; - -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const short yyr2[] = -{ - 0, 2, 2, 2, 2, 1, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 5, 0, 7, 1, 6, 2, 0, 6, - 1, 6, 5, 6, 0, 6, 1, 2, 0, 5, - 0, 6, 1, 2, 3, 4, 5, 5, 5, 8, - 8, 2, 7, 7, 3, 8, 8, 4, 9, 9, - 0, 6, 0, 6, 0, 6, 1, 6, 5, 7, - 7, 5, 5, 5, 5, 5, 5, 5, 6, 5, - 2, 2, 2, 2, 1, 1, 2, 0, 5, 1, - 2, 2, 2, 2, 2, 2, 2, 6, 4, 4, - 4, 7, 6, 4, 4, 1, 16, 0, 5, 1, - 2, 2, 2, 2, 5, 4, 5, 4, 1, 9, - 9, 1, 6, 4, 11, 12, 0, 6, 0, 6, - 0, 6, 0, 6, 1, 5, 5, 5, 2, 5, - 5, 5, 6, 1, 5, 5, 5, 2, 5, 5, - 5, 5, 5, 5, 2, 5, 6, 1, 5, 5, - 5, 2, 5, 5, 5, 5, 5, 6, 1, 1, - 1, 3, 8, 8, 4, 9, 9, 1, 8, 2, - 1, 1, 1, 5, 1, 2, 1, 1, 0, 6, - 0, 6, 1, 2, 2, 2, 2, 2, 0, 6, - 1, 6, 5, 0, 6, 1, 6, 5, 0, 6, - 1, 6, 2, 1, 2, 1, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 0 -}; - -/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE - doesn't specify something else to do. Zero means the default is an - error. */ -static const short yydefact[] = -{ - 0, 241, 241, 241, 241, 1, 5, 2, 66, 3, - 25, 4, 134, 227, 228, 229, 241, 0, 241, 241, - 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 0, 0, 0, 241, 0, - 0, 0, 0, 241, 0, 0, 241, 0, 87, 0, - 83, 80, 81, 82, 241, 107, 27, 0, 0, 0, - 0, 241, 0, 0, 0, 138, 0, 222, 226, 225, - 241, 0, 60, 62, 64, 0, 221, 220, 132, 130, - 128, 126, 188, 0, 34, 241, 0, 0, 0, 0, - 0, 0, 241, 0, 0, 0, 0, 0, 0, 241, - 0, 0, 0, 241, 0, 0, 0, 241, 241, 241, - 241, 0, 224, 223, 241, 0, 0, 0, 28, 0, - 0, 0, 0, 0, 241, 0, 0, 0, 234, 235, - 0, 0, 239, 240, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 241, 0, 241, 241, 213, 0, - 241, 0, 177, 0, 170, 218, 0, 0, 0, 0, - 0, 0, 169, 0, 168, 217, 0, 232, 0, 231, - 230, 21, 0, 241, 241, 241, 241, 241, 241, 241, - 241, 241, 23, 241, 241, 68, 0, 241, 84, 74, - 73, 72, 71, 77, 76, 236, 237, 238, 0, 75, - 0, 123, 0, 79, 0, 89, 0, 214, 121, 0, - 0, 109, 141, 137, 0, 139, 0, 0, 140, 0, - 0, 136, 135, 0, 22, 233, 32, 0, 0, 0, - 0, 30, 0, 157, 0, 143, 0, 0, 0, 192, - 241, 0, 36, 0, 0, 0, 85, 67, 0, 78, - 0, 0, 0, 0, 0, 0, 0, 88, 90, 91, - 92, 93, 94, 95, 96, 0, 241, 26, 0, 0, - 0, 0, 108, 111, 112, 113, 110, 0, 0, 171, - 0, 0, 0, 142, 241, 61, 63, 65, 241, 29, - 0, 0, 0, 0, 0, 0, 241, 0, 0, 133, - 161, 0, 0, 0, 0, 0, 241, 0, 0, 0, - 0, 0, 131, 154, 147, 129, 127, 241, 241, 241, - 241, 189, 193, 194, 195, 196, 197, 0, 38, 35, - 37, 33, 69, 70, 86, 0, 241, 0, 0, 0, - 0, 0, 0, 241, 0, 241, 0, 0, 0, 0, - 0, 0, 0, 174, 0, 219, 0, 0, 241, 241, - 0, 0, 0, 0, 241, 241, 0, 241, 0, 0, - 0, 0, 241, 241, 241, 241, 241, 190, 198, 203, - 208, 24, 0, 40, 0, 0, 0, 0, 105, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 215, 0, 0, 0, 186, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 182, 0, 180, 0, 181, 0, 0, 0, 0, - 0, 0, 0, 0, 104, 0, 0, 98, 99, 100, - 103, 0, 0, 0, 0, 117, 0, 115, 0, 0, - 0, 0, 0, 0, 178, 0, 164, 166, 216, 160, - 162, 165, 163, 0, 159, 158, 150, 146, 148, 151, - 179, 149, 0, 145, 144, 0, 155, 152, 153, 241, - 241, 241, 241, 0, 42, 0, 0, 0, 0, 0, - 0, 0, 120, 122, 0, 116, 114, 0, 0, 0, - 0, 31, 167, 156, 241, 0, 0, 200, 0, 205, - 0, 210, 0, 0, 0, 0, 39, 43, 0, 0, - 0, 0, 0, 102, 97, 0, 173, 172, 0, 0, - 0, 184, 191, 241, 0, 199, 241, 0, 204, 241, - 209, 212, 0, 0, 0, 0, 0, 44, 41, 0, - 0, 0, 101, 0, 176, 175, 183, 185, 0, 241, - 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 0, 0, 48, 0, 0, - 46, 51, 124, 0, 0, 0, 0, 202, 0, 207, - 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, - 0, 125, 0, 0, 201, 206, 211, 0, 0, 0, - 0, 0, 0, 57, 0, 0, 0, 119, 50, 49, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 53, 52, - 0, 56, 55, 0, 0, 0, 59, 58, 0, 0, - 106, 0, 0, 0 -}; - -static const short yydefgoto[] = -{ - 681, 5, 60, 31, 32, 33, 250, 9, 34, 186, - 240, 35, 36, 135, 251, 340, 392, 451, 503, 589, - 585, 587, 37, 125, 38, 126, 39, 127, 7, 197, - 255, 61, 108, 214, 268, 269, 270, 271, 272, 273, - 274, 396, 66, 111, 220, 283, 284, 285, 286, 407, - 62, 216, 63, 153, 40, 132, 41, 131, 42, 130, - 43, 129, 11, 244, 242, 173, 171, 163, 166, 168, - 161, 75, 434, 442, 444, 440, 550, 425, 420, 44, - 133, 333, 446, 248, 334, 447, 526, 335, 448, 528, - 336, 449, 530, 157, 421, 174, 164, 364, 165, 76, - 121, 77, 86, 178, 179, 478, 208, 162, 87 -}; - -static const short yypact[] = -{ - 230,-32768,-32768,-32768,-32768, 739,-32768, 1168,-32768, 26, - -32768, 148,-32768,-32768,-32768,-32768, 248, -3, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768, 73, 16, 38, 248, 62, - 84, 110, 125, 248, 131, 135, 248, 150,-32768, 156, - -32768,-32768,-32768,-32768, 248,-32768,-32768, 158, 162, 170, - 172, 248, 174, 176, 178,-32768, 195,-32768,-32768,-32768, - 248, 198,-32768,-32768,-32768, 201,-32768,-32768,-32768,-32768, - -32768,-32768,-32768, 203,-32768, 248, 248, 262, 204, 269, - 288, 273, 248, 211, 273, 223, 214, 273, 219,-32768, - 225, 244, 273, 248, 262, 262, 245, 248, 248,-32768, - 248, -8,-32768,-32768, 248, 246, 247, 249,-32768, 252, - 253, 254, 255, 256, 248, 257, 266, 98,-32768,-32768, - 262, 248,-32768,-32768, 276, 281, 283, 285, 286, 287, - 316, 289, 267, 291, 248, 293,-32768, 273,-32768, 316, - -32768, 294,-32768, 295,-32768,-32768, -7, 262, 10, 262, - 316, 296,-32768, 297,-32768,-32768, 104,-32768, 298, 248, - -32768,-32768, 299,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768, 248,-32768, 262,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 300,-32768, - 262,-32768, 301,-32768, 250,-32768, 56,-32768,-32768, 302, - 107,-32768,-32768,-32768, 37,-32768, 262, 41,-32768, 262, - 303,-32768,-32768, 305,-32768,-32768,-32768, 864, 1004, 1071, - 32,-32768, 93,-32768, 137,-32768, 189, 229, 151,-32768, - -32768, 53,-32768, 306, 307, 31,-32768,-32768, 262,-32768, - 309, 311, 313, 314, 315, 318, 319,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768, 320, 248,-32768, 322, 323, - 330, 331,-32768,-32768,-32768,-32768,-32768, 248, 332,-32768, - 248, 333, 262,-32768, 248,-32768,-32768,-32768, 248,-32768, - 334, 335, 336, 337, 338, 339, 248, 340, 341,-32768, - -32768, 342, 343, 344, 345, 346, 248, 347, 348, 349, - 350, 351,-32768,-32768,-32768,-32768,-32768, 248, 248, 248, - 248,-32768,-32768,-32768,-32768,-32768,-32768, 99, 273,-32768, - -32768,-32768,-32768,-32768,-32768, 5, 262, 262, 262, 262, - 262, 262, 262, 248, 352, 262, 262, 262, 262, 262, - 262, 262, 262,-32768, 353,-32768, 356, 273,-32768, 248, - 262, 273, 262, 358, 248, 248, 273, 248, 262, 273, - 262, 359, 248, 248,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768, 361,-32768, 362, 258, 363, 262,-32768, 262, - 369, 370, 371, 20, 262, 372, 316, 375, 262,-32768, - 376, 262, 262, 262, 262, 262, 262, 377, 316, 379, - 380, 262,-32768, 381, 0, 386,-32768, 49, 316, 387, - 388, 389, 391, 30, 392, 273, 59, 316, 393, 394, - 19,-32768, 395, 262, 396, 262, 398, 399, 400, 401, - 262, 403, 262, 404,-32768, 262, 262,-32768,-32768,-32768, - -32768, 262, 262, 405, 406,-32768, 262,-32768, 407, 409, - 262, 262, 262, 262,-32768, 410,-32768,-32768,-32768,-32768, - -32768,-32768,-32768, 411,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768, 412,-32768,-32768, 414,-32768,-32768,-32768,-32768, - -32768,-32768,-32768, 54, 262, 262, 262, 262, 262, 262, - 415, 422,-32768,-32768, 262,-32768,-32768, 424, 425, 262, - 262,-32768,-32768,-32768,-32768, 160, 118,-32768, 163,-32768, - 55,-32768, 45, 428, 429, 430,-32768, 262, 222, 262, - 262, 262, 433,-32768,-32768, 262,-32768,-32768, 434, 435, - 48,-32768,-32768, 248, 431,-32768, 248, 437,-32768, 248, - -32768,-32768, 248, 438, 262, 262, 262, 262,-32768, 439, - 262, 262,-32768, 262,-32768,-32768,-32768,-32768, 441,-32768, - 443,-32768, 444, 262, 262, 35, 262, 70, 262, 39, - 262,-32768, 445, 446, 262, 262, 316, 28, 316, 34, - 316, 262, 262, 61,-32768, 262, 65,-32768, 262, 68, - -32768,-32768,-32768, 447, 262, 262, 448,-32768, 450,-32768, - 456, 262, 262, 248, 459,-32768, 248, 460, 262, 248, - 461,-32768, 262, 262,-32768,-32768,-32768, 462, 463, 262, - 262, 262, 262,-32768, 262, 262, 262,-32768,-32768,-32768, - 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, - 262, 464, 465, 262, 466, 467, 262, 262,-32768,-32768, - 262,-32768,-32768, 468, 469, 262,-32768,-32768, 262, 262, - -32768, 374, 490,-32768 -}; - -static const short yypgoto[] = -{ - -32768,-32768, 495,-32768,-32768,-32768,-32768, 85,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -114,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 143,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -241,-32768, 127,-32768,-32768, -224, -214, -205, -188, -189, - -291, -44,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -244, - -32768,-32768,-32768, 25, -21,-32768,-32768,-32768,-32768,-32768, - -32768,-32768,-32768, 440, -380,-32768,-32768, 177, 423, 36, - -95,-32768, -5, 402,-32768, -2, -158, -74, 668 -}; +/* Copy the second part of user declarations. */ -#define YYLAST 1249 +/* Line 214 of yacc.c. */ +#line 370 "y.tab.c" - -static const short yytable[] = -{ - 45, 219, 45, 323, 332, 443, 445, 149, 138, 139, - 224, 78, 230, 78, 78, 78, 78, 224, 78, 78, - 78, 78, 78, 138, 139, 145, 147, 148, 227, 182, - 151, 138, 139, 155, 13, 14, 15, 138, 139, 192, - 13, 14, 15, 78, 13, 14, 15, 224, 13, 14, - 15, 78, 603, 495, 81, 82, 83, 84, 609, 88, - 89, 90, 91, 92, 13, 14, 15, 227, 13, 14, - 15, 13, 14, 15, 532, 122, 419, 227, 181, 225, - 394, 64, 80, 217, 98, 431, 480, 298, 606, 23, - 78, 137, 106, 65, 533, 140, 228, 122, 95, 253, - 300, 96, 217, 534, 275, 496, 460, 142, 143, 328, - 559, 276, 167, 169, 617, 177, 488, 343, 299, 122, - 619, 604, 287, 97, 301, 610, 290, 535, 338, 122, - 562, 136, 302, 303, 576, 482, 198, 304, 196, 339, - 536, 560, 305, 278, 311, 491, 623, 99, 306, 177, - 626, 430, 233, 629, 64, 67, 607, 279, 307, 439, - 429, 327, 308, 280, 423, 226, 65, 229, 438, 100, - 327, 74, 432, 553, 235, 281, 312, 313, 23, 309, - 554, 314, 424, 427, 195, 391, 315, 68, 69, 122, - 433, 436, 316, 282, 254, 101, 67, 70, 310, 597, - 324, 599, 317, 71, 555, 328, 318, 319, 258, 320, - 102, 321, 27, 72, 328, 74, 104, 73, 556, 288, - 105, 27, 291, 322, 289, 557, 74, 292, 68, 69, - 329, 330, 45, 45, 45, 107, 67, 331, 70, 329, - 330, 109, 532, 112, 71, 152, 552, 113, 464, 558, - 344, 13, 14, 15, 72, 114, 345, 115, 73, 117, - 475, 118, 533, 119, 393, 138, 139, 74, 68, 69, - 483, 534, 142, 143, 144, 325, 142, 143, 70, 492, - 120, 332, 359, 124, 71, 361, 128, 260, 134, 141, - 363, 142, 143, 146, 72, 535, 150, 426, 73, 154, - 261, 262, 263, 264, 156, 435, 265, 74, 568, 577, - 159, 1, 2, 3, 4, 326, 246, 247, 266, 205, - 206, 207, 78, 78, 78, 78, 237, 238, 239, 160, - 170, 183, 184, 453, 185, 337, 267, 187, 188, 189, - 190, 191, 193, 395, 397, 399, 400, 401, 402, 403, - 404, 194, 210, 408, 410, 411, 412, 413, 414, 415, - 416, 490, 199, 387, 388, 389, 390, 200, 167, 201, - 169, 202, 203, 204, 682, 209, 167, 211, 169, 213, - 222, 223, 231, 232, 234, 236, 257, 259, 277, 293, - 294, 538, 341, 342, 346, 455, 347, 456, 348, 349, - 350, 461, 462, 351, 352, 353, 466, 355, 356, 468, - 469, 470, 471, 472, 473, 357, 358, 360, 362, 367, - 368, 369, 370, 371, 372, 374, 375, 376, 377, 378, - 379, 380, 382, 383, 384, 385, 386, 406, 616, 417, - 618, 418, 620, 428, 437, 85, 450, 452, 504, 454, - 506, 93, 94, 508, 509, 457, 458, 459, 463, 510, - 511, 465, 467, 474, 514, 476, 477, 479, 517, 518, - 519, 520, 481, 484, 485, 486, 103, 487, 489, 493, - 494, 497, 498, 499, 500, 501, 502, 110, 505, 507, - 683, 512, 513, 515, 116, 516, 521, 522, 523, 524, - 30, 543, 537, 504, 539, 540, 541, 542, 544, 561, - 546, 547, 545, 564, 565, 566, 579, 548, 549, 572, - 574, 575, 581, 584, 525, 592, 596, 563, 598, 600, - 405, 612, 613, 631, 634, 567, 635, 569, 570, 571, - 172, 175, 636, 573, 640, 642, 645, 0, 648, 649, - 668, 669, 671, 672, 676, 677, 212, 583, 0, 176, - 0, 0, 586, 588, 590, 591, 0, 0, 593, 594, - 0, 595, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 601, 602, 0, 605, 0, 608, 0, 611, 0, - 0, 0, 614, 615, 0, 0, 0, 0, 624, 621, - 622, 627, 0, 625, 630, 0, 628, 0, 0, 0, - 0, 0, 632, 633, 0, 0, 0, 0, 639, 637, - 638, 641, 0, 0, 644, 0, 643, 0, 0, 0, - 646, 647, 0, 0, 0, 0, 0, 650, 651, 652, - 653, 0, 654, 655, 656, 0, 0, 0, 657, 658, - 659, 660, 661, 662, 663, 664, 665, 666, 667, 0, - 0, 670, 0, 0, 673, 674, 0, 0, 675, 6, - 8, 10, 12, 678, 0, 0, 679, 680, 0, 0, - 0, 0, 0, 0, 79, 0, 79, 79, 79, 79, - 0, 79, 79, 79, 79, 79, 0, 0, 0, 354, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 79, 365, 0, 0, - 0, 366, 0, 0, 79, 0, 0, 0, 0, 373, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 381, - 0, 0, 13, 14, 15, 0, 0, 0, 123, 0, - 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 79, 18, 0, 19, 0, 0, 20, - 123, 0, 21, 0, 22, 0, 365, 158, 0, 0, - 23, 24, 0, 0, 0, 25, 26, 158, 180, 0, - 0, 0, 123, 0, 0, 0, 0, 172, 175, 0, - 27, 0, 123, 0, 28, 172, 175, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, - 0, 0, 180, 0, 215, 218, 0, 0, 221, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 8, 8, 241, 243, 245, 12, 12, 249, - 0, 252, 123, 0, 0, 256, 0, 13, 14, 15, - 0, 0, 46, 47, 0, 0, 48, 16, 17, 0, - 49, 0, 0, 0, 0, 50, 0, 0, 0, 18, - 0, 19, 0, 0, 20, 0, 0, 21, 0, 22, - 0, 0, 51, 0, 0, 23, 24, 52, 0, 0, - 25, 26, 0, 0, 0, 0, 0, 0, 10, 53, - 0, 0, 0, 54, 55, 27, 0, 56, 57, 28, - 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 29, 59, 0, 0, 0, 0, 0, 0, 0, - 295, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 578, 0, 0, 580, - 0, 0, 582, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 79, 79, 79, 79, 0, - 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, - 0, 0, 46, 47, 398, 0, 48, 16, 17, 0, - 49, 0, 0, 409, 0, 50, 0, 0, 0, 18, - 0, 19, 0, 0, 20, 0, 422, 21, 0, 22, - 0, 0, 51, 0, 0, 23, 24, 52, 0, 0, - 25, 26, 441, 422, 422, 0, 0, 0, 0, 53, - 0, 0, 0, 54, 55, 27, 0, 56, 57, 28, - 0, 58, 0, 0, 13, 14, 15, 0, 0, 46, - 47, 29, 59, 48, 16, 17, 0, 49, 0, 0, - 296, 0, 50, 0, 0, 0, 18, 0, 19, 0, - 0, 20, 0, 0, 21, 0, 22, 0, 0, 51, - 0, 0, 23, 24, 52, 0, 0, 25, 26, 0, - 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, - 54, 55, 27, 0, 56, 57, 28, 0, 58, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 29, 59, - 0, 0, 0, 0, 0, 0, 0, 297, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 249, 527, 529, - 531, 13, 14, 15, 0, 0, 46, 47, 0, 0, - 48, 16, 17, 0, 49, 0, 0, 0, 0, 50, - 0, 0, 551, 18, 0, 19, 0, 0, 20, 0, - 0, 21, 0, 22, 0, 0, 51, 0, 0, 23, - 24, 52, 0, 0, 25, 26, 0, 0, 0, 0, - 0, 0, 0, 53, 0, 0, 0, 54, 55, 27, - 0, 56, 57, 28, 0, 58, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 29, 59, 422, 0, 422 -}; - -static const short yycheck[] = -{ - 5, 159, 7, 244, 248, 385, 386, 102, 3, 4, - 17, 16, 170, 18, 19, 20, 21, 17, 23, 24, - 25, 26, 27, 3, 4, 99, 100, 101, 18, 124, - 104, 3, 4, 107, 3, 4, 5, 3, 4, 134, - 3, 4, 5, 48, 3, 4, 5, 17, 3, 4, - 5, 56, 17, 34, 18, 19, 20, 21, 19, 23, - 24, 25, 26, 27, 3, 4, 5, 18, 3, 4, - 5, 3, 4, 5, 20, 80, 367, 18, 86, 86, - 75, 55, 85, 157, 48, 376, 86, 55, 18, 41, - 95, 96, 56, 67, 40, 97, 86, 102, 25, 194, - 7, 85, 176, 49, 48, 86, 86, 3, 4, 54, - 55, 55, 114, 115, 86, 120, 86, 86, 86, 124, - 86, 86, 85, 85, 31, 86, 85, 73, 75, 134, - 85, 95, 39, 40, 86, 86, 141, 44, 140, 86, - 86, 86, 49, 36, 7, 86, 85, 85, 55, 154, - 85, 375, 48, 85, 55, 7, 86, 50, 65, 383, - 374, 10, 69, 56, 369, 167, 67, 169, 382, 85, - 10, 78, 377, 55, 179, 68, 39, 40, 41, 86, - 62, 44, 370, 372, 86, 86, 49, 39, 40, 194, - 378, 380, 55, 86, 196, 85, 7, 49, 242, 579, - 244, 581, 65, 55, 86, 54, 69, 70, 210, 72, - 85, 74, 61, 65, 54, 78, 85, 69, 55, 224, - 85, 61, 227, 86, 226, 62, 78, 229, 39, 40, - 79, 80, 237, 238, 239, 85, 7, 86, 49, 79, - 80, 85, 20, 85, 55, 22, 86, 85, 406, 86, - 255, 3, 4, 5, 65, 85, 258, 85, 69, 85, - 418, 85, 40, 85, 338, 3, 4, 78, 39, 40, - 428, 49, 3, 4, 5, 86, 3, 4, 49, 437, - 85, 525, 287, 85, 55, 290, 85, 37, 85, 85, - 292, 3, 4, 5, 65, 73, 85, 371, 69, 85, - 50, 51, 52, 53, 85, 379, 56, 78, 86, 550, - 85, 81, 82, 83, 84, 86, 189, 190, 68, 3, - 4, 5, 327, 328, 329, 330, 183, 184, 185, 85, - 85, 85, 85, 75, 85, 250, 86, 85, 85, 85, - 85, 85, 85, 345, 346, 347, 348, 349, 350, 351, - 352, 85, 85, 355, 356, 357, 358, 359, 360, 361, - 362, 435, 86, 327, 328, 329, 330, 86, 370, 86, - 372, 86, 86, 86, 0, 86, 378, 86, 380, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 85, 505, 86, 86, 85, 397, 85, 399, 85, 85, - 85, 403, 404, 85, 85, 85, 408, 85, 85, 411, - 412, 413, 414, 415, 416, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 596, 86, - 598, 85, 600, 85, 85, 22, 85, 85, 450, 86, - 452, 28, 29, 455, 456, 86, 86, 86, 86, 461, - 462, 86, 86, 86, 466, 86, 86, 86, 470, 471, - 472, 473, 86, 86, 86, 86, 53, 86, 86, 86, - 86, 86, 86, 85, 85, 85, 85, 64, 85, 85, - 0, 86, 86, 86, 71, 86, 86, 86, 86, 85, - 5, 86, 504, 505, 506, 507, 508, 509, 86, 530, - 86, 86, 514, 85, 85, 85, 85, 519, 520, 86, - 86, 86, 85, 85, 499, 86, 85, 532, 85, 85, - 353, 86, 86, 86, 86, 537, 86, 539, 540, 541, - 117, 118, 86, 545, 85, 85, 85, -1, 86, 86, - 86, 86, 86, 86, 86, 86, 154, 562, -1, 119, - -1, -1, 564, 565, 566, 567, -1, -1, 570, 571, - -1, 573, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 583, 584, -1, 586, -1, 588, -1, 590, -1, - -1, -1, 594, 595, -1, -1, -1, -1, 603, 601, - 602, 606, -1, 605, 609, -1, 608, -1, -1, -1, - -1, -1, 614, 615, -1, -1, -1, -1, 623, 621, - 622, 626, -1, -1, 629, -1, 628, -1, -1, -1, - 632, 633, -1, -1, -1, -1, -1, 639, 640, 641, - 642, -1, 644, 645, 646, -1, -1, -1, 650, 651, - 652, 653, 654, 655, 656, 657, 658, 659, 660, -1, - -1, 663, -1, -1, 666, 667, -1, -1, 670, 1, - 2, 3, 4, 675, -1, -1, 678, 679, -1, -1, - -1, -1, -1, -1, 16, -1, 18, 19, 20, 21, - -1, 23, 24, 25, 26, 27, -1, -1, -1, 276, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 48, 294, -1, -1, - -1, 298, -1, -1, 56, -1, -1, -1, -1, 306, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 316, - -1, -1, 3, 4, 5, -1, -1, -1, 80, -1, - -1, -1, 13, 14, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 95, 25, -1, 27, -1, -1, 30, - 102, -1, 33, -1, 35, -1, 353, 109, -1, -1, - 41, 42, -1, -1, -1, 46, 47, 119, 120, -1, - -1, -1, 124, -1, -1, -1, -1, 374, 375, -1, - 61, -1, 134, -1, 65, 382, 383, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, - -1, -1, 154, -1, 156, 157, -1, -1, 160, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 183, 184, 185, 186, 187, 188, 189, 190, 191, - -1, 193, 194, -1, -1, 197, -1, 3, 4, 5, - -1, -1, 8, 9, -1, -1, 12, 13, 14, -1, - 16, -1, -1, -1, -1, 21, -1, -1, -1, 25, - -1, 27, -1, -1, 30, -1, -1, 33, -1, 35, - -1, -1, 38, -1, -1, 41, 42, 43, -1, -1, - 46, 47, -1, -1, -1, -1, -1, -1, 250, 55, - -1, -1, -1, 59, 60, 61, -1, 63, 64, 65, - -1, 67, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 77, 78, -1, -1, -1, -1, -1, -1, -1, - 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 553, -1, -1, 556, - -1, -1, 559, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 327, 328, 329, 330, -1, - -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, - -1, -1, 8, 9, 346, -1, 12, 13, 14, -1, - 16, -1, -1, 355, -1, 21, -1, -1, -1, 25, - -1, 27, -1, -1, 30, -1, 368, 33, -1, 35, - -1, -1, 38, -1, -1, 41, 42, 43, -1, -1, - 46, 47, 384, 385, 386, -1, -1, -1, -1, 55, - -1, -1, -1, 59, 60, 61, -1, 63, 64, 65, - -1, 67, -1, -1, 3, 4, 5, -1, -1, 8, - 9, 77, 78, 12, 13, 14, -1, 16, -1, -1, - 86, -1, 21, -1, -1, -1, 25, -1, 27, -1, - -1, 30, -1, -1, 33, -1, 35, -1, -1, 38, - -1, -1, 41, 42, 43, -1, -1, 46, 47, -1, - -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, - 59, 60, 61, -1, 63, 64, 65, -1, 67, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 77, 78, - -1, -1, -1, -1, -1, -1, -1, 86, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 499, 500, 501, - 502, 3, 4, 5, -1, -1, 8, 9, -1, -1, - 12, 13, 14, -1, 16, -1, -1, -1, -1, 21, - -1, -1, 524, 25, -1, 27, -1, -1, 30, -1, - -1, 33, -1, 35, -1, -1, 38, -1, -1, 41, - 42, 43, -1, -1, 46, 47, -1, -1, -1, -1, - -1, -1, -1, 55, -1, -1, -1, 59, 60, 61, - -1, 63, 64, 65, -1, 67, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 77, 78, 579, -1, 581 -}; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison/bison.simple" - -/* Skeleton output parser for bison, - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software - 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) +#if ! defined (yyoverflow) || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -1041,37 +398,28 @@ static const short yycheck[] = # define YYSTACK_ALLOC malloc # define YYSTACK_FREE free # endif -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ +#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ #if (! defined (yyoverflow) \ && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { short yyss; YYSTYPE yyvs; -# if YYLSP_NEEDED - YYLTYPE yyls; -# endif -}; + }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (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) \ +# define YYSTACK_BYTES(N) \ ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) -# endif + + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ @@ -1102,13 +450,900 @@ union yyalloc YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) #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 14 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 1252 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 87 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 110 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 242 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 683 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 339 + +#define YYTRANSLATE(YYX) \ + ((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, + 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, 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, 85, 2, 86, 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, 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, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84 +}; + +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const unsigned short yyprhs[] = +{ + 0, 0, 3, 6, 9, 12, 15, 17, 20, 22, + 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, + 44, 46, 48, 53, 59, 60, 68, 70, 77, 80, + 81, 88, 90, 97, 103, 110, 111, 118, 120, 123, + 124, 130, 131, 138, 140, 143, 147, 152, 158, 164, + 170, 179, 188, 191, 199, 207, 211, 220, 229, 234, + 244, 254, 255, 262, 263, 270, 271, 278, 280, 287, + 293, 301, 309, 315, 321, 327, 333, 339, 345, 351, + 358, 364, 367, 370, 373, 376, 378, 380, 383, 384, + 390, 392, 395, 398, 401, 404, 407, 410, 413, 420, + 425, 430, 435, 443, 450, 455, 460, 462, 479, 480, + 486, 488, 491, 494, 497, 500, 506, 511, 517, 522, + 524, 534, 544, 546, 553, 558, 570, 583, 584, 591, + 592, 599, 600, 607, 608, 615, 617, 623, 629, 635, + 638, 644, 650, 656, 663, 665, 671, 677, 683, 686, + 692, 698, 704, 710, 716, 722, 725, 731, 738, 740, + 746, 752, 758, 761, 767, 773, 779, 785, 791, 798, + 800, 802, 804, 808, 817, 826, 831, 841, 851, 853, + 862, 865, 867, 869, 871, 877, 879, 882, 884, 886, + 887, 894, 895, 902, 904, 907, 910, 913, 916, 919, + 920, 927, 929, 936, 942, 943, 950, 952, 959, 965, + 966, 973, 975, 982, 985, 987, 990, 992, 995, 997, + 999, 1001, 1003, 1005, 1007, 1009, 1011, 1013, 1015, 1017, + 1019, 1021, 1023, 1025, 1027, 1030, 1032, 1034, 1036, 1038, + 1040, 1042, 1044 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const short yyrhs[] = +{ + 88, 0, -1, 81, 89, -1, 82, 116, -1, 83, + 95, -1, 84, 150, -1, 196, -1, 89, 90, -1, + 91, -1, 92, -1, 93, -1, 96, -1, 99, -1, + 100, -1, 110, -1, 112, -1, 114, -1, 142, -1, + 144, -1, 146, -1, 148, -1, 167, -1, 14, 85, + 188, 86, -1, 13, 187, 85, 191, 86, -1, -1, + 65, 186, 85, 188, 94, 95, 86, -1, 196, -1, + 95, 55, 186, 85, 194, 86, -1, 95, 130, -1, + -1, 35, 186, 85, 97, 98, 86, -1, 196, -1, + 98, 55, 186, 85, 194, 86, -1, 25, 187, 85, + 188, 86, -1, 190, 25, 187, 85, 188, 86, -1, + -1, 77, 186, 101, 85, 102, 86, -1, 196, -1, + 102, 103, -1, -1, 75, 104, 85, 106, 86, -1, + -1, 75, 195, 105, 85, 106, 86, -1, 193, -1, + 193, 193, -1, 193, 193, 193, -1, 193, 193, 193, + 193, -1, 106, 73, 85, 107, 86, -1, 106, 40, + 85, 108, 86, -1, 106, 49, 85, 109, 86, -1, + 106, 20, 190, 85, 193, 193, 193, 86, -1, 106, + 20, 85, 190, 193, 193, 193, 86, -1, 193, 193, + -1, 107, 19, 190, 85, 193, 193, 86, -1, 107, + 19, 85, 190, 193, 193, 86, -1, 193, 193, 193, + -1, 108, 17, 190, 85, 193, 193, 193, 86, -1, + 108, 17, 85, 190, 193, 193, 193, 86, -1, 193, + 193, 193, 193, -1, 109, 18, 190, 85, 193, 193, + 193, 193, 86, -1, 109, 18, 85, 190, 193, 193, + 193, 193, 86, -1, -1, 27, 187, 111, 85, 116, + 86, -1, -1, 30, 187, 113, 85, 116, 86, -1, + -1, 33, 187, 115, 85, 116, 86, -1, 196, -1, + 116, 55, 186, 85, 194, 86, -1, 116, 8, 85, + 190, 86, -1, 116, 9, 85, 193, 193, 193, 86, + -1, 116, 12, 187, 85, 117, 118, 86, -1, 116, + 21, 85, 195, 86, -1, 116, 21, 85, 5, 86, + -1, 116, 16, 85, 195, 86, -1, 116, 16, 85, + 5, 86, -1, 116, 59, 85, 195, 86, -1, 116, + 43, 85, 188, 86, -1, 116, 38, 85, 195, 86, + -1, 116, 63, 187, 85, 191, 86, -1, 116, 64, + 85, 195, 86, -1, 116, 119, -1, 116, 138, -1, + 116, 140, -1, 116, 90, -1, 190, -1, 196, -1, + 118, 190, -1, -1, 67, 120, 85, 121, 86, -1, + 196, -1, 121, 122, -1, 121, 123, -1, 121, 124, + -1, 121, 125, -1, 121, 126, -1, 121, 127, -1, + 121, 128, -1, 68, 85, 193, 193, 193, 86, -1, + 51, 85, 193, 86, -1, 52, 85, 193, 86, -1, + 53, 85, 193, 86, -1, 50, 85, 193, 193, 193, + 193, 86, -1, 56, 85, 193, 193, 193, 86, -1, + 56, 85, 193, 86, -1, 37, 85, 129, 86, -1, + 196, -1, 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, -1, -1, + 67, 131, 85, 132, 86, -1, 196, -1, 132, 136, + -1, 132, 133, -1, 132, 134, -1, 132, 135, -1, + 68, 85, 193, 193, 86, -1, 50, 85, 193, 86, + -1, 56, 85, 193, 193, 86, -1, 36, 85, 137, + 86, -1, 196, -1, 193, 193, 193, 193, 193, 193, + 193, 193, 193, -1, 78, 85, 181, 139, 48, 85, + 185, 86, 86, -1, 196, -1, 139, 55, 186, 85, + 194, 86, -1, 60, 85, 141, 86, -1, 22, 85, + 193, 193, 75, 85, 193, 193, 193, 86, 86, -1, + 22, 85, 193, 193, 193, 75, 85, 193, 193, 193, + 86, 86, -1, -1, 47, 187, 143, 85, 150, 86, + -1, -1, 46, 187, 145, 85, 150, 86, -1, -1, + 42, 187, 147, 85, 151, 86, -1, -1, 41, 187, + 149, 85, 152, 86, -1, 196, -1, 150, 69, 85, + 153, 86, -1, 150, 65, 85, 154, 86, -1, 150, + 39, 85, 155, 86, -1, 150, 159, -1, 150, 40, + 85, 156, 86, -1, 150, 49, 85, 157, 86, -1, + 150, 7, 85, 158, 86, -1, 150, 55, 186, 85, + 194, 86, -1, 196, -1, 151, 69, 85, 153, 86, + -1, 151, 65, 85, 154, 86, -1, 151, 39, 85, + 155, 86, -1, 151, 159, -1, 151, 40, 85, 156, + 86, -1, 151, 49, 85, 157, 86, -1, 151, 7, + 85, 158, 86, -1, 151, 44, 85, 160, 86, -1, + 151, 72, 85, 161, 86, -1, 151, 74, 85, 162, + 86, -1, 151, 148, -1, 151, 70, 85, 163, 86, + -1, 151, 55, 186, 85, 194, 86, -1, 196, -1, + 152, 69, 85, 153, 86, -1, 152, 65, 85, 154, + 86, -1, 152, 39, 85, 155, 86, -1, 152, 159, + -1, 152, 40, 85, 156, 86, -1, 152, 49, 85, + 157, 86, -1, 152, 7, 85, 158, 86, -1, 152, + 44, 85, 165, 86, -1, 152, 31, 85, 166, 86, + -1, 152, 55, 186, 85, 194, 86, -1, 183, -1, + 186, -1, 184, -1, 193, 193, 193, -1, 156, 17, + 190, 85, 193, 193, 193, 86, -1, 156, 17, 85, + 190, 193, 193, 193, 86, -1, 193, 193, 193, 193, + -1, 157, 18, 190, 85, 193, 193, 193, 193, 86, + -1, 157, 18, 85, 190, 193, 193, 193, 193, 86, + -1, 195, -1, 78, 85, 181, 48, 85, 185, 86, + 86, -1, 195, 195, -1, 182, -1, 182, -1, 196, + -1, 163, 34, 85, 164, 86, -1, 196, -1, 164, + 148, -1, 195, -1, 182, -1, -1, 61, 187, 168, + 85, 171, 86, -1, -1, 10, 187, 170, 85, 171, + 86, -1, 196, -1, 171, 167, -1, 171, 169, -1, + 171, 172, -1, 171, 175, -1, 171, 178, -1, -1, + 54, 187, 173, 85, 174, 86, -1, 196, -1, 174, + 55, 186, 85, 194, 86, -1, 174, 62, 85, 182, + 86, -1, -1, 79, 187, 176, 85, 177, 86, -1, + 196, -1, 177, 55, 186, 85, 194, 86, -1, 177, + 62, 85, 182, 86, -1, -1, 80, 187, 179, 85, + 180, 86, -1, 196, -1, 180, 55, 186, 85, 194, + 86, -1, 180, 172, -1, 196, -1, 181, 195, -1, + 196, -1, 182, 193, -1, 186, -1, 186, -1, 186, + -1, 196, -1, 190, -1, 189, -1, 196, -1, 190, + -1, 196, -1, 190, -1, 3, -1, 4, -1, 5, + -1, 196, -1, 192, -1, 190, -1, 192, 190, -1, + 3, -1, 4, -1, 3, -1, 4, -1, 5, -1, + 3, -1, 4, -1, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const unsigned short yyrline[] = +{ + 0, 180, 180, 181, 182, 183, 194, 195, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 234, 257, 272, 271, 299, 300, 407, 419, + 418, 445, 446, 541, 548, 569, 568, 596, 597, 609, + 608, 620, 619, 665, 669, 673, 677, 681, 682, 683, + 684, 692, 711, 715, 723, 741, 745, 753, 771, 775, + 783, 802, 801, 822, 821, 843, 842, 863, 864, 918, + 930, 935, 942, 948, 961, 968, 981, 987, 993, 999, + 1004, 1010, 1011, 1012, 1013, 1027, 1049, 1050, 1073, 1072, + 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1098, 1104, + 1110, 1116, 1122, 1128, 1132, 1139, 1143, 1144, 1167, 1166, + 1185, 1186, 1187, 1188, 1189, 1192, 1198, 1204, 1210, 1214, + 1215, 1234, 1267, 1271, 1296, 1308, 1313, 1331, 1330, 1350, + 1349, 1369, 1368, 1388, 1387, 1407, 1408, 1409, 1410, 1411, + 1412, 1413, 1414, 1415, 1464, 1465, 1466, 1467, 1468, 1469, + 1470, 1471, 1472, 1473, 1474, 1475, 1481, 1482, 1536, 1537, + 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1605, + 1622, 1662, 1679, 1683, 1691, 1709, 1713, 1721, 1739, 1755, + 1786, 1804, 1824, 1844, 1849, 1860, 1866, 1885, 1901, 1923, + 1922, 1945, 1944, 1966, 1967, 1971, 1975, 1979, 1983, 1999, + 1998, 2019, 2020, 2032, 2047, 2046, 2067, 2068, 2085, 2100, + 2099, 2120, 2121, 2136, 2151, 2155, 2169, 2173, 2187, 2208, + 2229, 2251, 2256, 2268, 2280, 2285, 2296, 2300, 2314, 2318, + 2322, 2335, 2339, 2355, 2359, 2373, 2374, 2389, 2395, 2401, + 2418, 2426, 2432 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE +/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "NUMBER", "ULONG", "STRING", "BEZIERCURVE", + "BFACE", "BILLBOARD", "BILLBOARDCENTER", "BUNDLE", "CLOSED", "COLLIDE", + "COMMENT", "COORDSYSTEM", "CV", "DART", "DNORMAL", "DRGBA", "DUV", + "DXYZ", "DCS", "DISTANCE", "DTREF", "DYNAMICVERTEXPOOL", + "EXTERNAL_FILE", "FLIGHT", "GROUP", "HIP", "INTANGENT", "JOINT", + "KNOTS", "INCLUDE", "INSTANCE", "LOOP", "MATERIAL", "MATRIX3", + "MATRIX4", "MODEL", "MREF", "NORMAL", "NURBSCURVE", "NURBSSURFACE", + "OBJECTTYPE", "ORDER", "OUTTANGENT", "POINTLIGHT", "POLYGON", "REF", + "RGBA", "ROTATE", "ROTX", "ROTY", "ROTZ", "SANIM", "SCALAR", "SCALE", + "SEQUENCE", "SHADING", "SWITCH", "SWITCHCONDITION", "TABLE", "TABLE_V", + "TAG", "TEXLIST", "TEXTURE", "TLENGTHS", "TRANSFORM", "TRANSLATE", + "TREF", "TRIM", "TXT", "UKNOTS", "UV", "VKNOTS", "VERTEX", "VERTEXANIM", + "VERTEXPOOL", "VERTEXREF", "XFMANIM", "XFMSANIM", "START_EGG", + "START_GROUP_BODY", "START_TEXTURE_BODY", "START_PRIMITIVE_BODY", "'{'", + "'}'", "$accept", "grammar", "egg", "node", "coordsystem", "comment", + "texture", "@1", "texture_body", "material", "@2", "material_body", + "external_reference", "vertex_pool", "@3", "vertex_pool_body", "vertex", + "@4", "@5", "vertex_body", "vertex_uv_body", "vertex_normal_body", + "vertex_color_body", "group", "@6", "joint", "@7", "instance", "@8", + "group_body", "cs_type", "collide_flags", "transform_3d", "@9", + "transform_3d_body", "translate_3d", "rotx_3d", "roty_3d", "rotz_3d", + "rotate_3d", "scale_3d", "matrix4_3d", "matrix4_3d_body", + "transform_2d", "@10", "transform_2d_body", "translate_2d", "rotate_2d", + "scale_2d", "matrix3_2d", "matrix3_2d_body", "group_vertex_ref", + "group_vertex_membership", "switchcondition", "switchcondition_body", + "polygon", "@11", "point_light", "@12", "nurbs_surface", "@13", + "nurbs_curve", "@14", "primitive_body", "nurbs_surface_body", + "nurbs_curve_body", "primitive_tref_body", "primitive_texture_body", + "primitive_material_body", "primitive_normal_body", + "primitive_color_body", "primitive_bface_body", "primitive_vertex_ref", + "nurbs_surface_order_body", "nurbs_surface_uknots_body", + "nurbs_surface_vknots_body", "nurbs_surface_trim_body", + "nurbs_surface_trim_loop_body", "nurbs_curve_order_body", + "nurbs_curve_knots_body", "table", "@15", "bundle", "@16", "table_body", + "sanim", "@17", "sanim_body", "xfmanim", "@18", "xfmanim_body", + "xfm_s_anim", "@19", "xfm_s_anim_body", "integer_list", "real_list", + "texture_name", "material_name", "vertex_pool_name", "required_name", + "optional_name", "required_string", "optional_string", "string", + "repeated_string", "repeated_string_body", "real", "real_or_string", + "integer", "empty", 0 +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const unsigned short yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 123, 125 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const unsigned char yyr1[] = +{ + 0, 87, 88, 88, 88, 88, 89, 89, 90, 90, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 91, 92, 94, 93, 95, 95, 95, 97, + 96, 98, 98, 99, 99, 101, 100, 102, 102, 104, + 103, 105, 103, 106, 106, 106, 106, 106, 106, 106, + 106, 106, 107, 107, 107, 108, 108, 108, 109, 109, + 109, 111, 110, 113, 112, 115, 114, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 117, 118, 118, 120, 119, + 121, 121, 121, 121, 121, 121, 121, 121, 122, 123, + 124, 125, 126, 127, 127, 128, 129, 129, 131, 130, + 132, 132, 132, 132, 132, 133, 134, 135, 136, 137, + 137, 138, 139, 139, 140, 141, 141, 143, 142, 145, + 144, 147, 146, 149, 148, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 151, 152, 152, + 152, 152, 152, 152, 152, 152, 152, 152, 152, 153, + 154, 155, 156, 156, 156, 157, 157, 157, 158, 159, + 160, 161, 162, 163, 163, 164, 164, 165, 166, 168, + 167, 170, 169, 171, 171, 171, 171, 171, 171, 173, + 172, 174, 174, 174, 176, 175, 177, 177, 177, 179, + 178, 180, 180, 180, 181, 181, 182, 182, 183, 184, + 185, 186, 186, 187, 188, 188, 189, 189, 190, 190, + 190, 191, 191, 192, 192, 193, 193, 194, 194, 194, + 195, 195, 196 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const unsigned char yyr2[] = +{ + 0, 2, 2, 2, 2, 2, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 4, 5, 0, 7, 1, 6, 2, 0, + 6, 1, 6, 5, 6, 0, 6, 1, 2, 0, + 5, 0, 6, 1, 2, 3, 4, 5, 5, 5, + 8, 8, 2, 7, 7, 3, 8, 8, 4, 9, + 9, 0, 6, 0, 6, 0, 6, 1, 6, 5, + 7, 7, 5, 5, 5, 5, 5, 5, 5, 6, + 5, 2, 2, 2, 2, 1, 1, 2, 0, 5, + 1, 2, 2, 2, 2, 2, 2, 2, 6, 4, + 4, 4, 7, 6, 4, 4, 1, 16, 0, 5, + 1, 2, 2, 2, 2, 5, 4, 5, 4, 1, + 9, 9, 1, 6, 4, 11, 12, 0, 6, 0, + 6, 0, 6, 0, 6, 1, 5, 5, 5, 2, + 5, 5, 5, 6, 1, 5, 5, 5, 2, 5, + 5, 5, 5, 5, 5, 2, 5, 6, 1, 5, + 5, 5, 2, 5, 5, 5, 5, 5, 6, 1, + 1, 1, 3, 8, 8, 4, 9, 9, 1, 8, + 2, 1, 1, 1, 5, 1, 2, 1, 1, 0, + 6, 0, 6, 1, 2, 2, 2, 2, 2, 0, + 6, 1, 6, 5, 0, 6, 1, 6, 5, 0, + 6, 1, 6, 2, 1, 2, 1, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 0 +}; + +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const unsigned char yydefact[] = +{ + 0, 242, 242, 242, 242, 0, 2, 6, 3, 67, + 4, 26, 5, 135, 1, 228, 229, 230, 242, 0, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, + 242, 0, 0, 0, 0, 242, 0, 0, 242, 0, + 88, 0, 84, 81, 82, 83, 242, 108, 28, 0, + 0, 0, 0, 242, 0, 0, 0, 139, 0, 223, + 227, 226, 242, 0, 61, 63, 65, 0, 222, 221, + 133, 131, 129, 127, 189, 0, 35, 242, 0, 0, + 0, 0, 0, 0, 242, 0, 0, 0, 0, 0, + 0, 242, 0, 0, 0, 242, 0, 0, 0, 242, + 242, 242, 242, 0, 225, 224, 242, 0, 0, 0, + 29, 0, 0, 0, 0, 0, 242, 0, 0, 0, + 235, 236, 0, 0, 240, 241, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 242, 0, 242, 242, + 214, 0, 242, 0, 178, 0, 171, 219, 0, 0, + 0, 0, 0, 0, 170, 0, 169, 218, 0, 233, + 0, 232, 231, 22, 0, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 24, 242, 242, 69, 0, 242, + 85, 75, 74, 73, 72, 78, 77, 237, 238, 239, + 0, 76, 0, 124, 0, 80, 0, 90, 0, 215, + 122, 0, 0, 110, 142, 138, 0, 140, 0, 0, + 141, 0, 0, 137, 136, 0, 23, 234, 33, 0, + 0, 0, 0, 31, 0, 158, 0, 144, 0, 0, + 0, 193, 242, 0, 37, 0, 0, 0, 86, 68, + 0, 79, 0, 0, 0, 0, 0, 0, 0, 89, + 91, 92, 93, 94, 95, 96, 97, 0, 242, 27, + 0, 0, 0, 0, 109, 112, 113, 114, 111, 0, + 0, 172, 0, 0, 0, 143, 242, 62, 64, 66, + 242, 30, 0, 0, 0, 0, 0, 0, 242, 0, + 0, 134, 162, 0, 0, 0, 0, 0, 242, 0, + 0, 0, 0, 0, 132, 155, 148, 130, 128, 242, + 242, 242, 242, 190, 194, 195, 196, 197, 198, 0, + 39, 36, 38, 34, 70, 71, 87, 0, 242, 0, + 0, 0, 0, 0, 0, 242, 0, 242, 0, 0, + 0, 0, 0, 0, 0, 175, 0, 220, 0, 0, + 242, 242, 0, 0, 0, 0, 242, 242, 0, 242, + 0, 0, 0, 0, 242, 242, 242, 242, 242, 191, + 199, 204, 209, 25, 0, 41, 0, 0, 0, 0, + 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 188, 216, 0, 0, 0, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 183, 0, 181, 0, 182, 0, 0, + 0, 0, 0, 0, 0, 0, 105, 0, 0, 99, + 100, 101, 104, 0, 0, 0, 0, 118, 0, 116, + 0, 0, 0, 0, 0, 0, 179, 0, 165, 167, + 217, 161, 163, 166, 164, 0, 160, 159, 151, 147, + 149, 152, 180, 150, 0, 146, 145, 0, 156, 153, + 154, 242, 242, 242, 242, 0, 43, 0, 0, 0, + 0, 0, 0, 0, 121, 123, 0, 117, 115, 0, + 0, 0, 0, 32, 168, 157, 242, 0, 0, 201, + 0, 206, 0, 211, 0, 0, 0, 0, 40, 44, + 0, 0, 0, 0, 0, 103, 98, 0, 174, 173, + 0, 0, 0, 185, 192, 242, 0, 200, 242, 0, + 205, 242, 210, 213, 0, 0, 0, 0, 0, 45, + 42, 0, 0, 0, 102, 0, 177, 176, 184, 186, + 0, 242, 0, 242, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 48, 0, 0, 49, + 0, 0, 47, 52, 125, 0, 0, 0, 0, 203, + 0, 208, 0, 0, 0, 0, 0, 55, 0, 0, + 0, 0, 0, 126, 0, 0, 202, 207, 212, 0, + 0, 0, 0, 0, 0, 58, 0, 0, 0, 120, + 51, 50, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54, 53, 0, 57, 56, 0, 0, 0, 60, 59, + 0, 0, 107 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const short yydefgoto[] = +{ + -1, 5, 6, 62, 33, 34, 35, 252, 10, 36, + 188, 242, 37, 38, 137, 253, 342, 394, 453, 505, + 591, 587, 589, 39, 127, 40, 128, 41, 129, 8, + 199, 257, 63, 110, 216, 270, 271, 272, 273, 274, + 275, 276, 398, 68, 113, 222, 285, 286, 287, 288, + 409, 64, 218, 65, 155, 42, 134, 43, 133, 44, + 132, 45, 131, 12, 246, 244, 175, 173, 165, 168, + 170, 163, 77, 436, 444, 446, 442, 552, 427, 422, + 46, 135, 335, 448, 250, 336, 449, 528, 337, 450, + 530, 338, 451, 532, 159, 423, 176, 166, 366, 167, + 78, 123, 79, 88, 180, 181, 480, 210, 164, 89 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -380 +static const short yypact[] = +{ + 217, -380, -380, -380, -380, 102, 359, -380, 1171, -380, + 109, -380, 253, -380, -380, -380, -380, -380, 259, 19, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 259, 259, -380, -380, -380, -380, -380, -380, -380, -380, + -380, -380, -380, -380, -380, -380, -380, 111, 114, 121, + 259, 126, 158, 161, 168, 259, 169, 173, 259, 181, + -380, 193, -380, -380, -380, -380, 259, -380, -380, 196, + 197, 210, 227, 259, 228, 229, 230, -380, 231, -380, + -380, -380, 259, 232, -380, -380, -380, 235, -380, -380, + -380, -380, -380, -380, -380, 236, -380, 259, 259, 177, + 242, 266, 285, 234, 259, 243, 234, 143, 244, 234, + 245, -380, 247, 248, 234, 259, 177, 177, 249, 259, + 259, -380, 259, 110, -380, -380, 259, 254, 255, 257, + -380, 258, 267, 268, 280, 281, 259, 282, 283, 189, + -380, -380, 177, 259, -380, -380, 233, 284, 288, 289, + 290, 292, 301, 294, 296, 297, 259, 299, -380, 234, + -380, 301, -380, 302, -380, 304, -380, -380, 13, 177, + 29, 177, 301, 305, -380, 307, -380, -380, 140, -380, + 309, 259, -380, -380, 311, -380, -380, -380, -380, -380, + -380, -380, -380, -380, -380, -380, 259, -380, 177, -380, + -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, + 313, -380, 177, -380, 318, -380, 133, -380, -44, -380, + -380, 322, 211, -380, -380, -380, 50, -380, 177, 55, + -380, 177, 323, -380, -380, 331, -380, -380, -380, 867, + 981, 1057, 31, -380, 187, -380, 138, -380, 83, 190, + 14, -380, -380, 71, -380, 332, 333, 38, -380, -380, + 177, -380, 336, 337, 338, 340, 341, 342, 343, -380, + -380, -380, -380, -380, -380, -380, -380, 344, 259, -380, + 345, 346, 347, 348, -380, -380, -380, -380, -380, 259, + 349, -380, 259, 350, 177, -380, 259, -380, -380, -380, + 259, -380, 352, 353, 354, 355, 356, 357, 259, 358, + 360, -380, -380, 362, 363, 365, 371, 372, 259, 373, + 374, 378, 382, 383, -380, -380, -380, -380, -380, 259, + 259, 259, 259, -380, -380, -380, -380, -380, -380, 105, + 234, -380, -380, -380, -380, -380, -380, 80, 177, 177, + 177, 177, 177, 177, 177, 259, 388, 177, 177, 177, + 177, 177, 177, 177, 177, -380, 389, -380, 391, 234, + -380, 259, 177, 234, 177, 393, 259, 259, 234, 259, + 177, 234, 177, 394, 259, 259, -380, -380, -380, -380, + -380, -380, -380, -380, 395, -380, 396, 221, 397, 177, + -380, 177, 398, 399, 400, 35, 177, 401, 301, 403, + 177, -380, 404, 177, 177, 177, 177, 177, 177, 405, + 301, 406, 407, 177, -380, 408, 20, 410, -380, 33, + 301, 411, 412, 413, 414, 63, 415, 234, 43, 301, + 416, 423, 77, -380, 424, 177, 425, 177, 427, 429, + 430, 431, 177, 432, 177, 435, -380, 177, 177, -380, + -380, -380, -380, 177, 177, 436, 437, -380, 177, -380, + 438, 439, 177, 177, 177, 177, -380, 440, -380, -380, + -380, -380, -380, -380, -380, 441, -380, -380, -380, -380, + -380, -380, -380, -380, 443, -380, -380, 445, -380, -380, + -380, -380, -380, -380, -380, 85, 177, 177, 177, 177, + 177, 177, 446, 447, -380, -380, 177, -380, -380, 448, + 449, 177, 177, -380, -380, -380, -380, 47, 26, -380, + 112, -380, 87, -380, 62, 452, 458, 460, -380, 177, + 201, 177, 177, 177, 461, -380, -380, 177, -380, -380, + 462, 463, 21, -380, -380, 259, 465, -380, 259, 466, + -380, 259, -380, -380, 259, 467, 177, 177, 177, 177, + -380, 468, 177, 177, -380, 177, -380, -380, -380, -380, + 470, -380, 471, -380, 472, 177, 177, 70, 177, 67, + 177, 76, 177, -380, 473, 474, 177, 177, 301, 42, + 301, 45, 301, 177, 177, 66, -380, 177, 69, -380, + 177, 74, -380, -380, -380, 475, 177, 177, 476, -380, + 481, -380, 482, 177, 177, 259, 486, -380, 259, 488, + 177, 259, 489, -380, 177, 177, -380, -380, -380, 490, + 491, 177, 177, 177, 177, -380, 177, 177, 177, -380, + -380, -380, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 492, 493, 177, 494, 495, 177, 177, + -380, -380, 177, -380, -380, 498, 500, 177, -380, -380, + 177, 177, -380 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const short yypgoto[] = +{ + -380, -380, -380, 376, -380, -380, -380, -380, 135, -380, + -380, -380, -380, -380, -380, -380, -380, -380, -380, -90, + -380, -380, -380, -380, -380, -380, -380, -380, -380, 124, + -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, + -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, + -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, + -380, -245, -380, 57, -380, -380, -288, -184, -166, -158, + -142, -260, -29, -380, -380, -380, -380, -380, -380, -380, + -247, -380, -380, -380, -57, -58, -380, -380, -380, -380, + -380, -380, -380, -380, 361, -379, -380, -380, 166, 422, + 6, -86, -380, -6, 375, -380, -3, -136, -96, 669 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + 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. */ +#define YYTABLE_NINF -1 +static const unsigned short yytable[] = +{ + 47, 325, 47, 334, 277, 147, 149, 150, 445, 447, + 153, 278, 80, 157, 80, 80, 80, 80, 151, 80, + 80, 80, 80, 80, 329, 221, 83, 84, 85, 86, + 226, 90, 91, 92, 93, 94, 232, 226, 140, 141, + 184, 15, 16, 17, 80, 140, 141, 229, 140, 141, + 194, 229, 80, 15, 16, 17, 100, 329, 15, 16, + 17, 229, 25, 219, 108, 15, 16, 17, 330, 15, + 16, 17, 15, 16, 17, 29, 124, 15, 16, 17, + 226, 555, 219, 140, 141, 608, 300, 605, 556, 432, + 69, 80, 139, 331, 332, 611, 142, 441, 124, 227, + 333, 330, 14, 138, 82, 534, 482, 578, 29, 421, + 255, 497, 557, 169, 171, 230, 179, 301, 433, 484, + 124, 462, 70, 71, 345, 535, 331, 332, 619, 493, + 124, 621, 72, 554, 536, 289, 97, 200, 73, 198, + 292, 330, 561, 144, 145, 313, 340, 564, 74, 490, + 179, 625, 75, 609, 628, 396, 606, 341, 537, 631, + 66, 76, 612, 498, 66, 154, 228, 558, 231, 327, + 262, 538, 67, 562, 559, 237, 67, 314, 315, 25, + 140, 141, 316, 263, 264, 265, 266, 317, 235, 267, + 124, 393, 431, 318, 302, 256, 183, 69, 560, 98, + 440, 268, 599, 319, 601, 425, 99, 320, 321, 260, + 322, 101, 323, 434, 426, 312, 76, 326, 303, 269, + 290, 534, 435, 293, 324, 291, 304, 305, 294, 70, + 71, 306, 429, 47, 47, 47, 307, 144, 145, 72, + 438, 535, 308, 102, 395, 73, 103, 280, 248, 249, + 536, 346, 309, 104, 106, 74, 310, 347, 107, 75, + 69, 281, 15, 16, 17, 76, 109, 282, 76, 144, + 145, 146, 466, 311, 537, 197, 328, 428, 111, 283, + 334, 114, 115, 361, 477, 437, 363, 570, 144, 145, + 148, 365, 70, 71, 485, 116, 455, 284, 1, 2, + 3, 4, 72, 494, 207, 208, 209, 579, 73, 239, + 240, 241, 117, 119, 120, 121, 122, 126, 74, 201, + 130, 136, 75, 80, 80, 80, 80, 143, 152, 156, + 158, 76, 161, 162, 172, 389, 390, 391, 392, 185, + 186, 492, 187, 189, 397, 399, 401, 402, 403, 404, + 405, 406, 190, 191, 410, 412, 413, 414, 415, 416, + 417, 418, 15, 16, 17, 192, 193, 195, 196, 169, + 202, 171, 18, 19, 203, 204, 205, 169, 206, 171, + 211, 212, 32, 213, 20, 215, 21, 339, 224, 22, + 225, 233, 23, 234, 24, 236, 457, 238, 458, 259, + 25, 26, 463, 464, 261, 27, 28, 468, 279, 295, + 470, 471, 472, 473, 474, 475, 296, 540, 343, 344, + 29, 348, 349, 350, 30, 351, 352, 353, 354, 355, + 357, 358, 359, 360, 362, 364, 31, 369, 370, 371, + 372, 373, 374, 376, 527, 377, 87, 378, 379, 506, + 380, 508, 95, 96, 510, 511, 381, 382, 384, 385, + 512, 513, 618, 386, 620, 516, 622, 387, 388, 519, + 520, 521, 522, 408, 563, 419, 420, 105, 430, 439, + 452, 454, 178, 456, 459, 460, 461, 465, 112, 467, + 469, 476, 478, 479, 481, 118, 483, 486, 487, 488, + 489, 491, 495, 539, 506, 541, 542, 543, 544, 496, + 499, 500, 501, 547, 502, 503, 504, 507, 550, 551, + 509, 407, 514, 515, 517, 518, 523, 524, 565, 525, + 526, 214, 545, 546, 548, 549, 569, 566, 571, 572, + 573, 174, 177, 567, 575, 568, 0, 574, 576, 577, + 581, 583, 586, 0, 594, 598, 600, 602, 585, 614, + 615, 633, 636, 588, 590, 592, 593, 637, 638, 595, + 596, 642, 597, 644, 647, 0, 650, 651, 670, 671, + 673, 674, 603, 604, 678, 607, 679, 610, 0, 613, + 0, 0, 0, 616, 617, 0, 0, 0, 0, 626, + 623, 624, 629, 0, 627, 632, 0, 630, 0, 0, + 0, 0, 0, 634, 635, 0, 0, 0, 0, 641, + 639, 640, 643, 0, 0, 646, 0, 645, 0, 0, + 0, 648, 649, 0, 0, 0, 0, 0, 652, 653, + 654, 655, 0, 656, 657, 658, 0, 0, 0, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 0, 0, 672, 0, 0, 675, 676, 0, 0, 677, + 7, 9, 11, 13, 680, 0, 0, 681, 682, 0, + 0, 0, 0, 0, 0, 0, 0, 81, 0, 81, + 81, 81, 81, 0, 81, 81, 81, 81, 81, 0, + 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 367, 81, + 0, 0, 368, 0, 0, 0, 0, 81, 0, 0, + 375, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 383, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, + 0, 0, 0, 125, 0, 0, 0, 367, 0, 0, + 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 160, 182, 0, 0, 0, 125, 0, 0, 174, 177, + 0, 0, 0, 0, 0, 125, 174, 177, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 182, 0, 217, 220, 0, + 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 9, 9, 243, 245, 247, + 13, 13, 251, 0, 254, 125, 0, 0, 258, 0, + 15, 16, 17, 0, 0, 48, 49, 0, 0, 50, + 18, 19, 0, 51, 0, 0, 0, 0, 52, 0, + 0, 0, 20, 0, 21, 0, 0, 22, 0, 0, + 23, 0, 24, 0, 0, 53, 0, 0, 25, 26, + 54, 0, 0, 27, 28, 0, 0, 0, 0, 0, + 0, 11, 55, 0, 0, 0, 56, 57, 29, 0, + 58, 59, 30, 0, 60, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 31, 61, 0, 0, 0, 0, + 0, 0, 0, 297, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 580, 0, 0, + 582, 0, 0, 584, 15, 16, 17, 0, 0, 48, + 49, 0, 0, 50, 18, 19, 0, 51, 81, 81, + 81, 81, 52, 0, 0, 0, 20, 0, 21, 0, + 0, 22, 0, 0, 23, 0, 24, 400, 0, 53, + 0, 0, 25, 26, 54, 0, 411, 27, 28, 0, + 0, 0, 0, 0, 0, 0, 55, 0, 0, 424, + 56, 57, 29, 0, 58, 59, 30, 0, 60, 0, + 0, 0, 0, 0, 0, 443, 424, 424, 31, 61, + 15, 16, 17, 0, 0, 48, 49, 298, 0, 50, + 18, 19, 0, 51, 0, 0, 0, 0, 52, 0, + 0, 0, 20, 0, 21, 0, 0, 22, 0, 0, + 23, 0, 24, 0, 0, 53, 0, 0, 25, 26, + 54, 0, 0, 27, 28, 0, 0, 0, 0, 0, + 0, 0, 55, 0, 0, 0, 56, 57, 29, 0, + 58, 59, 30, 0, 60, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 31, 61, 0, 0, 0, 0, + 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 251, 529, 531, 533, 15, 16, 17, 0, 0, 48, + 49, 0, 0, 50, 18, 19, 0, 51, 0, 0, + 0, 0, 52, 0, 0, 553, 20, 0, 21, 0, + 0, 22, 0, 0, 23, 0, 24, 0, 0, 53, + 0, 0, 25, 26, 54, 0, 0, 27, 28, 0, + 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, + 56, 57, 29, 0, 58, 59, 30, 0, 60, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 61, + 424, 0, 424 +}; + +static const short yycheck[] = +{ + 6, 246, 8, 250, 48, 101, 102, 103, 387, 388, + 106, 55, 18, 109, 20, 21, 22, 23, 104, 25, + 26, 27, 28, 29, 10, 161, 20, 21, 22, 23, + 17, 25, 26, 27, 28, 29, 172, 17, 3, 4, + 126, 3, 4, 5, 50, 3, 4, 18, 3, 4, + 136, 18, 58, 3, 4, 5, 50, 10, 3, 4, + 5, 18, 41, 159, 58, 3, 4, 5, 54, 3, + 4, 5, 3, 4, 5, 61, 82, 3, 4, 5, + 17, 55, 178, 3, 4, 18, 55, 17, 62, 377, + 7, 97, 98, 79, 80, 19, 99, 385, 104, 86, + 86, 54, 0, 97, 85, 20, 86, 86, 61, 369, + 196, 34, 86, 116, 117, 86, 122, 86, 378, 86, + 126, 86, 39, 40, 86, 40, 79, 80, 86, 86, + 136, 86, 49, 86, 49, 85, 25, 143, 55, 142, + 85, 54, 55, 3, 4, 7, 75, 85, 65, 86, + 156, 85, 69, 86, 85, 75, 86, 86, 73, 85, + 55, 78, 86, 86, 55, 22, 169, 55, 171, 86, + 37, 86, 67, 86, 62, 181, 67, 39, 40, 41, + 3, 4, 44, 50, 51, 52, 53, 49, 48, 56, + 196, 86, 376, 55, 7, 198, 86, 7, 86, 85, + 384, 68, 581, 65, 583, 371, 85, 69, 70, 212, + 72, 85, 74, 379, 372, 244, 78, 246, 31, 86, + 226, 20, 380, 229, 86, 228, 39, 40, 231, 39, + 40, 44, 374, 239, 240, 241, 49, 3, 4, 49, + 382, 40, 55, 85, 340, 55, 85, 36, 191, 192, + 49, 257, 65, 85, 85, 65, 69, 260, 85, 69, + 7, 50, 3, 4, 5, 78, 85, 56, 78, 3, + 4, 5, 408, 86, 73, 86, 86, 373, 85, 68, + 527, 85, 85, 289, 420, 381, 292, 86, 3, 4, + 5, 294, 39, 40, 430, 85, 75, 86, 81, 82, + 83, 84, 49, 439, 3, 4, 5, 552, 55, 185, + 186, 187, 85, 85, 85, 85, 85, 85, 65, 86, + 85, 85, 69, 329, 330, 331, 332, 85, 85, 85, + 85, 78, 85, 85, 85, 329, 330, 331, 332, 85, + 85, 437, 85, 85, 347, 348, 349, 350, 351, 352, + 353, 354, 85, 85, 357, 358, 359, 360, 361, 362, + 363, 364, 3, 4, 5, 85, 85, 85, 85, 372, + 86, 374, 13, 14, 86, 86, 86, 380, 86, 382, + 86, 85, 6, 86, 25, 86, 27, 252, 86, 30, + 86, 86, 33, 86, 35, 86, 399, 86, 401, 86, + 41, 42, 405, 406, 86, 46, 47, 410, 86, 86, + 413, 414, 415, 416, 417, 418, 85, 507, 86, 86, + 61, 85, 85, 85, 65, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 77, 85, 85, 85, + 85, 85, 85, 85, 501, 85, 24, 85, 85, 452, + 85, 454, 30, 31, 457, 458, 85, 85, 85, 85, + 463, 464, 598, 85, 600, 468, 602, 85, 85, 472, + 473, 474, 475, 85, 532, 86, 85, 55, 85, 85, + 85, 85, 121, 86, 86, 86, 86, 86, 66, 86, + 86, 86, 86, 86, 86, 73, 86, 86, 86, 86, + 86, 86, 86, 506, 507, 508, 509, 510, 511, 86, + 86, 86, 85, 516, 85, 85, 85, 85, 521, 522, + 85, 355, 86, 86, 86, 86, 86, 86, 534, 86, + 85, 156, 86, 86, 86, 86, 539, 85, 541, 542, + 543, 119, 120, 85, 547, 85, -1, 86, 86, 86, + 85, 85, 85, -1, 86, 85, 85, 85, 564, 86, + 86, 86, 86, 566, 567, 568, 569, 86, 86, 572, + 573, 85, 575, 85, 85, -1, 86, 86, 86, 86, + 86, 86, 585, 586, 86, 588, 86, 590, -1, 592, + -1, -1, -1, 596, 597, -1, -1, -1, -1, 605, + 603, 604, 608, -1, 607, 611, -1, 610, -1, -1, + -1, -1, -1, 616, 617, -1, -1, -1, -1, 625, + 623, 624, 628, -1, -1, 631, -1, 630, -1, -1, + -1, 634, 635, -1, -1, -1, -1, -1, 641, 642, + 643, 644, -1, 646, 647, 648, -1, -1, -1, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + -1, -1, 665, -1, -1, 668, 669, -1, -1, 672, + 1, 2, 3, 4, 677, -1, -1, 680, 681, -1, + -1, -1, -1, -1, -1, -1, -1, 18, -1, 20, + 21, 22, 23, -1, 25, 26, 27, 28, 29, -1, + 278, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 296, 50, + -1, -1, 300, -1, -1, -1, -1, 58, -1, -1, + 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 318, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 82, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, + -1, -1, -1, 104, -1, -1, -1, 355, -1, -1, + 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 121, 122, -1, -1, -1, 126, -1, -1, 376, 377, + -1, -1, -1, -1, -1, 136, 384, 385, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 156, -1, 158, 159, -1, + -1, 162, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 185, 186, 187, 188, 189, 190, + 191, 192, 193, -1, 195, 196, -1, -1, 199, -1, + 3, 4, 5, -1, -1, 8, 9, -1, -1, 12, + 13, 14, -1, 16, -1, -1, -1, -1, 21, -1, + -1, -1, 25, -1, 27, -1, -1, 30, -1, -1, + 33, -1, 35, -1, -1, 38, -1, -1, 41, 42, + 43, -1, -1, 46, 47, -1, -1, -1, -1, -1, + -1, 252, 55, -1, -1, -1, 59, 60, 61, -1, + 63, 64, 65, -1, 67, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 77, 78, -1, -1, -1, -1, + -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 555, -1, -1, + 558, -1, -1, 561, 3, 4, 5, -1, -1, 8, + 9, -1, -1, 12, 13, 14, -1, 16, 329, 330, + 331, 332, 21, -1, -1, -1, 25, -1, 27, -1, + -1, 30, -1, -1, 33, -1, 35, 348, -1, 38, + -1, -1, 41, 42, 43, -1, 357, 46, 47, -1, + -1, -1, -1, -1, -1, -1, 55, -1, -1, 370, + 59, 60, 61, -1, 63, 64, 65, -1, 67, -1, + -1, -1, -1, -1, -1, 386, 387, 388, 77, 78, + 3, 4, 5, -1, -1, 8, 9, 86, -1, 12, + 13, 14, -1, 16, -1, -1, -1, -1, 21, -1, + -1, -1, 25, -1, 27, -1, -1, 30, -1, -1, + 33, -1, 35, -1, -1, 38, -1, -1, 41, 42, + 43, -1, -1, 46, 47, -1, -1, -1, -1, -1, + -1, -1, 55, -1, -1, -1, 59, 60, 61, -1, + 63, 64, 65, -1, 67, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 77, 78, -1, -1, -1, -1, + -1, -1, -1, 86, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 501, 502, 503, 504, 3, 4, 5, -1, -1, 8, + 9, -1, -1, 12, 13, 14, -1, 16, -1, -1, + -1, -1, 21, -1, -1, 526, 25, -1, 27, -1, + -1, 30, -1, -1, 33, -1, 35, -1, -1, 38, + -1, -1, 41, 42, 43, -1, -1, 46, 47, -1, + -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, + 59, 60, 61, -1, 63, 64, 65, -1, 67, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 77, 78, + 581, -1, 583 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const unsigned char yystos[] = +{ + 0, 81, 82, 83, 84, 88, 89, 196, 116, 196, + 95, 196, 150, 196, 0, 3, 4, 5, 13, 14, + 25, 27, 30, 33, 35, 41, 42, 46, 47, 61, + 65, 77, 90, 91, 92, 93, 96, 99, 100, 110, + 112, 114, 142, 144, 146, 148, 167, 190, 8, 9, + 12, 16, 21, 38, 43, 55, 59, 60, 63, 64, + 67, 78, 90, 119, 138, 140, 55, 67, 130, 7, + 39, 40, 49, 55, 65, 69, 78, 159, 187, 189, + 190, 196, 85, 187, 187, 187, 187, 186, 190, 196, + 187, 187, 187, 187, 187, 186, 186, 25, 85, 85, + 187, 85, 85, 85, 85, 186, 85, 85, 187, 85, + 120, 85, 186, 131, 85, 85, 85, 85, 186, 85, + 85, 85, 85, 188, 190, 196, 85, 111, 113, 115, + 85, 149, 147, 145, 143, 168, 85, 101, 187, 190, + 3, 4, 193, 85, 3, 4, 5, 195, 5, 195, + 195, 188, 85, 195, 22, 141, 85, 195, 85, 181, + 196, 85, 85, 158, 195, 155, 184, 186, 156, 193, + 157, 193, 85, 154, 186, 153, 183, 186, 181, 190, + 191, 192, 196, 86, 188, 85, 85, 85, 97, 85, + 85, 85, 85, 85, 188, 85, 85, 86, 193, 117, + 190, 86, 86, 86, 86, 86, 86, 3, 4, 5, + 194, 86, 85, 86, 191, 86, 121, 196, 139, 195, + 196, 194, 132, 196, 86, 86, 17, 86, 193, 18, + 86, 193, 194, 86, 86, 48, 86, 190, 86, 116, + 116, 116, 98, 196, 152, 196, 151, 196, 150, 150, + 171, 196, 94, 102, 196, 188, 193, 118, 196, 86, + 193, 86, 37, 50, 51, 52, 53, 56, 68, 86, + 122, 123, 124, 125, 126, 127, 128, 48, 55, 86, + 36, 50, 56, 68, 86, 133, 134, 135, 136, 85, + 190, 193, 85, 190, 193, 86, 85, 86, 86, 86, + 55, 86, 7, 31, 39, 40, 44, 49, 55, 65, + 69, 86, 159, 7, 39, 40, 44, 49, 55, 65, + 69, 70, 72, 74, 86, 148, 159, 86, 86, 10, + 54, 79, 80, 86, 167, 169, 172, 175, 178, 95, + 75, 86, 103, 86, 86, 86, 190, 193, 85, 85, + 85, 85, 85, 85, 85, 85, 186, 85, 85, 85, + 85, 190, 85, 190, 85, 193, 185, 186, 186, 85, + 85, 85, 85, 85, 85, 186, 85, 85, 85, 85, + 85, 85, 85, 186, 85, 85, 85, 85, 85, 187, + 187, 187, 187, 86, 104, 195, 75, 193, 129, 193, + 196, 193, 193, 193, 193, 193, 193, 185, 85, 137, + 193, 196, 193, 193, 193, 193, 193, 193, 193, 86, + 85, 158, 166, 182, 196, 155, 156, 165, 195, 157, + 85, 154, 153, 158, 155, 156, 160, 195, 157, 85, + 154, 153, 163, 196, 161, 182, 162, 182, 170, 173, + 176, 179, 85, 105, 85, 75, 86, 193, 193, 86, + 86, 86, 86, 193, 193, 86, 194, 86, 193, 86, + 193, 193, 193, 193, 193, 193, 86, 194, 86, 86, + 193, 86, 86, 86, 86, 194, 86, 86, 86, 86, + 86, 86, 195, 86, 194, 86, 86, 34, 86, 86, + 86, 85, 85, 85, 85, 106, 193, 85, 193, 85, + 193, 193, 193, 193, 86, 86, 193, 86, 86, 193, + 193, 193, 193, 86, 86, 86, 85, 171, 174, 196, + 177, 196, 180, 196, 20, 40, 49, 73, 86, 193, + 106, 193, 193, 193, 193, 86, 86, 193, 86, 86, + 193, 193, 164, 196, 86, 55, 62, 86, 55, 62, + 86, 55, 86, 172, 85, 190, 85, 85, 85, 193, + 86, 193, 193, 193, 86, 193, 86, 86, 86, 148, + 186, 85, 186, 85, 186, 190, 85, 108, 193, 109, + 193, 107, 193, 193, 86, 193, 193, 193, 85, 182, + 85, 182, 85, 193, 193, 17, 86, 193, 18, 86, + 193, 19, 86, 193, 86, 86, 193, 193, 194, 86, + 194, 86, 194, 193, 193, 85, 190, 193, 85, 190, + 193, 85, 190, 86, 193, 193, 86, 86, 86, 193, + 193, 190, 85, 190, 85, 193, 190, 85, 193, 193, + 86, 86, 193, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, + 86, 86, 193, 86, 86, 193, 193, 193, 86, 86, + 193, 193, 193 +}; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ @@ -1128,29 +1363,34 @@ union yyalloc #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 +#define YYEMPTY (-2) #define YYEOF 0 + #define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab +#define YYABORT goto yyabortlab #define YYERROR goto yyerrlab1 + /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ + #define YYFAIL goto yyerrlab + #define YYRECOVERING() (!!yyerrstatus) + #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { \ yychar = (Token); \ yylval = (Value); \ - yychar1 = YYTRANSLATE (yychar); \ + yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { \ - yyerror ("syntax error: cannot back up"); \ + yyerror ("syntax error: cannot back up");\ YYERROR; \ } \ while (0) @@ -1158,41 +1398,24 @@ while (0) #define YYTERROR 1 #define YYERRCODE 256 - /* YYLLOC_DEFAULT -- Compute the default location (before the actions - 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. */ + are run). */ #ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + Current.first_line = Rhs[1].first_line; \ + Current.first_column = Rhs[1].first_column; \ + Current.last_line = Rhs[N].last_line; \ + Current.last_column = Rhs[N].last_column; #endif - /* YYLEX -- calling `yylex' with the right arguments. */ -#if YYPURE -# if YYLSP_NEEDED -# ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) -# else -# 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 */ - +#ifdef YYLEX_PARAM +# define YYLEX yylex (YYLEX_PARAM) +#else +# define YYLEX yylex () +#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -1207,13 +1430,93 @@ do { \ if (yydebug) \ YYFPRINTF Args; \ } 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 yylineno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", + yyrule - 1, yylineno); + /* 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 multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # 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 */ + /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 @@ -1233,8 +1536,10 @@ int yydebug; #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif + -#ifdef YYERROR_VERBOSE + +#if YYERROR_VERBOSE # ifndef yystrlen # if defined (__GLIBC__) && defined (_STRING_H) @@ -1284,86 +1589,134 @@ yystpcpy (yydest, yysrc) } # 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 - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ +#if defined (__STDC__) || defined (__cplusplus) +static void +yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) +#else +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 # if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL +int yyparse (void *YYPARSE_PARAM); # else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; +int yyparse (); # endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) int yyparse (void); -# endif +#else +int yyparse (); #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. */ \ + +/* The lookahead symbol. */ +int yychar; + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval; + +/* Number of syntax errors so far. */ int yynerrs; -#if YYLSP_NEEDED -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES \ - \ -/* Location data for the lookahead symbol. */ \ -YYLTYPE yylloc; -#else -# define YY_DECL_VARIABLES \ -YY_DECL_NON_LSP_VARIABLES -#endif -/* If nonreentrant, generate the variables here. */ - -#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 -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - /* If reentrant, generate the variables here. */ -#if YYPURE - YY_DECL_VARIABLES -#endif /* !YYPURE */ +yyparse (void) +#else +int +yyparse () +#endif +#endif +{ + register int yystate; register int yyn; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Lookahead token as an internal (translated) token number. */ - int yychar1 = 0; + int yytoken = 0; /* Three stacks and their tools: `yyss': related to states, @@ -1373,7 +1726,7 @@ yyparse (YYPARSE_PARAM_ARG) Refer to the stacks thru separate pointers, to allow yyoverflow to reallocate them elsewhere. */ - /* The state stack. */ + /* The state stack. */ short yyssa[YYINITDEPTH]; short *yyss = yyssa; register short *yyssp; @@ -1383,31 +1736,19 @@ yyparse (YYPARSE_PARAM_ARG) YYSTYPE *yyvs = yyvsa; 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; - /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; -#if YYLSP_NEEDED - YYLTYPE yyloc; -#endif + /* When reducing, the number of symbols on the RHS of the reduced - rule. */ + rule. */ int yylen; YYDPRINTF ((stderr, "Starting parse\n")); @@ -1424,9 +1765,7 @@ yyparse (YYPARSE_PARAM_ARG) yyssp = yyss; yyvsp = yyvs; -#if YYLSP_NEEDED - yylsp = yyls; -#endif + goto yysetstate; /*------------------------------------------------------------. @@ -1441,7 +1780,7 @@ yyparse (YYPARSE_PARAM_ARG) yysetstate: *yyssp = yystate; - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; @@ -1454,24 +1793,17 @@ yyparse (YYPARSE_PARAM_ARG) YYSTYPE *yyvs1 = yyvs; short *yyss1 = yyss; + /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. */ -# if YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; - /* This used to be a conditional around just the two extra args, - but that might be undefined if yyoverflow is a macro. */ + data in use in that stack, in bytes. 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", &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), - &yyls1, yysize * sizeof (*yylsp), + &yystacksize); - yyls = yyls1; -# else - yyoverflow ("parser stack overflow", - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); -# endif + yyss = yyss1; yyvs = yyvs1; } @@ -1480,10 +1812,10 @@ yyparse (YYPARSE_PARAM_ARG) goto yyoverflowlab; # else /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) + if (YYMAXDEPTH <= yystacksize) goto yyoverflowlab; yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) + if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { @@ -1494,10 +1826,8 @@ yyparse (YYPARSE_PARAM_ARG) goto yyoverflowlab; YYSTACK_RELOCATE (yyss); YYSTACK_RELOCATE (yyvs); -# if YYLSP_NEEDED - YYSTACK_RELOCATE (yyls); -# endif -# undef YYSTACK_RELOCATE + +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } @@ -1506,14 +1836,12 @@ yyparse (YYPARSE_PARAM_ARG) yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; -#if YYLSP_NEEDED - yylsp = yyls + yysize - 1; -#endif + YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) YYABORT; } @@ -1521,7 +1849,6 @@ yyparse (YYPARSE_PARAM_ARG) goto yybackup; - /*-----------. | yybackup. | `-----------*/ @@ -1534,88 +1861,55 @@ yybackup: /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; - if (yyn == YYFLAG) + if (yyn == YYPACT_NINF) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ + if (yychar <= YYEOF) { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - + yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { - yychar1 = YYTRANSLATE (yychar); - -#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 + yytoken = YYTRANSLATE (yychar); + YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); } - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; - yyn = yytable[yyn]; - - /* 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 <= 0) { - if (yyn == YYFLAG) + if (yyn == 0 || yyn == YYTABLE_NINF) goto yyerrlab; yyn = -yyn; goto yyreduce; } - else if (yyn == 0) - goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); + YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif + /* Count tokens shifted since error; after three, turn off error status. */ @@ -1646,48 +1940,27 @@ yyreduce: /* If YYLEN is nonzero, implement the default value of the action: `$$ = $1'. - Otherwise, the following line sets YYVAL to the semantic value of - the lookahead token. This behavior is undocumented and Bison + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ 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 - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) + YY_REDUCE_PRINT (yyn); + switch (yyn) { - int yyi; - - 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 6: + case 7: #line 196 "parser.yxx" -{ + { DCAST(EggData, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); } break; -case 21: + + case 22: #line 235 "parser.yxx" -{ + { string strval = yyvsp[-1]._string; EggCoordinateSystem *cs = new EggCoordinateSystem; @@ -1700,15 +1973,17 @@ case 21: yyval._egg = cs; } break; -case 22: + + case 23: #line 258 "parser.yxx" -{ + { yyval._egg = new EggComment(yyvsp[-3]._string, yyvsp[-1]._string); } break; -case 23: + + case 24: #line 272 "parser.yxx" -{ + { string tref_name = yyvsp[-2]._string; Filename filename = yyvsp[0]._string; EggTexture *texture = new EggTexture(tref_name, filename); @@ -1721,16 +1996,18 @@ case 23: egg_stack.push_back(texture); } break; -case 24: + + case 25: #line 285 "parser.yxx" -{ + { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 26: + + case 27: #line 301 "parser.yxx" -{ + { EggTexture *texture = DCAST(EggTexture, egg_stack.back()); string name = yyvsp[-3]._string; double value = yyvsp[-1]._number; @@ -1837,9 +2114,10 @@ case 26: } } break; -case 28: + + case 29: #line 419 "parser.yxx" -{ + { string mref_name = yyvsp[-1]._string; EggMaterial *material = new EggMaterial(mref_name); @@ -1851,16 +2129,18 @@ case 28: egg_stack.push_back(material); } break; -case 29: + + case 30: #line 431 "parser.yxx" -{ + { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 31: + + case 32: #line 447 "parser.yxx" -{ + { EggMaterial *material = DCAST(EggMaterial, egg_stack.back()); string name = yyvsp[-3]._string; double value = yyvsp[-1]._number; @@ -1944,18 +2224,20 @@ case 31: } } break; -case 32: + + case 33: #line 542 "parser.yxx" -{ + { string node_name = yyvsp[-3]._string; Filename filename = yyvsp[-1]._string; EggExternalReference *ref = new EggExternalReference(node_name, filename); yyval._egg = ref; } break; -case 33: + + case 34: #line 549 "parser.yxx" -{ + { if (cmp_nocase_uh(yyvsp[-5]._string, "group") != 0) { eggyyerror("keyword 'group' expected"); } @@ -1965,9 +2247,10 @@ case 33: yyval._egg = ref; } break; -case 34: + + case 35: #line 569 "parser.yxx" -{ + { string name = yyvsp[0]._string; EggVertexPool *pool = new EggVertexPool(name); @@ -1979,31 +2262,35 @@ case 34: egg_stack.push_back(pool); } break; -case 35: + + case 36: #line 581 "parser.yxx" -{ + { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 38: + + case 39: #line 609 "parser.yxx" -{ + { egg_stack.push_back(new EggVertex); } break; -case 39: + + case 40: #line 613 "parser.yxx" -{ + { PT(EggVertex) vtx = DCAST(EggVertex, egg_stack.back()); egg_stack.pop_back(); DCAST(EggVertexPool, egg_stack.back())->add_vertex(vtx); } break; -case 40: + + case 41: #line 620 "parser.yxx" -{ + { vertex_index = (int)yyvsp[0]._number; EggVertexPool *pool = DCAST(EggVertexPool, egg_stack.back()); @@ -2028,9 +2315,10 @@ case 40: egg_stack.push_back(new EggVertex); } break; -case 41: + + case 42: #line 645 "parser.yxx" -{ + { PT(EggVertex) vtx = DCAST(EggVertex, egg_stack.back()); egg_stack.pop_back(); @@ -2040,33 +2328,38 @@ case 41: } } break; -case 42: + + case 43: #line 666 "parser.yxx" -{ + { DCAST(EggVertex, egg_stack.back())->set_pos(yyvsp[0]._number); } break; -case 43: + + case 44: #line 670 "parser.yxx" -{ + { DCAST(EggVertex, egg_stack.back())->set_pos(LPoint2d(yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 44: + + case 45: #line 674 "parser.yxx" -{ + { DCAST(EggVertex, egg_stack.back())->set_pos(LPoint3d(yyvsp[-2]._number, yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 45: + + case 46: #line 678 "parser.yxx" -{ + { DCAST(EggVertex, egg_stack.back())->set_pos(LPoint4d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 49: + + case 50: #line 685 "parser.yxx" -{ + { bool inserted = DCAST(EggVertex, egg_stack.back())->_dxyzs. insert(EggMorphVertex(yyvsp[-5]._string, LVector3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; if (!inserted) { @@ -2074,9 +2367,10 @@ case 49: } } break; -case 50: + + case 51: #line 693 "parser.yxx" -{ + { bool inserted = DCAST(EggVertex, egg_stack.back())->_dxyzs. insert(EggMorphVertex(yyvsp[-4]._string, LVector3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; if (!inserted) { @@ -2084,15 +2378,17 @@ case 50: } } break; -case 51: + + case 52: #line 712 "parser.yxx" -{ + { DCAST(EggVertex, egg_stack.back())->set_uv(TexCoordd(yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 52: + + case 53: #line 716 "parser.yxx" -{ + { bool inserted = DCAST(EggVertex, egg_stack.back())->_duvs. insert(EggMorphTexCoord(yyvsp[-4]._string, LVector2d(yyvsp[-2]._number, yyvsp[-1]._number))).second; if (!inserted) { @@ -2100,9 +2396,10 @@ case 52: } } break; -case 53: + + case 54: #line 724 "parser.yxx" -{ + { bool inserted = DCAST(EggVertex, egg_stack.back())->_duvs. insert(EggMorphTexCoord(yyvsp[-3]._string, LVector2d(yyvsp[-2]._number, yyvsp[-1]._number))).second; if (!inserted) { @@ -2110,15 +2407,17 @@ case 53: } } break; -case 54: + + case 55: #line 742 "parser.yxx" -{ + { DCAST(EggVertex, egg_stack.back())->set_normal(Normald(yyvsp[-2]._number, yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 55: + + case 56: #line 746 "parser.yxx" -{ + { bool inserted = DCAST(EggVertex, egg_stack.back())->_dnormals. insert(EggMorphNormal(yyvsp[-5]._string, LVector3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; if (!inserted) { @@ -2126,9 +2425,10 @@ case 55: } } break; -case 56: + + case 57: #line 754 "parser.yxx" -{ + { bool inserted = DCAST(EggVertex, egg_stack.back())->_dnormals. insert(EggMorphNormal(yyvsp[-4]._string, LVector3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; if (!inserted) { @@ -2136,15 +2436,17 @@ case 56: } } break; -case 57: + + case 58: #line 772 "parser.yxx" -{ + { DCAST(EggVertex, egg_stack.back())->set_color(Colorf(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 58: + + case 59: #line 776 "parser.yxx" -{ + { bool inserted = DCAST(EggVertex, egg_stack.back())->_drgbas. insert(EggMorphColor(yyvsp[-6]._string, LVector4f(yyvsp[-4]._number, yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; if (!inserted) { @@ -2152,9 +2454,10 @@ case 58: } } break; -case 59: + + case 60: #line 784 "parser.yxx" -{ + { bool inserted = DCAST(EggVertex, egg_stack.back())->_drgbas. insert(EggMorphColor(yyvsp[-5]._string, LVector4f(yyvsp[-4]._number, yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; if (!inserted) { @@ -2162,53 +2465,60 @@ case 59: } } break; -case 60: + + case 61: #line 802 "parser.yxx" -{ + { EggGroup *group = new EggGroup(yyvsp[0]._string); egg_stack.push_back(group); } break; -case 61: + + case 62: #line 807 "parser.yxx" -{ + { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 62: + + case 63: #line 822 "parser.yxx" -{ + { EggGroup *group = new EggGroup(yyvsp[0]._string); group->set_group_type(EggGroup::GT_joint); egg_stack.push_back(group); } break; -case 63: + + case 64: #line 828 "parser.yxx" -{ + { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 64: + + case 65: #line 843 "parser.yxx" -{ + { EggGroup *group = new EggGroup(yyvsp[0]._string); group->set_group_type(EggGroup::GT_instance); egg_stack.push_back(group); } break; -case 65: + + case 66: #line 849 "parser.yxx" -{ + { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 67: + + case 68: #line 865 "parser.yxx" -{ + { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string name = yyvsp[-3]._string; double value = yyvsp[-1]._number; @@ -2262,9 +2572,10 @@ case 67: } } break; -case 68: + + case 69: #line 919 "parser.yxx" -{ + { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string strval = yyvsp[-1]._string; @@ -2276,33 +2587,37 @@ case 68: } } break; -case 69: + + case 70: #line 931 "parser.yxx" -{ + { EggGroup *group = DCAST(EggGroup, egg_stack.back()); group->set_billboard_center(LPoint3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number)); } break; -case 70: + + case 71: #line 936 "parser.yxx" -{ + { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string name = yyvsp[-4]._string; group->set_collision_name(name); } break; -case 71: + + case 72: #line 943 "parser.yxx" -{ + { EggGroup *group = DCAST(EggGroup, egg_stack.back()); int value = (int)yyvsp[-1]._number; group->set_dcs_type(value!=0 ? EggGroup::DC_default : EggGroup::DC_none); } break; -case 72: + + case 73: #line 949 "parser.yxx" -{ + { // The special flavor of DCS, with { sync } or { nosync }. EggGroup *group = DCAST(EggGroup, egg_stack.back()); string strval = yyvsp[-1]._string; @@ -2315,18 +2630,20 @@ case 72: } } break; -case 73: + + case 74: #line 962 "parser.yxx" -{ + { // The traditional flavor of DART, with { 0 } or { 1 }. EggGroup *group = DCAST(EggGroup, egg_stack.back()); int value = (int)yyvsp[-1]._number; group->set_dart_type(value!=0 ? EggGroup::DT_default : EggGroup::DT_none); } break; -case 74: + + case 75: #line 969 "parser.yxx" -{ + { // The special flavor of DART, with { sync } or { nosync }. EggGroup *group = DCAST(EggGroup, egg_stack.back()); string strval = yyvsp[-1]._string; @@ -2339,54 +2656,61 @@ case 74: } } break; -case 75: + + case 76: #line 982 "parser.yxx" -{ + { EggGroup *group = DCAST(EggGroup, egg_stack.back()); int value = (int)yyvsp[-1]._number; group->set_switch_flag(value!=0); } break; -case 76: + + case 77: #line 988 "parser.yxx" -{ + { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string type = yyvsp[-1]._string; group->add_object_type(type); } break; -case 77: + + case 78: #line 994 "parser.yxx" -{ + { EggGroup *group = DCAST(EggGroup, egg_stack.back()); int value = (int)yyvsp[-1]._number; group->set_model_flag(value!=0); } break; -case 78: + + case 79: #line 1000 "parser.yxx" -{ + { EggGroup *group = DCAST(EggGroup, egg_stack.back()); group->set_tag(yyvsp[-3]._string, yyvsp[-1]._string); } break; -case 79: + + case 80: #line 1005 "parser.yxx" -{ + { EggGroup *group = DCAST(EggGroup, egg_stack.back()); int value = (int)yyvsp[-1]._number; group->set_texlist_flag(value!=0); } break; -case 83: + + case 84: #line 1014 "parser.yxx" -{ + { DCAST(EggGroup, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); } break; -case 84: + + case 85: #line 1028 "parser.yxx" -{ + { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string strval = yyvsp[0]._string; @@ -2398,9 +2722,10 @@ case 84: } } break; -case 86: + + case 87: #line 1051 "parser.yxx" -{ + { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string strval = yyvsp[0]._string; @@ -2412,57 +2737,66 @@ case 86: } } break; -case 87: + + case 88: #line 1073 "parser.yxx" -{ + { DCAST(EggGroup, egg_stack.back())->clear_transform(); } break; -case 97: + + case 98: #line 1099 "parser.yxx" -{ + { DCAST(EggGroup, egg_stack.back())->add_translate(LVector3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number)); } break; -case 98: + + case 99: #line 1105 "parser.yxx" -{ + { DCAST(EggGroup, egg_stack.back())->add_rotx(yyvsp[-1]._number); } break; -case 99: + + case 100: #line 1111 "parser.yxx" -{ + { DCAST(EggGroup, egg_stack.back())->add_roty(yyvsp[-1]._number); } break; -case 100: + + case 101: #line 1117 "parser.yxx" -{ + { DCAST(EggGroup, egg_stack.back())->add_rotz(yyvsp[-1]._number); } break; -case 101: + + case 102: #line 1123 "parser.yxx" -{ + { DCAST(EggGroup, egg_stack.back())->add_rotate(yyvsp[-4]._number, LVector3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number)); } break; -case 102: + + case 103: #line 1129 "parser.yxx" -{ + { DCAST(EggGroup, egg_stack.back())->add_scale(LVecBase3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number)); } break; -case 103: + + case 104: #line 1133 "parser.yxx" -{ + { DCAST(EggGroup, egg_stack.back())->add_uniform_scale(yyvsp[-1]._number); } break; -case 106: + + case 107: #line 1148 "parser.yxx" -{ + { DCAST(EggGroup, egg_stack.back())->add_matrix (LMatrix4d(yyvsp[-15]._number, yyvsp[-14]._number, yyvsp[-13]._number, yyvsp[-12]._number, yyvsp[-11]._number, yyvsp[-10]._number, yyvsp[-9]._number, yyvsp[-8]._number, @@ -2470,47 +2804,54 @@ case 106: yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 107: + + case 108: #line 1167 "parser.yxx" -{ + { matrix_2d = LMatrix3d::ident_mat(); } break; -case 108: + + case 109: #line 1171 "parser.yxx" -{ + { DCAST(EggTexture, egg_stack.back())->set_transform(matrix_2d); } break; -case 114: + + case 115: #line 1193 "parser.yxx" -{ + { matrix_2d *= LMatrix3d::translate_mat(yyvsp[-2]._number, yyvsp[-1]._number); } break; -case 115: + + case 116: #line 1199 "parser.yxx" -{ + { matrix_2d *= LMatrix3d::rotate_mat(yyvsp[-1]._number); } break; -case 116: + + case 117: #line 1205 "parser.yxx" -{ + { matrix_2d *= LMatrix3d::scale_mat(yyvsp[-2]._number, yyvsp[-1]._number); } break; -case 119: + + case 120: #line 1218 "parser.yxx" -{ + { matrix_2d *= LMatrix3d(yyvsp[-8]._number, yyvsp[-7]._number, yyvsp[-6]._number, yyvsp[-5]._number, yyvsp[-4]._number, yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number, yyvsp[0]._number); } break; -case 120: + + case 121: #line 1235 "parser.yxx" -{ + { if (yyvsp[-2]._egg != (EggVertexPool *)NULL) { EggVertexPool *pool = DCAST(EggVertexPool, yyvsp[-2]._egg); EggGroup *group = DCAST(EggGroup, egg_stack.back()); @@ -2532,15 +2873,17 @@ case 120: } } break; -case 121: + + case 122: #line 1268 "parser.yxx" -{ + { yyval._number = 1.0; } break; -case 122: + + case 123: #line 1272 "parser.yxx" -{ + { string name = yyvsp[-3]._string; double value = yyvsp[-1]._number; double result = yyvsp[-5]._number; @@ -2554,75 +2897,86 @@ case 122: yyval._number = result; } break; -case 124: + + case 125: #line 1309 "parser.yxx" -{ + { EggGroup *group = DCAST(EggGroup, egg_stack.back()); group->set_lod(EggSwitchConditionDistance(yyvsp[-8]._number, yyvsp[-7]._number, LPoint3d(yyvsp[-4]._number, yyvsp[-3]._number, yyvsp[-2]._number))); } break; -case 125: + + case 126: #line 1314 "parser.yxx" -{ + { EggGroup *group = DCAST(EggGroup, egg_stack.back()); group->set_lod(EggSwitchConditionDistance(yyvsp[-9]._number, yyvsp[-8]._number, LPoint3d(yyvsp[-4]._number, yyvsp[-3]._number, yyvsp[-2]._number), yyvsp[-7]._number)); } break; -case 126: + + case 127: #line 1331 "parser.yxx" -{ + { egg_stack.push_back(new EggPolygon(yyvsp[0]._string)); } break; -case 127: + + case 128: #line 1335 "parser.yxx" -{ + { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 128: + + case 129: #line 1350 "parser.yxx" -{ + { egg_stack.push_back(new EggPoint(yyvsp[0]._string)); } break; -case 129: + + case 130: #line 1354 "parser.yxx" -{ + { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 130: + + case 131: #line 1369 "parser.yxx" -{ + { egg_stack.push_back(new EggNurbsSurface(yyvsp[0]._string)); } break; -case 131: + + case 132: #line 1373 "parser.yxx" -{ + { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 132: + + case 133: #line 1388 "parser.yxx" -{ + { egg_stack.push_back(new EggNurbsCurve(yyvsp[0]._string)); } break; -case 133: + + case 134: #line 1392 "parser.yxx" -{ + { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 142: + + case 143: #line 1416 "parser.yxx" -{ + { EggPrimitive *primitive = DCAST(EggPrimitive, egg_stack.back()); string name = yyvsp[-3]._string; double value = yyvsp[-1]._number; @@ -2661,17 +3015,19 @@ case 142: } } break; -case 154: + + case 155: #line 1476 "parser.yxx" -{ + { EggNurbsCurve *curve = DCAST(EggNurbsCurve, yyvsp[0]._egg); EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); nurbs->_curves_on_surface.push_back(curve); } break; -case 156: + + case 157: #line 1483 "parser.yxx" -{ + { EggNurbsSurface *primitive = DCAST(EggNurbsSurface, egg_stack.back()); string name = yyvsp[-3]._string; double value = yyvsp[-1]._number; @@ -2714,9 +3070,10 @@ case 156: } } break; -case 167: + + case 168: #line 1547 "parser.yxx" -{ + { EggNurbsCurve *primitive = DCAST(EggNurbsCurve, egg_stack.back()); string name = yyvsp[-3]._string; double value = yyvsp[-1]._number; @@ -2765,18 +3122,20 @@ case 167: } } break; -case 168: + + case 169: #line 1606 "parser.yxx" -{ + { if (yyvsp[0]._egg != (EggTexture *)NULL) { EggTexture *texture = DCAST(EggTexture, yyvsp[0]._egg); DCAST(EggPrimitive, egg_stack.back())->set_texture(texture); } } break; -case 169: + + case 170: #line 1623 "parser.yxx" -{ + { EggTexture *texture = NULL; // Defining a texture on-the-fly. @@ -2806,24 +3165,27 @@ case 169: DCAST(EggPrimitive, egg_stack.back())->set_texture(texture); } break; -case 170: + + case 171: #line 1663 "parser.yxx" -{ + { if (yyvsp[0]._egg != (EggMaterial *)NULL) { EggMaterial *material = DCAST(EggMaterial, yyvsp[0]._egg); DCAST(EggPrimitive, egg_stack.back())->set_material(material); } } break; -case 171: + + case 172: #line 1680 "parser.yxx" -{ + { DCAST(EggPrimitive, egg_stack.back())->set_normal(Normald(yyvsp[-2]._number, yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 172: + + case 173: #line 1684 "parser.yxx" -{ + { bool inserted = DCAST(EggPrimitive, egg_stack.back())->_dnormals. insert(EggMorphNormal(yyvsp[-5]._string, LVector3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; if (!inserted) { @@ -2831,9 +3193,10 @@ case 172: } } break; -case 173: + + case 174: #line 1692 "parser.yxx" -{ + { bool inserted = DCAST(EggPrimitive, egg_stack.back())->_dnormals. insert(EggMorphNormal(yyvsp[-4]._string, LVector3d(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; if (!inserted) { @@ -2841,15 +3204,17 @@ case 173: } } break; -case 174: + + case 175: #line 1710 "parser.yxx" -{ + { DCAST(EggPrimitive, egg_stack.back())->set_color(Colorf(yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number, yyvsp[0]._number)); } break; -case 175: + + case 176: #line 1714 "parser.yxx" -{ + { bool inserted = DCAST(EggPrimitive, egg_stack.back())->_drgbas. insert(EggMorphColor(yyvsp[-6]._string, LVector4f(yyvsp[-4]._number, yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; if (!inserted) { @@ -2857,9 +3222,10 @@ case 175: } } break; -case 176: + + case 177: #line 1722 "parser.yxx" -{ + { bool inserted = DCAST(EggPrimitive, egg_stack.back())->_drgbas. insert(EggMorphColor(yyvsp[-5]._string, LVector4f(yyvsp[-4]._number, yyvsp[-3]._number, yyvsp[-2]._number, yyvsp[-1]._number))).second; if (!inserted) { @@ -2867,17 +3233,19 @@ case 176: } } break; -case 177: + + case 178: #line 1740 "parser.yxx" -{ + { EggPrimitive *primitive = DCAST(EggPrimitive, egg_stack.back()); int value = (int)yyvsp[0]._number; primitive->set_bface_flag(value!=0); } break; -case 178: + + case 179: #line 1756 "parser.yxx" -{ + { if (yyvsp[-2]._egg != (EggVertexPool *)NULL) { EggVertexPool *pool = DCAST(EggVertexPool, yyvsp[-2]._egg); EggPrimitive *prim = DCAST(EggPrimitive, egg_stack.back()); @@ -2898,9 +3266,10 @@ case 178: } } break; -case 179: + + case 180: #line 1787 "parser.yxx" -{ + { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); int u_order = (int)yyvsp[-1]._number; int v_order = (int)yyvsp[0]._number; @@ -2908,9 +3277,10 @@ case 179: nurbs->set_v_order(v_order); } break; -case 180: + + case 181: #line 1805 "parser.yxx" -{ + { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); PTA_double nums = yyvsp[0]._number_list; @@ -2920,9 +3290,10 @@ case 180: } } break; -case 181: + + case 182: #line 1825 "parser.yxx" -{ + { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); PTA_double nums = yyvsp[0]._number_list; @@ -2932,24 +3303,27 @@ case 181: } } break; -case 182: + + case 183: #line 1845 "parser.yxx" -{ + { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); nurbs->_trims.push_back(EggNurbsSurface::Trim()); } break; -case 184: + + case 185: #line 1861 "parser.yxx" -{ + { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); nassertr(!nurbs->_trims.empty(), 0); nurbs->_trims.back().push_back(EggNurbsSurface::Loop()); } break; -case 185: + + case 186: #line 1867 "parser.yxx" -{ + { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); nassertr(!nurbs->_trims.empty(), 0); nassertr(!nurbs->_trims.back().empty(), 0); @@ -2957,17 +3331,19 @@ case 185: nurbs->_trims.back().back().push_back(curve); } break; -case 186: + + case 187: #line 1886 "parser.yxx" -{ + { EggNurbsCurve *nurbs = DCAST(EggNurbsCurve, egg_stack.back()); int order = (int)yyvsp[0]._number; nurbs->set_order(order); } break; -case 187: + + case 188: #line 1902 "parser.yxx" -{ + { EggNurbsCurve *nurbs = DCAST(EggNurbsCurve, egg_stack.back()); PTA_double nums = yyvsp[0]._number_list; @@ -2977,83 +3353,95 @@ case 187: } } break; -case 188: + + case 189: #line 1923 "parser.yxx" -{ + { EggTable *table = new EggTable(yyvsp[0]._string); table->set_table_type(EggTable::TT_table); egg_stack.push_back(table); } break; -case 189: + + case 190: #line 1929 "parser.yxx" -{ + { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 190: + + case 191: #line 1945 "parser.yxx" -{ + { EggTable *table = new EggTable(yyvsp[0]._string); table->set_table_type(EggTable::TT_bundle); egg_stack.push_back(table); } break; -case 191: + + case 192: #line 1951 "parser.yxx" -{ + { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 193: + + case 194: #line 1968 "parser.yxx" -{ + { DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); } break; -case 194: + + case 195: #line 1972 "parser.yxx" -{ + { DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); } break; -case 195: + + case 196: #line 1976 "parser.yxx" -{ + { DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); } break; -case 196: + + case 197: #line 1980 "parser.yxx" -{ + { DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); } break; -case 197: + + case 198: #line 1984 "parser.yxx" -{ + { DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); } break; -case 198: + + case 199: #line 1999 "parser.yxx" -{ + { EggSAnimData *anim_data = new EggSAnimData(yyvsp[0]._string); egg_stack.push_back(anim_data); } break; -case 199: + + case 200: #line 2004 "parser.yxx" -{ + { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 201: + + case 202: #line 2021 "parser.yxx" -{ + { EggSAnimData *anim_data = DCAST(EggSAnimData, egg_stack.back()); string name = yyvsp[-3]._string; double value = yyvsp[-1]._number; @@ -3065,29 +3453,33 @@ case 201: } } break; -case 202: + + case 203: #line 2033 "parser.yxx" -{ + { DCAST(EggSAnimData, egg_stack.back())->set_data(yyvsp[-1]._number_list); } break; -case 203: + + case 204: #line 2047 "parser.yxx" -{ + { EggXfmAnimData *anim_data = new EggXfmAnimData(yyvsp[0]._string); egg_stack.push_back(anim_data); } break; -case 204: + + case 205: #line 2052 "parser.yxx" -{ + { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 206: + + case 207: #line 2069 "parser.yxx" -{ + { EggXfmAnimData *anim_data = DCAST(EggXfmAnimData, egg_stack.back()); string name = yyvsp[-3]._string; double value = yyvsp[-1]._number; @@ -3104,29 +3496,33 @@ case 206: } } break; -case 207: + + case 208: #line 2086 "parser.yxx" -{ + { DCAST(EggXfmAnimData, egg_stack.back())->set_data(yyvsp[-1]._number_list); } break; -case 208: + + case 209: #line 2100 "parser.yxx" -{ + { EggXfmSAnim *anim_group = new EggXfmSAnim(yyvsp[0]._string); egg_stack.push_back(anim_group); } break; -case 209: + + case 210: #line 2105 "parser.yxx" -{ + { yyval._egg = egg_stack.back(); egg_stack.pop_back(); } break; -case 211: + + case 212: #line 2122 "parser.yxx" -{ + { EggXfmSAnim *anim_group = DCAST(EggXfmSAnim, egg_stack.back()); string name = yyvsp[-3]._string; double value = yyvsp[-1]._number; @@ -3141,39 +3537,45 @@ case 211: } } break; -case 212: + + case 213: #line 2137 "parser.yxx" -{ + { DCAST(EggXfmSAnim, egg_stack.back())->add_child(DCAST(EggNode, yyvsp[0]._egg)); } break; -case 213: + + case 214: #line 2152 "parser.yxx" -{ + { yyval._number_list = PTA_double::empty_array(0); } break; -case 214: + + case 215: #line 2156 "parser.yxx" -{ + { yyval._number_list.push_back((double)yyvsp[0]._number); } break; -case 215: + + case 216: #line 2170 "parser.yxx" -{ + { yyval._number_list = PTA_double::empty_array(0); } break; -case 216: + + case 217: #line 2174 "parser.yxx" -{ + { yyval._number_list.push_back(yyvsp[0]._number); } break; -case 217: + + case 218: #line 2188 "parser.yxx" -{ + { string name = yyvsp[0]._string; Textures::iterator vpi = textures.find(name); if (vpi == textures.end()) { @@ -3184,9 +3586,10 @@ case 217: } } break; -case 218: + + case 219: #line 2209 "parser.yxx" -{ + { string name = yyvsp[0]._string; Materials::iterator vpi = materials.find(name); if (vpi == materials.end()) { @@ -3197,9 +3600,10 @@ case 218: } } break; -case 219: + + case 220: #line 2230 "parser.yxx" -{ + { string name = yyvsp[0]._string; VertexPools::iterator vpi = vertex_pools.find(name); if (vpi == vertex_pools.end()) { @@ -3210,95 +3614,109 @@ case 219: } } break; -case 220: + + case 221: #line 2252 "parser.yxx" -{ + { eggyyerror("Name required."); yyval._string = ""; } break; -case 223: + + case 224: #line 2281 "parser.yxx" -{ + { eggyyerror("String required."); yyval._string = ""; } break; -case 225: + + case 226: #line 2297 "parser.yxx" -{ + { yyval._string = ""; } break; -case 227: + + case 228: #line 2315 "parser.yxx" -{ + { yyval._string = yyvsp[0]._string; } break; -case 228: + + case 229: #line 2319 "parser.yxx" -{ + { yyval._string = yyvsp[0]._string; } break; -case 230: + + case 231: #line 2336 "parser.yxx" -{ + { yyval._string = ""; } break; -case 231: + + case 232: #line 2340 "parser.yxx" -{ + { yyval._string = yyvsp[0]._string; } break; -case 232: + + case 233: #line 2356 "parser.yxx" -{ + { yyval._string = yyvsp[0]._string; } break; -case 233: + + case 234: #line 2360 "parser.yxx" -{ + { yyval._string = yyvsp[-1]._string + "\n" + yyvsp[0]._string; } break; -case 235: + + case 236: #line 2375 "parser.yxx" -{ + { yyval._number = yyvsp[0]._ulong; } break; -case 236: + + case 237: #line 2390 "parser.yxx" -{ + { yyval._number = yyvsp[0]._number; yyval._ulong = (unsigned long)yyvsp[0]._number; yyval._string = yyvsp[0]._string; } break; -case 237: + + case 238: #line 2396 "parser.yxx" -{ + { yyval._number = yyvsp[0]._ulong; yyval._ulong = yyvsp[0]._ulong; yyval._string = yyvsp[0]._string; } break; -case 238: + + case 239: #line 2402 "parser.yxx" -{ + { yyval._number = 0.0; yyval._ulong = 0; yyval._string = yyvsp[0]._string; } break; -case 239: + + case 240: #line 2419 "parser.yxx" -{ + { int i = (int)yyvsp[0]._number; if ((double)i != yyvsp[0]._number) { eggyywarning("Integer expected."); @@ -3306,38 +3724,28 @@ case 239: } } break; -case 240: + + case 241: #line 2427 "parser.yxx" -{ + { yyval._number = yyvsp[0]._ulong; } break; -} -#line 705 "/usr/share/bison/bison.simple" + } + +/* Line 991 of yacc.c. */ +#line 3739 "y.tab.c" yyvsp -= 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; -#if YYLSP_NEEDED - *++yylsp = yyloc; -#endif + /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule @@ -3345,11 +3753,11 @@ case 240: yyn = yyr1[yyn]; - yystate = yypgoto[yyn - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else - yystate = yydefgoto[yyn - YYNTBASE]; + yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; @@ -3362,13 +3770,13 @@ yyerrlab: if (!yyerrstatus) { ++yynerrs; - -#ifdef YYERROR_VERBOSE +#if YYERROR_VERBOSE yyn = yypact[yystate]; - if (yyn > YYFLAG && yyn < YYLAST) + if (YYPACT_NINF < yyn && yyn < YYLAST) { YYSIZE_T yysize = 0; + int yytype = YYTRANSLATE (yychar); char *yymsg; int yyx, yycount; @@ -3377,15 +3785,15 @@ yyerrlab: YYCHECK. */ for (yyx = yyn < 0 ? -yyn : 0; yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) - if (yycheck[yyx + yyn] == yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); + yysize += yystrlen ("syntax error, unexpected ") + 1; + yysize += yystrlen (yytname[yytype]); yymsg = (char *) YYSTACK_ALLOC (yysize); if (yymsg != 0) { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); - yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); + char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); + yyp = yystpcpy (yyp, yytname[yytype]); if (yycount < 5) { @@ -3393,7 +3801,7 @@ yyerrlab: for (yyx = yyn < 0 ? -yyn : 0; yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) - if (yycheck[yyx + yyn] == yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { const char *yyq = ! yycount ? ", expecting " : " or "; yyp = yystpcpy (yyp, yyq); @@ -3405,102 +3813,92 @@ yyerrlab: YYSTACK_FREE (yymsg); } else - yyerror ("parse error; also virtual memory exhausted"); + yyerror ("syntax error; also virtual memory exhausted"); } else -#endif /* defined (YYERROR_VERBOSE) */ - yyerror ("parse error"); +#endif /* YYERROR_VERBOSE */ + yyerror ("syntax error"); } - goto yyerrlab1; -/*--------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action | -`--------------------------------------------------*/ -yyerrlab1: + if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ - /* return failure if at end of input */ + /* Return failure if at end of input. */ if (yychar == YYEOF) - YYABORT; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); + { + /* Pop the error token. */ + 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; + } /* Else will try to reuse lookahead token after shifting the error token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; + goto yyerrlab2; -/*-------------------------------------------------------------------. -| 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. */ +/*----------------------------------------------------. +| yyerrlab1 -- error raised explicitly by an action. | +`----------------------------------------------------*/ +yyerrlab1: - /* If its default is to accept any token, ok. Otherwise pop it. */ - yyn = yydefact[yystate]; - if (yyn) - goto yydefault; + /* Suppress GCC warning that yyerrlab1 is unused when no action + invokes YYERROR. */ +#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__) + __attribute__ ((__unused__)) #endif + goto yyerrlab2; + + /*---------------------------------------------------------------. -| yyerrpop -- pop the current state because it cannot handle the | -| error token | +| yyerrlab2 -- pop states until the error token can be shifted. | `---------------------------------------------------------------*/ -yyerrpop: - if (yyssp == yyss) - YYABORT; - yyvsp--; - yystate = *--yyssp; -#if YYLSP_NEEDED - yylsp--; -#endif +yyerrlab2: + yyerrstatus = 3; /* Each real token shifted decrements this. */ -#if YYDEBUG - if (yydebug) + for (;;) { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); + yydestruct (yystos[yystate], yyvsp); + yyvsp--; + yystate = *--yyssp; + + YY_STACK_PRINT (yyss, yyssp); } -#endif - -/*--------------. -| yyerrhandle. | -`--------------*/ -yyerrhandle: - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; @@ -3508,9 +3906,7 @@ yyerrhandle: YYDPRINTF ((stderr, "Shifting error token, ")); *++yyvsp = yylval; -#if YYLSP_NEEDED - *++yylsp = yylloc; -#endif + yystate = yyn; goto yynewstate; @@ -3530,13 +3926,15 @@ yyabortlab: yyresult = 1; goto yyreturn; -/*---------------------------------------------. -| yyoverflowab -- parser overflow comes here. | -`---------------------------------------------*/ +#ifndef yyoverflow +/*----------------------------------------------. +| yyoverflowlab -- parser overflow comes here. | +`----------------------------------------------*/ yyoverflowlab: yyerror ("parser stack overflow"); yyresult = 2; /* Fall through. */ +#endif yyreturn: #ifndef yyoverflow @@ -3545,4 +3943,6 @@ yyreturn: #endif return yyresult; } -#line 2434 "parser.yxx" + + + diff --git a/panda/src/egg/parser.h.prebuilt b/panda/src/egg/parser.h.prebuilt index 3bb95b734b..2b5dcc821e 100644 --- a/panda/src/egg/parser.h.prebuilt +++ b/panda/src/egg/parser.h.prebuilt @@ -1,90 +1,212 @@ -#ifndef BISON_Y_TAB_H -# define BISON_Y_TAB_H +/* A Bison parser, made by GNU Bison 1.875. */ -# define NUMBER 257 -# define ULONG 258 -# define STRING 259 -# define BEZIERCURVE 260 -# define BFACE 261 -# define BILLBOARD 262 -# define BILLBOARDCENTER 263 -# define BUNDLE 264 -# define CLOSED 265 -# define COLLIDE 266 -# define COMMENT 267 -# define COORDSYSTEM 268 -# define CV 269 -# define DART 270 -# define DNORMAL 271 -# define DRGBA 272 -# define DUV 273 -# define DXYZ 274 -# define DCS 275 -# define DISTANCE 276 -# define DTREF 277 -# define DYNAMICVERTEXPOOL 278 -# define EXTERNAL_FILE 279 -# define FLIGHT 280 -# define GROUP 281 -# define HIP 282 -# define INTANGENT 283 -# define JOINT 284 -# define KNOTS 285 -# define INCLUDE 286 -# define INSTANCE 287 -# define LOOP 288 -# define MATERIAL 289 -# define MATRIX3 290 -# define MATRIX4 291 -# define MODEL 292 -# define MREF 293 -# define NORMAL 294 -# define NURBSCURVE 295 -# define NURBSSURFACE 296 -# define OBJECTTYPE 297 -# define ORDER 298 -# define OUTTANGENT 299 -# define POINTLIGHT 300 -# define POLYGON 301 -# define REF 302 -# define RGBA 303 -# define ROTATE 304 -# define ROTX 305 -# define ROTY 306 -# define ROTZ 307 -# define SANIM 308 -# define SCALAR 309 -# define SCALE 310 -# define SEQUENCE 311 -# define SHADING 312 -# define SWITCH 313 -# define SWITCHCONDITION 314 -# define TABLE 315 -# define TABLE_V 316 -# define TAG 317 -# define TEXLIST 318 -# define TEXTURE 319 -# define TLENGTHS 320 -# define TRANSFORM 321 -# define TRANSLATE 322 -# define TREF 323 -# define TRIM 324 -# define TXT 325 -# define UKNOTS 326 -# define UV 327 -# define VKNOTS 328 -# define VERTEX 329 -# define VERTEXANIM 330 -# define VERTEXPOOL 331 -# define VERTEXREF 332 -# define XFMANIM 333 -# define XFMSANIM 334 -# define START_EGG 335 -# define START_GROUP_BODY 336 -# define START_TEXTURE_BODY 337 -# define START_PRIMITIVE_BODY 338 +/* Skeleton parser for Yacc-like parsing with Bison, + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software 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. */ + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + NUMBER = 258, + ULONG = 259, + STRING = 260, + BEZIERCURVE = 261, + BFACE = 262, + BILLBOARD = 263, + BILLBOARDCENTER = 264, + BUNDLE = 265, + CLOSED = 266, + COLLIDE = 267, + COMMENT = 268, + COORDSYSTEM = 269, + CV = 270, + DART = 271, + DNORMAL = 272, + DRGBA = 273, + DUV = 274, + DXYZ = 275, + DCS = 276, + DISTANCE = 277, + DTREF = 278, + DYNAMICVERTEXPOOL = 279, + EXTERNAL_FILE = 280, + FLIGHT = 281, + GROUP = 282, + HIP = 283, + INTANGENT = 284, + JOINT = 285, + KNOTS = 286, + INCLUDE = 287, + INSTANCE = 288, + LOOP = 289, + MATERIAL = 290, + MATRIX3 = 291, + MATRIX4 = 292, + MODEL = 293, + MREF = 294, + NORMAL = 295, + NURBSCURVE = 296, + NURBSSURFACE = 297, + OBJECTTYPE = 298, + ORDER = 299, + OUTTANGENT = 300, + POINTLIGHT = 301, + POLYGON = 302, + REF = 303, + RGBA = 304, + ROTATE = 305, + ROTX = 306, + ROTY = 307, + ROTZ = 308, + SANIM = 309, + SCALAR = 310, + SCALE = 311, + SEQUENCE = 312, + SHADING = 313, + SWITCH = 314, + SWITCHCONDITION = 315, + TABLE = 316, + TABLE_V = 317, + TAG = 318, + TEXLIST = 319, + TEXTURE = 320, + TLENGTHS = 321, + TRANSFORM = 322, + TRANSLATE = 323, + TREF = 324, + TRIM = 325, + TXT = 326, + UKNOTS = 327, + UV = 328, + VKNOTS = 329, + VERTEX = 330, + VERTEXANIM = 331, + VERTEXPOOL = 332, + VERTEXREF = 333, + XFMANIM = 334, + XFMSANIM = 335, + START_EGG = 336, + START_GROUP_BODY = 337, + START_TEXTURE_BODY = 338, + START_PRIMITIVE_BODY = 339 + }; +#endif +#define NUMBER 258 +#define ULONG 259 +#define STRING 260 +#define BEZIERCURVE 261 +#define BFACE 262 +#define BILLBOARD 263 +#define BILLBOARDCENTER 264 +#define BUNDLE 265 +#define CLOSED 266 +#define COLLIDE 267 +#define COMMENT 268 +#define COORDSYSTEM 269 +#define CV 270 +#define DART 271 +#define DNORMAL 272 +#define DRGBA 273 +#define DUV 274 +#define DXYZ 275 +#define DCS 276 +#define DISTANCE 277 +#define DTREF 278 +#define DYNAMICVERTEXPOOL 279 +#define EXTERNAL_FILE 280 +#define FLIGHT 281 +#define GROUP 282 +#define HIP 283 +#define INTANGENT 284 +#define JOINT 285 +#define KNOTS 286 +#define INCLUDE 287 +#define INSTANCE 288 +#define LOOP 289 +#define MATERIAL 290 +#define MATRIX3 291 +#define MATRIX4 292 +#define MODEL 293 +#define MREF 294 +#define NORMAL 295 +#define NURBSCURVE 296 +#define NURBSSURFACE 297 +#define OBJECTTYPE 298 +#define ORDER 299 +#define OUTTANGENT 300 +#define POINTLIGHT 301 +#define POLYGON 302 +#define REF 303 +#define RGBA 304 +#define ROTATE 305 +#define ROTX 306 +#define ROTY 307 +#define ROTZ 308 +#define SANIM 309 +#define SCALAR 310 +#define SCALE 311 +#define SEQUENCE 312 +#define SHADING 313 +#define SWITCH 314 +#define SWITCHCONDITION 315 +#define TABLE 316 +#define TABLE_V 317 +#define TAG 318 +#define TEXLIST 319 +#define TEXTURE 320 +#define TLENGTHS 321 +#define TRANSFORM 322 +#define TRANSLATE 323 +#define TREF 324 +#define TRIM 325 +#define TXT 326 +#define UKNOTS 327 +#define UV 328 +#define VKNOTS 329 +#define VERTEX 330 +#define VERTEXANIM 331 +#define VERTEXPOOL 332 +#define VERTEXREF 333 +#define XFMANIM 334 +#define XFMSANIM 335 +#define START_EGG 336 +#define START_GROUP_BODY 337 +#define START_TEXTURE_BODY 338 +#define START_PRIMITIVE_BODY 339 + + + + +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +typedef int YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif extern YYSTYPE eggyylval; -#endif /* not BISON_Y_TAB_H */ + +