diff options
Diffstat (limited to 'src/vhdlparser.cpp')
-rw-r--r-- | src/vhdlparser.cpp | 6912 |
1 files changed, 6912 insertions, 0 deletions
diff --git a/src/vhdlparser.cpp b/src/vhdlparser.cpp new file mode 100644 index 0000000..6ccfa75 --- /dev/null +++ b/src/vhdlparser.cpp @@ -0,0 +1,6912 @@ +/* A Bison parser, made by GNU Bison 2.3. */ + +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + 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., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton 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 + +/* Bison version. */ +#define YYBISON_VERSION "2.3" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 0 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + +/* Substitute the variable and function names. */ +#define yyparse vhdlScanYYparse +#define yylex vhdlScanYYlex +#define yyerror vhdlScanYYerror +#define yylval vhdlScanYYlval +#define yychar vhdlScanYYchar +#define yydebug vhdlScanYYdebug +#define yynerrs vhdlScanYYnerrs + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + t_ABSTRLIST = 258, + t_CHARLIST = 259, + t_DIGIT = 260, + t_STRING = 261, + t_LETTER = 262, + t_ACCESS = 263, + t_AFTER = 264, + t_ALIAS = 265, + t_ALL = 266, + t_AND = 267, + t_ARCHITECTURE = 268, + t_ARRAY = 269, + t_ASSERT = 270, + t_ATTRIBUTE = 271, + t_BEGIN = 272, + t_BLOCK = 273, + t_BODY = 274, + t_BUFFER = 275, + t_BUS = 276, + t_CASE = 277, + t_COMPONENT = 278, + t_CONFIGURATION = 279, + t_CONSTANT = 280, + t_DISCONNECT = 281, + t_DOWNTO = 282, + t_ELSE = 283, + t_ELSIF = 284, + t_END = 285, + t_ENTITY = 286, + t_EXIT = 287, + t_FILE = 288, + t_FOR = 289, + t_FUNCTION = 290, + t_GENERATE = 291, + t_GENERIC = 292, + t_GUARDED = 293, + t_IF = 294, + t_IN = 295, + t_INOUT = 296, + t_IS = 297, + t_LABEL = 298, + t_LIBRARY = 299, + t_LINKAGE = 300, + t_LOOP = 301, + t_MAP = 302, + t_NAND = 303, + t_NEW = 304, + t_NEXT = 305, + t_NOR = 306, + t_NULL = 307, + t_OF = 308, + t_ON = 309, + t_OPEN = 310, + t_OR = 311, + t_OTHERS = 312, + t_OUT = 313, + t_PACKAGE = 314, + t_PORT = 315, + t_PROCEDURE = 316, + t_PROCESS = 317, + t_RANGE = 318, + t_RECORD = 319, + t_REGISTER = 320, + t_REPORT = 321, + t_RETURN = 322, + t_SELECT = 323, + t_SEVERITY = 324, + t_SIGNAL = 325, + t_SUBTYPE = 326, + t_THEN = 327, + t_TO = 328, + t_TRANSPORT = 329, + t_TYPE = 330, + t_UNITS = 331, + t_UNTIL = 332, + t_USE = 333, + t_VARIABLE = 334, + t_WAIT = 335, + t_WHEN = 336, + t_WHILE = 337, + t_WITH = 338, + t_XOR = 339, + t_IMPURE = 340, + t_PURE = 341, + t_GROUP = 342, + t_POSTPONED = 343, + t_SHARED = 344, + t_XNOR = 345, + t_SLL = 346, + t_SRA = 347, + t_SLA = 348, + t_SRL = 349, + t_ROR = 350, + t_ROL = 351, + t_UNAFFECTED = 352, + t_ASSUME_GUARANTEE = 353, + t_ASSUME = 354, + t_CONTEXT = 355, + t_COVER = 356, + t_DEFAULT = 357, + t_FAIRNESS = 358, + t_FORCE = 359, + t_INERTIAL = 360, + t_LITERAL = 361, + t_PARAMETER = 362, + t_PROTECTED = 363, + t_PROPERTY = 364, + t_REJECT = 365, + t_RELEASE = 366, + t_RESTRICT = 367, + t_RESTRICT_GUARANTEE = 368, + t_SEQUENCE = 369, + t_STRONG = 370, + t_VMODE = 371, + t_VPROP = 372, + t_VUNIT = 373, + t_SLSL = 374, + t_SRSR = 375, + t_QQ = 376, + t_QGT = 377, + t_QLT = 378, + t_QG = 379, + t_QL = 380, + t_QEQU = 381, + t_QNEQU = 382, + t_GESym = 383, + t_GTSym = 384, + t_LESym = 385, + t_LTSym = 386, + t_NESym = 387, + t_EQSym = 388, + t_Ampersand = 389, + t_Minus = 390, + t_Plus = 391, + MED_PRECEDENCE = 392, + t_REM = 393, + t_MOD = 394, + t_Slash = 395, + t_Star = 396, + MAX_PRECEDENCE = 397, + t_NOT = 398, + t_ABS = 399, + t_DoubleStar = 400, + t_Apostrophe = 401, + t_LeftParen = 402, + t_RightParen = 403, + t_Comma = 404, + t_VarAsgn = 405, + t_Colon = 406, + t_Semicolon = 407, + t_Arrow = 408, + t_Box = 409, + t_Bar = 410, + t_Dot = 411, + t_Q = 412, + t_At = 413, + t_Neg = 414, + t_LEFTBR = 415, + t_RIGHTBR = 416, + t_ToolDir = 417 + }; +#endif +/* Tokens. */ +#define t_ABSTRLIST 258 +#define t_CHARLIST 259 +#define t_DIGIT 260 +#define t_STRING 261 +#define t_LETTER 262 +#define t_ACCESS 263 +#define t_AFTER 264 +#define t_ALIAS 265 +#define t_ALL 266 +#define t_AND 267 +#define t_ARCHITECTURE 268 +#define t_ARRAY 269 +#define t_ASSERT 270 +#define t_ATTRIBUTE 271 +#define t_BEGIN 272 +#define t_BLOCK 273 +#define t_BODY 274 +#define t_BUFFER 275 +#define t_BUS 276 +#define t_CASE 277 +#define t_COMPONENT 278 +#define t_CONFIGURATION 279 +#define t_CONSTANT 280 +#define t_DISCONNECT 281 +#define t_DOWNTO 282 +#define t_ELSE 283 +#define t_ELSIF 284 +#define t_END 285 +#define t_ENTITY 286 +#define t_EXIT 287 +#define t_FILE 288 +#define t_FOR 289 +#define t_FUNCTION 290 +#define t_GENERATE 291 +#define t_GENERIC 292 +#define t_GUARDED 293 +#define t_IF 294 +#define t_IN 295 +#define t_INOUT 296 +#define t_IS 297 +#define t_LABEL 298 +#define t_LIBRARY 299 +#define t_LINKAGE 300 +#define t_LOOP 301 +#define t_MAP 302 +#define t_NAND 303 +#define t_NEW 304 +#define t_NEXT 305 +#define t_NOR 306 +#define t_NULL 307 +#define t_OF 308 +#define t_ON 309 +#define t_OPEN 310 +#define t_OR 311 +#define t_OTHERS 312 +#define t_OUT 313 +#define t_PACKAGE 314 +#define t_PORT 315 +#define t_PROCEDURE 316 +#define t_PROCESS 317 +#define t_RANGE 318 +#define t_RECORD 319 +#define t_REGISTER 320 +#define t_REPORT 321 +#define t_RETURN 322 +#define t_SELECT 323 +#define t_SEVERITY 324 +#define t_SIGNAL 325 +#define t_SUBTYPE 326 +#define t_THEN 327 +#define t_TO 328 +#define t_TRANSPORT 329 +#define t_TYPE 330 +#define t_UNITS 331 +#define t_UNTIL 332 +#define t_USE 333 +#define t_VARIABLE 334 +#define t_WAIT 335 +#define t_WHEN 336 +#define t_WHILE 337 +#define t_WITH 338 +#define t_XOR 339 +#define t_IMPURE 340 +#define t_PURE 341 +#define t_GROUP 342 +#define t_POSTPONED 343 +#define t_SHARED 344 +#define t_XNOR 345 +#define t_SLL 346 +#define t_SRA 347 +#define t_SLA 348 +#define t_SRL 349 +#define t_ROR 350 +#define t_ROL 351 +#define t_UNAFFECTED 352 +#define t_ASSUME_GUARANTEE 353 +#define t_ASSUME 354 +#define t_CONTEXT 355 +#define t_COVER 356 +#define t_DEFAULT 357 +#define t_FAIRNESS 358 +#define t_FORCE 359 +#define t_INERTIAL 360 +#define t_LITERAL 361 +#define t_PARAMETER 362 +#define t_PROTECTED 363 +#define t_PROPERTY 364 +#define t_REJECT 365 +#define t_RELEASE 366 +#define t_RESTRICT 367 +#define t_RESTRICT_GUARANTEE 368 +#define t_SEQUENCE 369 +#define t_STRONG 370 +#define t_VMODE 371 +#define t_VPROP 372 +#define t_VUNIT 373 +#define t_SLSL 374 +#define t_SRSR 375 +#define t_QQ 376 +#define t_QGT 377 +#define t_QLT 378 +#define t_QG 379 +#define t_QL 380 +#define t_QEQU 381 +#define t_QNEQU 382 +#define t_GESym 383 +#define t_GTSym 384 +#define t_LESym 385 +#define t_LTSym 386 +#define t_NESym 387 +#define t_EQSym 388 +#define t_Ampersand 389 +#define t_Minus 390 +#define t_Plus 391 +#define MED_PRECEDENCE 392 +#define t_REM 393 +#define t_MOD 394 +#define t_Slash 395 +#define t_Star 396 +#define MAX_PRECEDENCE 397 +#define t_NOT 398 +#define t_ABS 399 +#define t_DoubleStar 400 +#define t_Apostrophe 401 +#define t_LeftParen 402 +#define t_RightParen 403 +#define t_Comma 404 +#define t_VarAsgn 405 +#define t_Colon 406 +#define t_Semicolon 407 +#define t_Arrow 408 +#define t_Box 409 +#define t_Bar 410 +#define t_Dot 411 +#define t_Q 412 +#define t_At 413 +#define t_Neg 414 +#define t_LEFTBR 415 +#define t_RIGHTBR 416 +#define t_ToolDir 417 + + + + +/* Copy the first part of user declarations. */ + + +#include <stdio.h> +#include <qcstring.h> +#include <qstringlist.h> + +#ifndef YYSTYPE +typedef int YYSTYPE; +#endif + +struct YYMM +{ + int itype; + QCString qstr; +}; + +// define struct instead of union +#define YYSTYPE YYMM + +#include "membergroup.h" +#include "vhdldocgen.h" +#include "doxygen.h" +#include "searchindex.h" +#include "vhdlscanner.h" +#include "commentscan.h" +#include "entry.h" +#include "arguments.h" + +//-----------------------------variables --------------------------------------------------------------------------- +//static VhdlParser* myconv=0; + +static VhdlContainer s_str; +static QList<Entry>instFiles; +static int yyLineNr; +static Entry* lastCompound; +static Entry* currentCompound; +static Entry* lastEntity; +static Entry* current; +static Entry* tempEntry; +static Entry* current_root; +static QCString compSpec; +static QCString currName; +static int levelCounter; +static QCString confName; +static QCString genLabels; + +static QList<VhdlConfNode> configL; +static VhdlConfNode* currNode; + +static int currP=0; + +enum { GEN_SEC=0x1, PARAM_SEC,CONTEXT_SEC,PROTECTED_SEC } ; + +static int param_sec = 0; +static int parse_sec=0; + + +//---------------------------- function -------------------------------------------------------------------------------- + +int vhdlScanYYlex (); +void vhdlScanYYerror (char const *); + +static void addVhdlType(const QCString &name,int startLine, + int section,int spec, + const char* args,const char* type, + Protection prot=Public); +static void addCompInst(char *n, char* instName,char* comp,int line); + +static void newEntry(); +static void initEntry(Entry *e); +static bool isFuncProcProced(); +static void popConfig(); +static void pushLabel(const QCString &label); +static void popLabel(); +static void addConfigureNode(const char* a,const char*b, + bool isRoot,bool isLeave,bool inlineConf=FALSE); +//static bool addLibUseClause(const QCString &type); +static bool isFuncProcProced(); +static void initEntry(Entry *e); +static void addProto(const char *s1,const char *s2,const char *s3, + const char *s4,const char *s5,const char *s6); +static void createFunction(const QCString &impure,int spec, + const QCString &fname); + +void newVhdlEntry() +{ + newEntry(); +} + +Entry* getCurrentVhdlEntry() +{ + return current; +} + +void initVhdlParser() +{ + lastCompound=0; + lastEntity=0; + currentCompound=0; + lastEntity=0; + current_root=s_str.root; + current=new Entry(); + initEntry(current); +} + +QList<Entry> & getVhdlInstList() +{ + return instFiles; +} + + + + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 1 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + +#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 + + + +/* Copy the second part of user declarations. */ + + +/* Line 216 of yacc.c. */ + + +#ifdef short +# undef short +#endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; +#else +typedef short int yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif +# endif +# ifndef YY_ +# define YY_(msgid) msgid +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(e) ((void) (e)) +#else +# define YYUSE(e) /* empty */ +#endif + +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(n) (n) +#else +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int i) +#else +static int +YYID (i) + int i; +#endif +{ + return i; +} +#endif + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined _STDLIB_H \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss; + YYSTYPE yyvs; + }; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (YYID (0)) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ + Stack = &yyptr->Stack; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) + +#endif + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 6 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 2912 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 163 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 398 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 922 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 1590 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 417 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const yytype_uint8 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, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 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, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162 +}; + +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const yytype_uint16 yyprhs[] = +{ + 0, 0, 3, 5, 7, 9, 12, 14, 16, 18, + 20, 22, 24, 26, 28, 30, 33, 34, 36, 39, + 41, 45, 48, 49, 52, 54, 56, 58, 60, 62, + 64, 66, 68, 70, 74, 78, 80, 84, 89, 97, + 101, 102, 104, 105, 108, 109, 112, 114, 115, 116, + 121, 122, 123, 128, 132, 140, 146, 152, 153, 155, + 158, 160, 161, 164, 166, 172, 173, 181, 187, 188, + 190, 192, 195, 196, 199, 201, 207, 213, 217, 218, + 220, 223, 225, 226, 228, 231, 233, 236, 238, 241, + 245, 251, 257, 262, 263, 265, 268, 272, 273, 276, + 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, + 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, + 318, 320, 322, 324, 326, 328, 330, 332, 334, 336, + 338, 340, 342, 344, 346, 348, 351, 353, 355, 357, + 359, 361, 363, 365, 367, 369, 371, 373, 375, 377, + 379, 381, 383, 385, 387, 389, 391, 393, 395, 397, + 399, 401, 403, 405, 407, 409, 411, 413, 415, 417, + 419, 421, 423, 425, 427, 429, 434, 436, 438, 441, + 442, 447, 448, 456, 457, 464, 466, 469, 470, 474, + 475, 478, 479, 482, 484, 486, 488, 497, 504, 505, + 507, 509, 511, 514, 517, 520, 521, 524, 526, 531, + 535, 536, 539, 542, 544, 546, 549, 557, 558, 561, + 562, 564, 566, 567, 569, 570, 572, 574, 576, 578, + 580, 582, 587, 588, 591, 594, 599, 603, 607, 608, + 611, 614, 618, 620, 622, 624, 626, 630, 632, 634, + 636, 638, 641, 643, 645, 647, 649, 651, 653, 655, + 657, 661, 665, 669, 673, 677, 681, 685, 689, 693, + 697, 701, 705, 709, 712, 714, 717, 720, 723, 726, + 730, 735, 739, 743, 747, 751, 755, 759, 763, 767, + 771, 775, 779, 783, 787, 791, 795, 799, 803, 807, + 811, 814, 817, 819, 823, 825, 827, 829, 831, 835, + 837, 839, 841, 843, 845, 848, 851, 855, 857, 859, + 861, 863, 865, 869, 871, 873, 875, 877, 879, 881, + 883, 885, 889, 891, 893, 895, 898, 901, 903, 907, + 912, 916, 920, 924, 927, 933, 938, 942, 948, 952, + 957, 961, 964, 965, 967, 968, 970, 974, 976, 979, + 980, 983, 986, 988, 990, 992, 997, 1002, 1006, 1007, + 1010, 1012, 1014, 1016, 1018, 1020, 1022, 1024, 1026, 1028, + 1030, 1035, 1036, 1039, 1042, 1049, 1052, 1054, 1055, 1058, + 1060, 1063, 1068, 1076, 1077, 1080, 1083, 1087, 1092, 1093, + 1095, 1102, 1103, 1106, 1108, 1113, 1116, 1120, 1126, 1130, + 1133, 1135, 1136, 1138, 1142, 1145, 1149, 1150, 1152, 1155, + 1160, 1161, 1164, 1167, 1169, 1171, 1173, 1177, 1179, 1183, + 1185, 1187, 1194, 1195, 1198, 1206, 1207, 1210, 1211, 1213, + 1220, 1228, 1229, 1232, 1234, 1236, 1238, 1241, 1243, 1245, + 1247, 1249, 1257, 1264, 1266, 1268, 1269, 1272, 1281, 1288, + 1289, 1294, 1295, 1297, 1305, 1308, 1310, 1312, 1313, 1316, + 1319, 1325, 1333, 1338, 1341, 1343, 1345, 1346, 1349, 1352, + 1354, 1356, 1358, 1360, 1362, 1364, 1366, 1368, 1370, 1372, + 1374, 1376, 1378, 1380, 1382, 1384, 1386, 1388, 1390, 1392, + 1399, 1407, 1408, 1412, 1417, 1418, 1421, 1426, 1432, 1434, + 1436, 1438, 1443, 1449, 1452, 1454, 1455, 1458, 1460, 1462, + 1464, 1466, 1468, 1470, 1472, 1474, 1489, 1490, 1492, 1493, + 1496, 1498, 1499, 1504, 1509, 1510, 1515, 1516, 1521, 1522, + 1527, 1528, 1530, 1532, 1536, 1539, 1541, 1545, 1547, 1549, + 1551, 1552, 1562, 1563, 1572, 1581, 1591, 1592, 1596, 1600, + 1602, 1607, 1610, 1614, 1616, 1621, 1624, 1628, 1630, 1635, + 1638, 1643, 1646, 1650, 1652, 1658, 1660, 1664, 1670, 1673, + 1675, 1676, 1679, 1682, 1685, 1686, 1689, 1692, 1694, 1697, + 1699, 1701, 1704, 1705, 1707, 1711, 1713, 1714, 1716, 1725, + 1730, 1731, 1734, 1739, 1740, 1743, 1745, 1748, 1749, 1758, + 1763, 1767, 1768, 1774, 1778, 1780, 1783, 1786, 1790, 1794, + 1796, 1797, 1808, 1813, 1814, 1818, 1819, 1821, 1822, 1824, + 1825, 1827, 1830, 1832, 1833, 1837, 1841, 1844, 1845, 1848, + 1851, 1853, 1854, 1857, 1859, 1861, 1864, 1866, 1868, 1870, + 1872, 1874, 1876, 1878, 1880, 1883, 1885, 1887, 1889, 1892, + 1894, 1900, 1906, 1907, 1910, 1911, 1914, 1915, 1917, 1918, + 1920, 1922, 1933, 1945, 1952, 1953, 1956, 1958, 1963, 1968, + 1969, 1972, 1973, 1975, 1985, 1993, 1994, 1997, 1998, 2001, + 2006, 2015, 2016, 2018, 2019, 2021, 2022, 2025, 2030, 2031, + 2034, 2035, 2037, 2040, 2043, 2047, 2048, 2050, 2055, 2061, + 2068, 2074, 2076, 2078, 2081, 2083, 2086, 2088, 2091, 2095, + 2100, 2106, 2107, 2110, 2111, 2114, 2115, 2118, 2120, 2124, + 2128, 2132, 2135, 2136, 2138, 2146, 2147, 2151, 2152, 2156, + 2164, 2170, 2171, 2174, 2176, 2177, 2180, 2182, 2184, 2186, + 2188, 2196, 2197, 2199, 2200, 2204, 2209, 2213, 2218, 2226, + 2229, 2234, 2237, 2241, 2243, 2245, 2247, 2251, 2252, 2256, + 2257, 2261, 2264, 2267, 2269, 2271, 2273, 2275, 2279, 2288, + 2296, 2304, 2307, 2308, 2310, 2312, 2316, 2318, 2320, 2322, + 2324, 2326, 2328, 2330, 2335, 2340, 2341, 2344, 2346, 2348, + 2351, 2353, 2355, 2357, 2359, 2365, 2371, 2372, 2375, 2377, + 2380, 2384, 2386, 2390, 2391, 2400, 2407, 2409, 2412, 2414, + 2417, 2419, 2421, 2423, 2431, 2440, 2447, 2455, 2464, 2471, + 2472, 2476, 2479, 2482, 2484, 2488, 2490, 2493, 2496, 2506, + 2515, 2524, 2530, 2535, 2538, 2540, 2543, 2547, 2549, 2551, + 2559, 2568, 2575, 2583, 2588, 2593, 2596, 2606, 2615, 2617, + 2619, 2628, 2629, 2631, 2637, 2639, 2644, 2654, 2655, 2657, + 2659, 2661, 2665, 2667, 2673, 2678, 2683, 2689, 2692, 2700, + 2706, 2708, 2713, 2715, 2717, 2719, 2721, 2725, 2732, 2740, + 2742, 2744, 2745, 2748, 2751, 2752, 2754, 2755, 2762, 2767, + 2773, 2780, 2784, 2785, 2789, 2796, 2798, 2800, 2802, 2804, + 2806, 2808, 2812, 2815, 2819, 2822, 2825, 2829, 2831, 2836, + 2839, 2843, 2846 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int16 yyrhs[] = +{ + 164, 0, -1, 165, -1, 166, -1, 174, -1, 166, + 174, -1, 491, -1, 493, -1, 494, -1, 495, -1, + 492, -1, 172, -1, 52, -1, 495, -1, 491, -1, + 171, 491, -1, -1, 494, -1, 494, 491, -1, 491, + -1, 173, 149, 491, -1, 175, 176, -1, -1, 175, + 177, -1, 181, -1, 196, -1, 202, -1, 191, -1, + 208, -1, 507, -1, 512, -1, 178, -1, 179, -1, + 44, 173, 152, -1, 78, 180, 152, -1, 271, -1, + 180, 149, 271, -1, 182, 1, 460, 152, -1, 182, + 189, 187, 185, 184, 460, 152, -1, 31, 491, 42, + -1, -1, 491, -1, -1, 17, 359, -1, -1, 185, + 186, -1, 215, -1, -1, -1, 60, 188, 239, 152, + -1, -1, -1, 37, 190, 239, 152, -1, 37, 1, + 152, -1, 192, 194, 17, 359, 30, 193, 152, -1, + 192, 1, 30, 193, 152, -1, 13, 491, 53, 491, + 42, -1, -1, 491, -1, 13, 491, -1, 13, -1, + -1, 194, 195, -1, 216, -1, 198, 1, 30, 199, + 152, -1, -1, 198, 200, 465, 30, 199, 152, 197, + -1, 24, 491, 53, 491, 42, -1, -1, 491, -1, + 24, -1, 24, 491, -1, -1, 200, 201, -1, 222, + -1, 203, 1, 30, 204, 152, -1, 203, 205, 30, + 204, 152, -1, 59, 491, 42, -1, -1, 491, -1, + 59, 491, -1, 59, -1, -1, 207, -1, 205, 206, + -1, 218, -1, 549, 152, -1, 549, -1, 549, 548, + -1, 549, 548, 152, -1, 209, 1, 30, 210, 152, + -1, 209, 211, 30, 210, 152, -1, 59, 19, 491, + 42, -1, -1, 491, -1, 59, 19, -1, 59, 19, + 491, -1, -1, 211, 212, -1, 219, -1, 202, -1, + 512, -1, 208, -1, 513, -1, 287, -1, 311, -1, + 324, -1, 336, -1, 333, -1, 224, -1, 179, -1, + 214, -1, 235, -1, 343, -1, 344, -1, 339, -1, + 326, -1, 329, -1, 486, -1, 485, -1, 213, -1, + 214, -1, 235, -1, 462, -1, 343, -1, 344, -1, + 475, -1, 339, -1, 326, -1, 329, -1, 486, -1, + 485, -1, 213, -1, 560, -1, 216, -1, 217, 216, + -1, 214, -1, 462, -1, 343, -1, 344, -1, 339, + -1, 326, -1, 329, -1, 486, -1, 485, -1, 202, + -1, 512, -1, 513, -1, 214, -1, 235, -1, 329, + -1, 486, -1, 485, -1, 343, -1, 344, -1, 213, + -1, 214, -1, 235, -1, 343, -1, 344, -1, 329, + -1, 486, -1, 485, -1, 213, -1, 214, -1, 235, + -1, 343, -1, 344, -1, 329, -1, 486, -1, 485, + -1, 213, -1, 344, -1, 179, -1, 485, -1, 78, + 118, 173, 152, -1, 86, -1, 85, -1, 225, 152, + -1, -1, 61, 491, 226, 234, -1, -1, 223, 35, + 167, 227, 233, 67, 270, -1, -1, 35, 167, 228, + 233, 67, 270, -1, 549, -1, 549, 548, -1, -1, + 107, 231, 239, -1, -1, 232, 239, -1, -1, 229, + 230, -1, 230, -1, 229, -1, 233, -1, 225, 42, + 237, 17, 420, 30, 236, 152, -1, 225, 42, 1, + 30, 236, 152, -1, -1, 167, -1, 35, -1, 61, + -1, 61, 491, -1, 35, 491, -1, 35, 6, -1, + -1, 237, 238, -1, 220, -1, 147, 242, 240, 148, + -1, 147, 1, 148, -1, -1, 240, 241, -1, 152, + 242, -1, 547, -1, 540, -1, 246, 491, -1, 246, + 173, 151, 245, 312, 244, 243, -1, -1, 150, 258, + -1, -1, 20, -1, 21, -1, -1, 247, -1, -1, + 331, -1, 40, -1, 58, -1, 41, -1, 20, -1, + 45, -1, 147, 254, 249, 148, -1, -1, 249, 250, + -1, 149, 254, -1, 147, 255, 252, 148, -1, 147, + 1, 148, -1, 147, 55, 148, -1, -1, 252, 253, + -1, 149, 255, -1, 256, 153, 257, -1, 257, -1, + 154, -1, 102, -1, 258, -1, 286, 153, 258, -1, + 321, -1, 268, -1, 258, -1, 55, -1, 105, 258, + -1, 260, -1, 261, -1, 91, -1, 92, -1, 93, + -1, 94, -1, 95, -1, 96, -1, 261, 259, 261, + -1, 261, 12, 261, -1, 261, 84, 261, -1, 261, + 56, 261, -1, 261, 51, 261, -1, 261, 90, 261, + -1, 261, 48, 261, -1, 260, 48, 261, -1, 260, + 51, 261, -1, 260, 90, 261, -1, 260, 12, 261, + -1, 260, 56, 261, -1, 260, 84, 261, -1, 121, + 267, -1, 267, -1, 136, 267, -1, 135, 267, -1, + 144, 267, -1, 143, 267, -1, 267, 145, 267, -1, + 135, 267, 145, 267, -1, 261, 139, 261, -1, 261, + 138, 261, -1, 261, 134, 261, -1, 261, 141, 261, + -1, 261, 136, 261, -1, 261, 135, 261, -1, 261, + 130, 261, -1, 261, 128, 261, -1, 261, 131, 261, + -1, 261, 129, 261, -1, 261, 133, 261, -1, 261, + 132, 261, -1, 261, 140, 261, -1, 261, 127, 261, + -1, 261, 126, 261, -1, 261, 125, 261, -1, 261, + 124, 261, -1, 261, 123, 261, -1, 261, 122, 261, + -1, 135, 264, -1, 136, 264, -1, 264, -1, 262, + 263, 264, -1, 134, -1, 135, -1, 136, -1, 266, + -1, 266, 265, 266, -1, 141, -1, 138, -1, 139, + -1, 140, -1, 267, -1, 144, 267, -1, 143, 267, + -1, 267, 145, 267, -1, 268, -1, 168, -1, 276, + -1, 278, -1, 279, -1, 147, 258, 148, -1, 270, + -1, 269, -1, 551, -1, 493, -1, 275, -1, 273, + -1, 491, -1, 271, -1, 268, 156, 272, -1, 167, + -1, 495, -1, 11, -1, 270, 251, -1, 269, 251, + -1, 146, -1, 270, 274, 491, -1, 275, 147, 258, + 148, -1, 269, 274, 491, -1, 270, 274, 63, -1, + 269, 274, 63, -1, 277, 148, -1, 147, 283, 153, + 258, 148, -1, 147, 282, 149, 282, -1, 277, 149, + 282, -1, 270, 146, 147, 258, 148, -1, 270, 146, + 276, -1, 49, 270, 270, 281, -1, 49, 270, 280, + -1, 49, 278, -1, -1, 251, -1, -1, 251, -1, + 283, 153, 258, -1, 258, -1, 286, 284, -1, -1, + 284, 285, -1, 155, 286, -1, 258, -1, 321, -1, + 57, -1, 75, 491, 1, 152, -1, 75, 491, 288, + 152, -1, 75, 1, 152, -1, -1, 42, 289, -1, + 290, -1, 316, -1, 293, -1, 299, -1, 303, -1, + 305, -1, 309, -1, 310, -1, 496, -1, 501, -1, + 147, 169, 291, 148, -1, -1, 291, 292, -1, 149, + 169, -1, 316, 76, 297, 295, 30, 294, -1, 76, + 491, -1, 76, -1, -1, 295, 296, -1, 298, -1, + 491, 152, -1, 491, 133, 170, 152, -1, 14, 147, + 302, 300, 148, 53, 312, -1, -1, 300, 301, -1, + 149, 302, -1, 270, 63, 154, -1, 14, 317, 53, + 312, -1, -1, 491, -1, 64, 308, 306, 30, 64, + 304, -1, -1, 306, 307, -1, 308, -1, 173, 151, + 312, 152, -1, 8, 312, -1, 33, 53, 270, -1, + 71, 491, 42, 312, 152, -1, 71, 1, 152, -1, + 270, 313, -1, 314, -1, -1, 251, -1, 270, 270, + 316, -1, 270, 316, -1, 270, 270, 315, -1, -1, + 251, -1, 63, 322, -1, 147, 320, 318, 148, -1, + -1, 318, 319, -1, 149, 320, -1, 312, -1, 322, + -1, 314, -1, 258, 323, 258, -1, 275, -1, 262, + 323, 262, -1, 73, -1, 27, -1, 25, 173, 151, + 312, 325, 152, -1, -1, 150, 258, -1, 70, 173, + 151, 312, 328, 327, 152, -1, -1, 150, 258, -1, + -1, 332, -1, 79, 173, 151, 312, 330, 152, -1, + 89, 79, 173, 151, 312, 330, 152, -1, -1, 150, + 258, -1, 25, -1, 70, -1, 79, -1, 89, 79, + -1, 33, -1, 75, -1, 21, -1, 65, -1, 10, + 334, 335, 42, 268, 514, 152, -1, 10, 334, 335, + 42, 1, 152, -1, 491, -1, 493, -1, -1, 151, + 312, -1, 33, 173, 151, 312, 42, 338, 258, 152, + -1, 33, 173, 151, 491, 337, 152, -1, -1, 55, + 258, 42, 258, -1, -1, 247, -1, 26, 340, 151, + 270, 9, 258, 152, -1, 268, 341, -1, 57, -1, + 11, -1, -1, 341, 342, -1, 149, 268, -1, 16, + 491, 151, 270, 152, -1, 16, 491, 53, 345, 42, + 258, 152, -1, 346, 514, 151, 349, -1, 167, 347, + -1, 57, -1, 11, -1, -1, 347, 348, -1, 149, + 167, -1, 31, -1, 13, -1, 59, -1, 24, -1, + 23, -1, 43, -1, 75, -1, 71, -1, 61, -1, + 35, -1, 70, -1, 79, -1, 25, -1, 87, -1, + 33, -1, 76, -1, 106, -1, 114, -1, 109, -1, + 351, -1, 39, 258, 36, 401, 353, 352, -1, 39, + 454, 258, 36, 401, 353, 352, -1, -1, 28, 36, + 401, -1, 28, 454, 36, 401, -1, -1, 353, 354, + -1, 29, 258, 36, 401, -1, 29, 454, 258, 36, + 401, -1, 357, -1, 357, -1, 358, -1, 34, 491, + 40, 320, -1, 34, 454, 491, 40, 320, -1, 82, + 258, -1, 360, -1, -1, 360, 361, -1, 362, -1, + 363, -1, 381, -1, 382, -1, 383, -1, 377, -1, + 402, -1, 408, -1, 491, 151, 18, 372, 371, 369, + 367, 365, 17, 359, 30, 18, 364, 152, -1, -1, + 491, -1, -1, 365, 366, -1, 216, -1, -1, 60, + 239, 152, 368, -1, 60, 47, 248, 152, -1, -1, + 37, 239, 152, 370, -1, -1, 37, 47, 248, 152, + -1, -1, 147, 258, 148, 372, -1, -1, 42, -1, + 491, -1, 373, 156, 491, -1, 373, 375, -1, 373, + -1, 147, 491, 148, -1, 24, -1, 31, -1, 23, + -1, -1, 491, 151, 268, 378, 37, 47, 248, 380, + 152, -1, -1, 491, 151, 268, 379, 60, 47, 248, + 152, -1, 491, 151, 376, 374, 60, 47, 248, 152, + -1, 491, 151, 376, 374, 37, 47, 248, 380, 152, + -1, -1, 60, 47, 248, -1, 491, 151, 425, -1, + 425, -1, 491, 151, 88, 425, -1, 88, 425, -1, + 491, 151, 449, -1, 449, -1, 491, 151, 88, 449, + -1, 88, 449, -1, 491, 151, 384, -1, 384, -1, + 491, 151, 88, 384, -1, 88, 384, -1, 491, 151, + 88, 396, -1, 88, 396, -1, 491, 151, 396, -1, + 396, -1, 392, 130, 393, 385, 152, -1, 386, -1, + 386, 81, 258, -1, 386, 81, 258, 28, 385, -1, + 389, 387, -1, 97, -1, -1, 387, 388, -1, 149, + 389, -1, 258, 390, -1, -1, 9, 258, -1, 52, + 391, -1, 52, -1, 9, 258, -1, 268, -1, 276, + -1, 395, 394, -1, -1, 74, -1, 110, 258, 105, + -1, 105, -1, -1, 38, -1, 83, 258, 68, 392, + 130, 393, 397, 152, -1, 398, 386, 81, 283, -1, + -1, 398, 399, -1, 386, 81, 283, 149, -1, -1, + 217, 17, -1, 17, -1, 400, 359, -1, -1, 491, + 151, 403, 355, 36, 400, 359, 404, -1, 407, 30, + 406, 152, -1, 30, 406, 152, -1, -1, 491, 151, + 405, 350, 404, -1, 491, 151, 518, -1, 36, -1, + 36, 491, -1, 30, 152, -1, 30, 491, 152, -1, + 491, 151, 409, -1, 409, -1, -1, 412, 410, 62, + 416, 414, 17, 420, 30, 411, 152, -1, 1, 30, + 411, 152, -1, -1, 412, 62, 413, -1, -1, 88, + -1, -1, 491, -1, -1, 42, -1, 414, 415, -1, + 221, -1, -1, 147, 11, 148, -1, 147, 417, 148, + -1, 268, 418, -1, -1, 418, 419, -1, 149, 268, + -1, 421, -1, -1, 421, 422, -1, 423, -1, 425, + -1, 454, 425, -1, 430, -1, 434, -1, 437, -1, + 441, -1, 445, -1, 448, -1, 449, -1, 450, -1, + 454, 452, -1, 452, -1, 453, -1, 456, -1, 454, + 456, -1, 424, -1, 444, 66, 258, 426, 152, -1, + 15, 258, 427, 426, 152, -1, -1, 69, 258, -1, + -1, 66, 258, -1, -1, 157, -1, -1, 157, -1, + 491, -1, 22, 428, 258, 42, 433, 431, 30, 22, + 429, 152, -1, 454, 22, 428, 258, 42, 433, 431, + 30, 22, 429, 152, -1, 22, 1, 30, 22, 429, + 152, -1, -1, 431, 432, -1, 433, -1, 81, 283, + 153, 420, -1, 32, 436, 435, 152, -1, -1, 81, + 258, -1, -1, 491, -1, 39, 258, 72, 420, 439, + 438, 30, 39, 152, -1, 39, 258, 72, 1, 30, + 39, 152, -1, -1, 28, 420, -1, -1, 439, 440, + -1, 29, 258, 72, 420, -1, 444, 443, 46, 420, + 30, 46, 442, 152, -1, -1, 491, -1, -1, 356, + -1, -1, 491, 151, -1, 50, 447, 446, 152, -1, + -1, 81, 258, -1, -1, 491, -1, 52, 152, -1, + 268, 152, -1, 67, 451, 152, -1, -1, 258, -1, + 392, 130, 386, 152, -1, 392, 130, 533, 386, 152, + -1, 392, 130, 104, 532, 258, 152, -1, 392, 130, + 111, 532, 152, -1, 526, -1, 522, -1, 455, 152, + -1, 534, -1, 454, 536, -1, 536, -1, 491, 151, + -1, 392, 150, 258, -1, 454, 392, 150, 258, -1, + 80, 459, 458, 457, 152, -1, -1, 34, 258, -1, + -1, 77, 258, -1, -1, 54, 417, -1, 30, -1, + 30, 23, 183, -1, 30, 13, 183, -1, 30, 31, + 183, -1, 30, 491, -1, -1, 42, -1, 23, 491, + 461, 464, 463, 460, 152, -1, -1, 60, 239, 152, + -1, -1, 37, 239, 152, -1, 34, 470, 468, 466, + 30, 34, 152, -1, 34, 1, 30, 34, 152, -1, + -1, 466, 467, -1, 471, -1, -1, 468, 469, -1, + 179, -1, 268, -1, 465, -1, 472, -1, 34, 477, + 474, 473, 30, 34, 152, -1, -1, 465, -1, -1, + 481, 480, 152, -1, 78, 118, 173, 152, -1, 78, + 479, 152, -1, 34, 477, 476, 152, -1, 34, 477, + 476, 152, 30, 34, 152, -1, 78, 479, -1, 78, + 118, 173, 152, -1, 481, 480, -1, 478, 151, 258, + -1, 173, -1, 11, -1, 57, -1, 482, 481, 480, + -1, -1, 60, 47, 248, -1, -1, 37, 47, 248, + -1, 31, 268, -1, 24, 270, -1, 55, -1, 491, + -1, 495, -1, 483, -1, 484, 149, 483, -1, 87, + 491, 151, 490, 147, 484, 148, 152, -1, 87, 491, + 42, 147, 489, 148, 152, -1, 87, 491, 42, 147, + 1, 152, 148, -1, 349, 488, -1, -1, 154, -1, + 487, -1, 489, 149, 487, -1, 491, -1, 493, -1, + 7, -1, 5, -1, 6, -1, 3, -1, 4, -1, + 108, 497, 30, 499, -1, 108, 1, 30, 499, -1, + -1, 497, 498, -1, 500, -1, 108, -1, 108, 491, + -1, 179, -1, 344, -1, 224, -1, 513, -1, 108, + 19, 502, 30, 504, -1, 108, 19, 1, 30, 504, + -1, -1, 502, 503, -1, 505, -1, 108, 19, -1, + 108, 19, 491, -1, 220, -1, 100, 180, 152, -1, + -1, 100, 491, 42, 508, 510, 30, 509, 152, -1, + 100, 491, 42, 30, 509, 152, -1, 100, -1, 100, + 491, -1, 511, -1, 510, 511, -1, 179, -1, 178, + -1, 506, -1, 59, 491, 42, 49, 373, 514, 152, + -1, 59, 491, 42, 49, 373, 514, 548, 152, -1, + 59, 1, 491, 42, 49, 152, -1, 35, 491, 42, + 49, 373, 514, 152, -1, 35, 491, 42, 49, 373, + 514, 548, 152, -1, 35, 491, 42, 49, 1, 152, + -1, -1, 160, 515, 161, -1, 160, 161, -1, 67, + 270, -1, 516, -1, 516, 67, 270, -1, 270, -1, + 516, 517, -1, 149, 270, -1, 22, 258, 36, 520, + 521, 30, 36, 406, 152, -1, 22, 258, 36, 520, + 30, 36, 406, 152, -1, 22, 1, 36, 1, 30, + 36, 406, 152, -1, 81, 454, 283, 153, 401, -1, + 81, 283, 153, 401, -1, 520, 519, -1, 519, -1, + 30, 152, -1, 30, 491, 152, -1, 523, -1, 525, + -1, 392, 130, 389, 81, 258, 524, 152, -1, 392, + 130, 533, 389, 81, 258, 524, 152, -1, 392, 130, + 389, 81, 258, 152, -1, 392, 130, 533, 389, 81, + 258, 152, -1, 392, 130, 1, 152, -1, 28, 258, + 81, 258, -1, 28, 258, -1, 392, 130, 104, 532, + 258, 81, 258, 535, 152, -1, 392, 130, 104, 532, + 258, 81, 258, 152, -1, 527, -1, 531, -1, 83, + 258, 68, 428, 392, 130, 528, 529, -1, -1, 533, + -1, 389, 81, 283, 149, 529, -1, 530, -1, 389, + 81, 283, 152, -1, 83, 258, 68, 428, 392, 130, + 104, 532, 537, -1, -1, 40, -1, 58, -1, 74, + -1, 110, 258, 105, -1, 105, -1, 455, 81, 258, + 535, 152, -1, 455, 81, 258, 152, -1, 28, 258, + 81, 258, -1, 535, 28, 258, 81, 258, -1, 28, + 258, -1, 83, 258, 68, 428, 539, 150, 537, -1, + 258, 81, 283, 149, 537, -1, 538, -1, 258, 81, + 283, 152, -1, 268, -1, 276, -1, 541, -1, 542, + -1, 61, 491, 545, -1, 35, 543, 545, 67, 270, + 544, -1, 223, 35, 543, 545, 67, 270, 544, -1, + 491, -1, 493, -1, -1, 42, 491, -1, 42, 154, + -1, -1, 107, -1, -1, 107, 546, 147, 242, 240, + 148, -1, 147, 242, 240, 148, -1, 59, 491, 42, + 49, 373, -1, 59, 491, 42, 49, 373, 548, -1, + 37, 47, 248, -1, -1, 37, 550, 239, -1, 119, + 552, 553, 151, 312, 120, -1, 25, -1, 70, -1, + 79, -1, 554, -1, 555, -1, 559, -1, 156, 558, + 491, -1, 156, 491, -1, 556, 558, 491, -1, 556, + 491, -1, 159, 156, -1, 556, 159, 156, -1, 491, + -1, 491, 147, 258, 148, -1, 557, 156, -1, 558, + 557, 156, -1, 158, 373, -1, 162, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = +{ + 0, 347, 347, 350, 352, 353, 356, 357, 360, 361, + 362, 363, 364, 367, 368, 370, 372, 373, 375, 377, + 378, 385, 387, 388, 390, 391, 392, 393, 394, 395, + 396, 399, 400, 403, 412, 427, 428, 434, 436, 439, + 450, 451, 453, 454, 456, 457, 460, 462, 463, 463, + 465, 466, 466, 467, 471, 472, 474, 483, 484, 485, + 486, 488, 489, 491, 493, 494, 494, 500, 506, 507, + 508, 509, 510, 511, 512, 514, 515, 516, 537, 538, + 539, 540, 542, 543, 544, 545, 547, 548, 549, 550, + 552, 553, 554, 561, 562, 563, 564, 567, 568, 569, + 577, 578, 579, 580, 583, 584, 585, 586, 587, 588, + 589, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 617, 618, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 634, 635, + 636, 637, 638, 639, 640, 641, 643, 644, 645, 646, + 647, 648, 649, 650, 652, 653, 654, 655, 656, 657, + 658, 659, 661, 662, 663, 664, 669, 670, 672, 675, + 674, 678, 677, 690, 689, 701, 702, 705, 704, 708, + 708, 712, 713, 714, 715, 717, 719, 723, 727, 728, + 729, 730, 731, 732, 733, 736, 738, 739, 745, 746, + 747, 748, 749, 751, 760, 773, 781, 802, 803, 804, + 805, 806, 807, 808, 809, 810, 812, 813, 814, 815, + 816, 818, 819, 820, 821, 823, 829, 830, 832, 833, + 834, 836, 837, 838, 839, 842, 843, 844, 846, 848, + 849, 850, 858, 859, 861, 862, 863, 864, 865, 866, + 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, + 878, 879, 880, 884, 885, 886, 887, 888, 889, 890, + 891, 895, 896, 897, 898, 899, 900, 901, 902, 903, + 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, + 915, 916, 917, 918, 921, 922, 923, 926, 927, 930, + 931, 932, 933, 935, 936, 937, 938, 940, 941, 942, + 943, 944, 945, 947, 948, 949, 950, 951, 952, 954, + 955, 957, 959, 960, 961, 963, 964, 966, 969, 970, + 971, 972, 973, 975, 976, 978, 979, 981, 982, 984, + 985, 986, 987, 988, 989, 990, 997, 998, 1000, 1001, + 1002, 1003, 1005, 1006, 1007, 1012, 1013, 1017, 1019, 1020, + 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, + 1034, 1035, 1036, 1037, 1039, 1048, 1049, 1051, 1052, 1053, + 1055, 1057, 1059, 1068, 1069, 1070, 1072, 1074, 1076, 1077, + 1079, 1091, 1092, 1096, 1098, 1100, 1102, 1108, 1112, 1113, + 1114, 1115, 1116, 1118, 1119, 1120, 1121, 1122, 1124, 1127, + 1130, 1131, 1133, 1135, 1136, 1138, 1139, 1141, 1142, 1144, + 1145, 1151, 1157, 1158, 1160, 1165, 1166, 1167, 1168, 1170, + 1174, 1179, 1180, 1182, 1183, 1184, 1185, 1186, 1187, 1189, + 1190, 1192, 1197, 1199, 1200, 1202, 1203, 1206, 1211, 1217, + 1218, 1221, 1222, 1224, 1226, 1227, 1228, 1229, 1230, 1231, + 1237, 1242, 1248, 1250, 1251, 1252, 1253, 1254, 1255, 1257, + 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, + 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1283, 1285, + 1286, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1296, 1298, + 1299, 1301, 1302, 1304, 1310, 1311, 1312, 1313, 1315, 1316, + 1317, 1318, 1319, 1320, 1321, 1323, 1326, 1327, 1328, 1329, + 1330, 1331, 1332, 1334, 1335, 1336, 1337, 1338, 1339, 1340, + 1341, 1342, 1344, 1345, 1348, 1349, 1351, 1353, 1354, 1355, + 1357, 1357, 1361, 1361, 1366, 1370, 1374, 1375, 1377, 1378, + 1380, 1381, 1383, 1384, 1386, 1387, 1389, 1390, 1392, 1393, + 1395, 1396, 1398, 1399, 1401, 1403, 1404, 1405, 1407, 1408, + 1409, 1410, 1411, 1413, 1414, 1415, 1416, 1417, 1418, 1420, + 1421, 1423, 1425, 1426, 1427, 1428, 1430, 1431, 1433, 1435, + 1436, 1437, 1438, 1440, 1441, 1442, 1448, 1451, 1450, 1456, + 1457, 1460, 1459, 1462, 1464, 1465, 1468, 1469, 1471, 1478, + 1486, 1485, 1492, 1494, 1495, 1497, 1498, 1500, 1501, 1503, + 1504, 1505, 1506, 1507, 1508, 1509, 1511, 1512, 1513, 1514, + 1520, 1521, 1522, 1523, 1525, 1526, 1527, 1528, 1529, 1530, + 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, + 1542, 1544, 1545, 1546, 1547, 1548, 1550, 1551, 1553, 1554, + 1555, 1557, 1558, 1560, 1561, 1562, 1563, 1565, 1567, 1568, + 1569, 1570, 1571, 1573, 1574, 1575, 1576, 1577, 1578, 1579, + 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1589, 1590, 1591, + 1592, 1593, 1595, 1597, 1599, 1600, 1601, 1603, 1604, 1605, + 1606, 1607, 1608, 1611, 1612, 1613, 1614, 1616, 1617, 1618, + 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1632, 1633, 1634, + 1635, 1636, 1638, 1639, 1641, 1646, 1647, 1648, 1649, 1651, + 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1664, 1674, 1675, + 1677, 1682, 1683, 1684, 1686, 1687, 1688, 1693, 1697, 1702, + 1703, 1704, 1706, 1712, 1713, 1714, 1716, 1718, 1719, 1721, + 1722, 1725, 1726, 1727, 1730, 1731, 1734, 1735, 1738, 1745, + 1751, 1753, 1755, 1756, 1758, 1759, 1763, 1764, 1766, 1771, + 1776, 1781, 1786, 1796, 1797, 1799, 1800, 1801, 1802, 1803, + 1805, 1806, 1807, 1808, 1810, 1811, 1813, 1814, 1815, 1817, + 1818, 1820, 1826, 1828, 1828, 1834, 1839, 1840, 1842, 1843, + 1845, 1846, 1847, 1849, 1857, 1862, 1864, 1869, 1874, 1876, + 1877, 1879, 1881, 1882, 1883, 1885, 1886, 1887, 1889, 1890, + 1891, 1893, 1894, 1895, 1896, 1898, 1899, 1901, 1902, 1904, + 1905, 1906, 1907, 1908, 1910, 1911, 1913, 1914, 1916, 1917, + 1919, 1922, 1923, 1925, 1926, 1928, 1930, 1933, 1934, 1935, + 1937, 1938, 1939, 1941, 1942, 1944, 1945, 1946, 1948, 1950, + 1951, 1953, 1955, 1956, 1958, 1959, 1961, 1963, 1973, 1984, + 1985, 1988, 1989, 1990, 1992, 1993, 1994, 1994, 1998, 2000, + 2005, 2011, 2014, 2013, 2024, 2031, 2032, 2033, 2035, 2036, + 2037, 2040, 2041, 2043, 2044, 2046, 2047, 2049, 2050, 2053, + 2054, 2056, 2058 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/* YYTNAME[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", "t_ABSTRLIST", "t_CHARLIST", "t_DIGIT", + "t_STRING", "t_LETTER", "t_ACCESS", "t_AFTER", "t_ALIAS", "t_ALL", + "t_AND", "t_ARCHITECTURE", "t_ARRAY", "t_ASSERT", "t_ATTRIBUTE", + "t_BEGIN", "t_BLOCK", "t_BODY", "t_BUFFER", "t_BUS", "t_CASE", + "t_COMPONENT", "t_CONFIGURATION", "t_CONSTANT", "t_DISCONNECT", + "t_DOWNTO", "t_ELSE", "t_ELSIF", "t_END", "t_ENTITY", "t_EXIT", "t_FILE", + "t_FOR", "t_FUNCTION", "t_GENERATE", "t_GENERIC", "t_GUARDED", "t_IF", + "t_IN", "t_INOUT", "t_IS", "t_LABEL", "t_LIBRARY", "t_LINKAGE", "t_LOOP", + "t_MAP", "t_NAND", "t_NEW", "t_NEXT", "t_NOR", "t_NULL", "t_OF", "t_ON", + "t_OPEN", "t_OR", "t_OTHERS", "t_OUT", "t_PACKAGE", "t_PORT", + "t_PROCEDURE", "t_PROCESS", "t_RANGE", "t_RECORD", "t_REGISTER", + "t_REPORT", "t_RETURN", "t_SELECT", "t_SEVERITY", "t_SIGNAL", + "t_SUBTYPE", "t_THEN", "t_TO", "t_TRANSPORT", "t_TYPE", "t_UNITS", + "t_UNTIL", "t_USE", "t_VARIABLE", "t_WAIT", "t_WHEN", "t_WHILE", + "t_WITH", "t_XOR", "t_IMPURE", "t_PURE", "t_GROUP", "t_POSTPONED", + "t_SHARED", "t_XNOR", "t_SLL", "t_SRA", "t_SLA", "t_SRL", "t_ROR", + "t_ROL", "t_UNAFFECTED", "t_ASSUME_GUARANTEE", "t_ASSUME", "t_CONTEXT", + "t_COVER", "t_DEFAULT", "t_FAIRNESS", "t_FORCE", "t_INERTIAL", + "t_LITERAL", "t_PARAMETER", "t_PROTECTED", "t_PROPERTY", "t_REJECT", + "t_RELEASE", "t_RESTRICT", "t_RESTRICT_GUARANTEE", "t_SEQUENCE", + "t_STRONG", "t_VMODE", "t_VPROP", "t_VUNIT", "t_SLSL", "t_SRSR", "t_QQ", + "t_QGT", "t_QLT", "t_QG", "t_QL", "t_QEQU", "t_QNEQU", "t_GESym", + "t_GTSym", "t_LESym", "t_LTSym", "t_NESym", "t_EQSym", "t_Ampersand", + "t_Minus", "t_Plus", "MED_PRECEDENCE", "t_REM", "t_MOD", "t_Slash", + "t_Star", "MAX_PRECEDENCE", "t_NOT", "t_ABS", "t_DoubleStar", + "t_Apostrophe", "t_LeftParen", "t_RightParen", "t_Comma", "t_VarAsgn", + "t_Colon", "t_Semicolon", "t_Arrow", "t_Box", "t_Bar", "t_Dot", "t_Q", + "t_At", "t_Neg", "t_LEFTBR", "t_RIGHTBR", "t_ToolDir", "$accept", + "start", "design_file", "design_unit_list", "designator", "literal", + "enumeration_literal", "physical_literal", "physical_literal_1", + "physical_literal_no_default", "idf_list", "design_unit", "context_list", + "lib_unit", "context_item", "lib_clause", "use_clause", "sel_list", + "entity_decl", "entity_start", "entity_decl_5", "entity_decl_4", + "entity_decl_3", "entity_decl_6", "entity_decl_2", "@1", "entity_decl_1", + "@2", "arch_body", "arch_start", "arch_body_2", "arch_body_1", + "arch_body_3", "config_decl", "@3", "config_start", "config_decl_2", + "config_decl_1", "config_decl_3", "package_decl", "package_start", + "package_decl_2", "package_decl_1", "package_decl_3", "package_decl_22", + "package_body", "pack_body_start", "package_body_2", "package_body_1", + "package_body_3", "common_decltve_item_1", "common_decltve_item", + "entity_decltve_item", "block_decltve_item", "block_declarative_part", + "package_decltve_item", "package_body_decltve_item", + "subprog_decltve_item", "procs_decltve_item", "config_decltve_item", + "func_prec", "subprog_decl", "subprog_spec", "@4", "@5", "@6", + "subprog_spec_22", "subprog_spec_33", "@7", "@8", "subprog_spec_2", + "subprog_spec_1", "subprog_body", "subprog_body_2", "subprog_body_1", + "subprog_body_3", "interf_list", "interf_list_1", "interf_list_2", + "interf_element", "interf_element_4", "interf_element_3", + "interf_element_2", "interf_element_1", "mode", "association_list", + "association_list_1", "association_list_2", "gen_association_list", + "gen_association_list_1", "gen_association_list_2", + "association_element", "gen_association_element", "formal_part", + "actual_part", "expr", "shift_op", "and_relation", "relation", + "simple_exp", "adding_op", "term", "multiplying_operator", "factor", + "primary", "name", "name2", "mark", "sel_name", "suffix", "ifts_name", + "sigma", "attribute_name", "aggregate", "element_association_list2", + "qualified_expr", "allocator", "allocator_2", "allocator_1", + "element_association", "choices", "choices_1", "choices_2", "choice", + "type_decl", "type_decl_1", "type_definition", + "enumeration_type_definition", "enumeration_type_definition_1", + "enumeration_type_definition_2", "physical_type_definition", "unit_stat", + "physical_type_definition_1", "physical_type_definition_2", + "base_unit_decl", "secondary_unit_decl", + "unconstrained_array_definition", "unconstrained_array_definition_1", + "unconstrained_array_definition_2", "index_subtype_definition", + "constrained_array_definition", "record_type_simple_name", + "record_type_definition", "record_type_definition_1", + "record_type_definition_2", "element_decl", "access_type_definition", + "file_type_definition", "subtype_decl", "subtype_indic", + "subtype_indic_1", "subtype_indic1", "subtype_indic1_1", + "range_constraint", "index_constraint", "index_constraint_1", + "index_constraint_2", "discrete_range", "discrete_range1", "range_spec", + "direction", "constant_decl", "constant_decl_1", "signal_decl", + "signal_decl_2", "signal_decl_1", "variable_decl", "variable_decl_1", + "object_class", "signal_kind", "alias_decl", "alias_name_stat", + "alias_spec", "file_decl", "fi_dec", "file_decl_1", "disconnection_spec", + "signal_list", "signal_list_1", "signal_list_2", "attribute_decl", + "attribute_spec", "entity_spec", "entity_name_list", + "entity_name_list_1", "entity_name_list_2", "entity_class", + "if_generation_scheme", "if_scheme", "if_scheme_2", "if_scheme_1", + "if_scheme_3", "generation_scheme", "iteration_scheme", "for_scheme", + "while_scheme", "concurrent_stats", "concurrent_stats_1", + "concurrent_stats_2", "concurrent_stat", "block_stat", "block_stat_5", + "block_stat_4", "block_stat_6", "block_stat_3", "block_stat_7", + "block_stat_2", "block_stat_8", "block_stat_1", "block_stat_0", + "dot_name", "mark_comp", "comp_1", "vcomp_stat", "comp_inst_stat", "@9", + "@10", "comp_inst_stat_1", "concurrent_assertion_stat", + "concurrent_procedure_call", "concurrent_signal_assign_stat", + "condal_signal_assign", "condal_wavefrms", "wavefrm", "wavefrm_1", + "wavefrm_2", "wavefrm_element", "wavefrm_element_1", "wavefrm_element_2", + "target", "opts", "opts_2", "opts_1", "sel_signal_assign", + "sel_wavefrms", "sel_wavefrms_1", "sel_wavefrms_2", "gen_stat1", + "generate_statement_body", "generate_stat", "@11", "opstat", "@12", + "generate_stat_1", "end_stats", "procs_stat", "procs_stat1", "@13", + "procs_stat1_3", "procs_stat1_5", "procs_stat1_6", "procs_stat1_2", + "procs_stat1_4", "procs_stat1_1", "sensitivity_list", + "sensitivity_list_1", "sensitivity_list_2", "seq_stats", "seq_stats_1", + "seq_stats_2", "seq_stat", "report_statement", "assertion_stat", + "assertion_stat_2", "assertion_stat_1", "choice_stat", "choice_stat_1", + "case_stat", "case_stat_1", "case_stat_2", "case_stat_alternative", + "exit_stat", "exit_stat_2", "exit_stat_1", "if_stat", "if_stat_2", + "if_stat_1", "if_stat_3", "loop_stat", "loop_stat_3", "loop_stat_2", + "loop_stat_1", "next_stat", "next_stat_2", "next_stat_1", "null_stat", + "procedure_call_stat", "return_stat", "return_stat_1", + "signal_assign_stat", "variable_assign_stat", "lable", + "variable_assign_stat_1", "wait_stat", "wait_stat_3", "wait_stat_2", + "wait_stat_1", "comp_end_dec", "iss", "comp_decl", "comp_decl_2", + "comp_decl_1", "block_config", "block_config_2", "block_config_3", + "block_config_1", "block_config_4", "block_spec", "config_item", + "comp_config", "comp_config_2", "comp_config_1", "config_spec", + "comp_spec_stat", "comp_spec", "inst_list", "binding_indic", + "binding_indic_2", "binding_indic_1", "entity_aspect", + "group_constituent", "group_constituent_list", "group_declaration", + "group_template_declaration", "entity_class_entry", "tbox", + "entity_class_entry_list", "group_name", "t_Identifier", + "t_BitStringLit", "t_StringLit", "t_AbstractLit", "t_CharacterLit", + "protected_type_declaration", "protected_stats", "protected_stat_decl_1", + "protected_stat_1", "protected_type_declaration_item", + "protected_type_body", "protected_body_stats", + "protected_body_stat_decl_1", "protected_body_stat_1", + "protected_type_body_declaration_item", "context_ref", "context_decl", + "@14", "context_stat_1", "libustcont_stats", "libustcont_stat", + "package_instantiation_decl", "subprogram_instantiation_decl", + "signature", "signature1", "mark_stats", "mark_stats_1", "case_scheme", + "when_stats_1", "when_stats", "ttend", "conditional_signal_assignment", + "conditional_waveform_assignment", "else_wave_list", + "conditional_force_assignment", "selected_signal_assignment", + "selected_waveform_assignment", "delay_stat", "sel_wave_list", + "sel_wave_list_1", "selected_force_assignment", "inout_stat", + "delay_mechanism", "conditional_variable_assignment", "else_stat", + "selected_variable_assignment", "sel_var_list", "sel_var_list_1", + "select_name", "interface_subprogram_decl", "iproc", "ifunc", + "func_name", "return_is", "param", "@15", "interface_package_decl", + "gen_assoc_list", "gen_interface_list", "@16", "external_name", + "sig_stat", "external_pathname", "absolute_pathname", + "relative_pathname", "neg_list", "pathname_element", + "pathname_element_list", "package_path_name", "tool_directive", 0 +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const yytype_uint16 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, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint16 yyr1[] = +{ + 0, 163, 164, 165, 166, 166, 167, 167, 168, 168, + 168, 168, 168, 169, 169, 170, 171, 171, 172, 173, + 173, 174, 175, 175, 176, 176, 176, 176, 176, 176, + 176, 177, 177, 178, 179, 180, 180, 181, 181, 182, + 183, 183, 184, 184, 185, 185, 186, 187, 188, 187, + 189, 190, 189, 189, 191, 191, 192, 193, 193, 193, + 193, 194, 194, 195, 196, 197, 196, 198, 199, 199, + 199, 199, 200, 200, 201, 202, 202, 203, 204, 204, + 204, 204, 205, 205, 205, 206, 207, 207, 207, 207, + 208, 208, 209, 210, 210, 210, 210, 211, 211, 212, + 213, 213, 213, 213, 214, 214, 214, 214, 214, 214, + 214, 215, 215, 215, 215, 215, 215, 215, 215, 215, + 215, 216, 216, 216, 216, 216, 216, 216, 216, 216, + 216, 216, 216, 216, 217, 217, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 219, 219, + 219, 219, 219, 219, 219, 219, 220, 220, 220, 220, + 220, 220, 220, 220, 221, 221, 221, 221, 221, 221, + 221, 221, 222, 222, 222, 222, 223, 223, 224, 226, + 225, 227, 225, 228, 225, 229, 229, 231, 230, 232, + 230, 233, 233, 233, 233, 234, 235, 235, 236, 236, + 236, 236, 236, 236, 236, 237, 237, 238, 239, 239, + 240, 240, 241, 242, 242, 242, 242, 243, 243, 244, + 244, 244, 245, 245, 246, 246, 247, 247, 247, 247, + 247, 248, 249, 249, 250, 251, 251, 251, 252, 252, + 253, 254, 254, 254, 254, 255, 255, 255, 256, 257, + 257, 257, 258, 258, 259, 259, 259, 259, 259, 259, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 262, 262, 262, 262, 263, 263, 263, 264, 264, 265, + 265, 265, 265, 266, 266, 266, 266, 267, 267, 267, + 267, 267, 267, 268, 268, 268, 269, 269, 269, 270, + 270, 271, 272, 272, 272, 273, 273, 274, 275, 275, + 275, 275, 275, 276, 276, 277, 277, 278, 278, 279, + 279, 279, 280, 280, 281, 281, 282, 282, 283, 284, + 284, 285, 286, 286, 286, 287, 287, 287, 288, 288, + 289, 289, 289, 289, 289, 289, 289, 289, 289, 289, + 290, 291, 291, 292, 293, 294, 294, 295, 295, 296, + 297, 298, 299, 300, 300, 301, 302, 303, 304, 304, + 305, 306, 306, 307, 308, 309, 310, 311, 311, 312, + 312, 313, 313, 314, 314, 314, 315, 315, 316, 317, + 318, 318, 319, 320, 320, 321, 321, 322, 322, 323, + 323, 324, 325, 325, 326, 327, 327, 328, 328, 329, + 329, 330, 330, 331, 331, 331, 331, 331, 331, 332, + 332, 333, 333, 334, 334, 335, 335, 336, 336, 337, + 337, 338, 338, 339, 340, 340, 340, 341, 341, 342, + 343, 344, 345, 346, 346, 346, 347, 347, 348, 349, + 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, 350, 351, + 351, 352, 352, 352, 353, 353, 354, 354, 355, 356, + 356, 357, 357, 358, 359, 360, 360, 361, 362, 362, + 362, 362, 362, 362, 362, 363, 364, 364, 365, 365, + 366, 367, 367, 368, 369, 369, 370, 370, 371, 371, + 372, 372, 373, 373, 374, 374, 375, 376, 376, 376, + 378, 377, 379, 377, 377, 377, 380, 380, 381, 381, + 381, 381, 382, 382, 382, 382, 383, 383, 383, 383, + 383, 383, 383, 383, 384, 385, 385, 385, 386, 386, + 387, 387, 388, 389, 390, 390, 390, 390, 391, 392, + 392, 393, 394, 394, 394, 394, 395, 395, 396, 397, + 398, 398, 399, 400, 400, 400, 401, 403, 402, 404, + 404, 405, 402, 402, 406, 406, 407, 407, 408, 408, + 410, 409, 409, 411, 411, 412, 412, 413, 413, 414, + 414, 414, 415, 416, 416, 416, 417, 418, 418, 419, + 420, 421, 421, 422, 423, 423, 423, 423, 423, 423, + 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, + 424, 425, 426, 426, 427, 427, 428, 428, 429, 429, + 429, 430, 430, 430, 431, 431, 432, 433, 434, 435, + 435, 436, 436, 437, 437, 438, 438, 439, 439, 440, + 441, 442, 442, 443, 443, 444, 444, 445, 446, 446, + 447, 447, 448, 449, 450, 451, 451, 452, 452, 452, + 452, 452, 452, 453, 453, 453, 453, 454, 455, 455, + 456, 457, 457, 458, 458, 459, 459, 460, 460, 460, + 460, 460, 461, 461, 462, 463, 463, 464, 464, 465, + 465, 466, 466, 467, 468, 468, 469, 470, 471, 471, + 472, 473, 473, 474, 474, 474, 474, 475, 475, 476, + 476, 476, 477, 478, 478, 478, 479, 480, 480, 481, + 481, 482, 482, 482, 483, 483, 484, 484, 485, 486, + 486, 487, 488, 488, 489, 489, 490, 490, 491, 492, + 493, 494, 495, 496, 496, 497, 497, 498, 499, 499, + 500, 500, 500, 500, 501, 501, 502, 502, 503, 504, + 504, 505, 506, 508, 507, 507, 509, 509, 510, 510, + 511, 511, 511, 512, 512, 512, 513, 513, 513, 514, + 514, 514, 515, 515, 515, 516, 516, 517, 518, 518, + 518, 519, 519, 520, 520, 521, 521, 522, 522, 523, + 523, 523, 523, 523, 524, 524, 525, 525, 526, 526, + 527, 528, 528, 529, 529, 530, 531, 532, 532, 532, + 533, 533, 533, 534, 534, 535, 535, 535, 536, 537, + 537, 538, 539, 539, 540, 540, 541, 542, 542, 543, + 543, 544, 544, 544, 545, 545, 546, 545, 545, 547, + 547, 548, 550, 549, 551, 552, 552, 552, 553, 553, + 553, 554, 554, 555, 555, 556, 556, 557, 557, 558, + 558, 559, 560 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 1, 1, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 0, 1, 2, 1, + 3, 2, 0, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 3, 3, 1, 3, 4, 7, 3, + 0, 1, 0, 2, 0, 2, 1, 0, 0, 4, + 0, 0, 4, 3, 7, 5, 5, 0, 1, 2, + 1, 0, 2, 1, 5, 0, 7, 5, 0, 1, + 1, 2, 0, 2, 1, 5, 5, 3, 0, 1, + 2, 1, 0, 1, 2, 1, 2, 1, 2, 3, + 5, 5, 4, 0, 1, 2, 3, 0, 2, 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, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 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, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 4, 1, 1, 2, 0, + 4, 0, 7, 0, 6, 1, 2, 0, 3, 0, + 2, 0, 2, 1, 1, 1, 8, 6, 0, 1, + 1, 1, 2, 2, 2, 0, 2, 1, 4, 3, + 0, 2, 2, 1, 1, 2, 7, 0, 2, 0, + 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, + 1, 4, 0, 2, 2, 4, 3, 3, 0, 2, + 2, 3, 1, 1, 1, 1, 3, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 2, 1, 2, 2, 2, 2, 3, + 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 2, 1, 3, 1, 1, 1, 1, 3, 1, + 1, 1, 1, 1, 2, 2, 3, 1, 1, 1, + 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 1, 1, 1, 2, 2, 1, 3, 4, + 3, 3, 3, 2, 5, 4, 3, 5, 3, 4, + 3, 2, 0, 1, 0, 1, 3, 1, 2, 0, + 2, 2, 1, 1, 1, 4, 4, 3, 0, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 4, 0, 2, 2, 6, 2, 1, 0, 2, 1, + 2, 4, 7, 0, 2, 2, 3, 4, 0, 1, + 6, 0, 2, 1, 4, 2, 3, 5, 3, 2, + 1, 0, 1, 3, 2, 3, 0, 1, 2, 4, + 0, 2, 2, 1, 1, 1, 3, 1, 3, 1, + 1, 6, 0, 2, 7, 0, 2, 0, 1, 6, + 7, 0, 2, 1, 1, 1, 2, 1, 1, 1, + 1, 7, 6, 1, 1, 0, 2, 8, 6, 0, + 4, 0, 1, 7, 2, 1, 1, 0, 2, 2, + 5, 7, 4, 2, 1, 1, 0, 2, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, + 7, 0, 3, 4, 0, 2, 4, 5, 1, 1, + 1, 4, 5, 2, 1, 0, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 14, 0, 1, 0, 2, + 1, 0, 4, 4, 0, 4, 0, 4, 0, 4, + 0, 1, 1, 3, 2, 1, 3, 1, 1, 1, + 0, 9, 0, 8, 8, 9, 0, 3, 3, 1, + 4, 2, 3, 1, 4, 2, 3, 1, 4, 2, + 4, 2, 3, 1, 5, 1, 3, 5, 2, 1, + 0, 2, 2, 2, 0, 2, 2, 1, 2, 1, + 1, 2, 0, 1, 3, 1, 0, 1, 8, 4, + 0, 2, 4, 0, 2, 1, 2, 0, 8, 4, + 3, 0, 5, 3, 1, 2, 2, 3, 3, 1, + 0, 10, 4, 0, 3, 0, 1, 0, 1, 0, + 1, 2, 1, 0, 3, 3, 2, 0, 2, 2, + 1, 0, 2, 1, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, + 5, 5, 0, 2, 0, 2, 0, 1, 0, 1, + 1, 10, 11, 6, 0, 2, 1, 4, 4, 0, + 2, 0, 1, 9, 7, 0, 2, 0, 2, 4, + 8, 0, 1, 0, 1, 0, 2, 4, 0, 2, + 0, 1, 2, 2, 3, 0, 1, 4, 5, 6, + 5, 1, 1, 2, 1, 2, 1, 2, 3, 4, + 5, 0, 2, 0, 2, 0, 2, 1, 3, 3, + 3, 2, 0, 1, 7, 0, 3, 0, 3, 7, + 5, 0, 2, 1, 0, 2, 1, 1, 1, 1, + 7, 0, 1, 0, 3, 4, 3, 4, 7, 2, + 4, 2, 3, 1, 1, 1, 3, 0, 3, 0, + 3, 2, 2, 1, 1, 1, 1, 3, 8, 7, + 7, 2, 0, 1, 1, 3, 1, 1, 1, 1, + 1, 1, 1, 4, 4, 0, 2, 1, 1, 2, + 1, 1, 1, 1, 5, 5, 0, 2, 1, 2, + 3, 1, 3, 0, 8, 6, 1, 2, 1, 2, + 1, 1, 1, 7, 8, 6, 7, 8, 6, 0, + 3, 2, 2, 1, 3, 1, 2, 2, 9, 8, + 8, 5, 4, 2, 1, 2, 3, 1, 1, 7, + 8, 6, 7, 4, 4, 2, 9, 8, 1, 1, + 8, 0, 1, 5, 1, 4, 9, 0, 1, 1, + 1, 3, 1, 5, 4, 4, 5, 2, 7, 5, + 1, 4, 1, 1, 1, 1, 3, 6, 7, 1, + 1, 0, 2, 2, 0, 1, 0, 6, 4, 5, + 6, 3, 0, 3, 6, 1, 1, 1, 1, 1, + 1, 3, 2, 3, 2, 2, 3, 1, 4, 2, + 3, 2, 1 +}; + +/* 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 yytype_uint16 yydefact[] = +{ + 22, 0, 2, 22, 4, 0, 1, 5, 0, 0, + 0, 0, 0, 0, 0, 21, 23, 31, 32, 24, + 0, 27, 0, 25, 0, 26, 0, 28, 0, 29, + 30, 788, 0, 0, 0, 0, 19, 0, 0, 0, + 790, 0, 0, 0, 324, 323, 330, 328, 327, 329, + 326, 325, 0, 0, 0, 47, 0, 0, 0, 0, + 0, 902, 0, 83, 87, 0, 0, 0, 0, 39, + 0, 33, 0, 0, 77, 905, 906, 907, 0, 0, + 34, 0, 337, 0, 336, 0, 335, 0, 0, 813, + 727, 0, 0, 0, 48, 44, 57, 0, 0, 515, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 177, 176, 0, 0, 922, 110, 62, 100, 102, + 132, 121, 63, 0, 109, 0, 122, 104, 105, 106, + 128, 129, 108, 107, 127, 124, 125, 123, 126, 131, + 130, 101, 103, 133, 68, 0, 0, 0, 0, 173, + 73, 74, 172, 0, 174, 78, 0, 78, 0, 145, + 84, 136, 85, 0, 141, 142, 140, 138, 139, 137, + 144, 143, 146, 147, 0, 86, 88, 93, 93, 98, + 155, 148, 99, 149, 150, 153, 154, 152, 151, 0, + 0, 20, 0, 92, 0, 0, 0, 0, 0, 908, + 909, 0, 910, 330, 792, 334, 332, 331, 6, 7, + 333, 0, 791, 789, 0, 12, 0, 364, 0, 0, + 0, 0, 0, 0, 318, 11, 238, 245, 252, 253, + 274, 317, 323, 330, 319, 0, 320, 321, 0, 425, + 247, 10, 8, 9, 342, 340, 341, 338, 0, 323, + 0, 0, 40, 40, 40, 731, 37, 53, 0, 0, + 0, 42, 60, 0, 58, 455, 453, 454, 0, 0, + 0, 732, 0, 466, 465, 467, 0, 0, 764, 765, + 763, 769, 0, 183, 6, 179, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 178, 70, 0, 69, + 0, 0, 747, 744, 0, 0, 68, 81, 0, 79, + 903, 0, 0, 89, 0, 0, 94, 0, 56, 67, + 0, 829, 542, 912, 0, 0, 921, 915, 0, 0, + 914, 0, 236, 352, 351, 237, 273, 276, 275, 278, + 277, 362, 0, 0, 359, 363, 0, 430, 429, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 254, 255, 256, 257, 258, 259, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 337, 416, 414, 343, 0, 0, 18, 339, 816, 0, + 0, 821, 820, 822, 0, 818, 729, 41, 728, 730, + 0, 443, 447, 0, 0, 0, 444, 448, 445, 0, + 0, 210, 0, 225, 214, 884, 885, 213, 52, 0, + 515, 0, 45, 120, 111, 46, 112, 116, 117, 115, + 113, 114, 119, 118, 59, 55, 0, 0, 0, 0, + 57, 0, 0, 0, 626, 0, 589, 590, 516, 517, + 518, 522, 519, 520, 521, 567, 0, 573, 523, 524, + 619, 620, 559, 563, 329, 733, 737, 0, 464, 0, + 0, 0, 0, 0, 767, 0, 189, 0, 191, 0, + 408, 0, 367, 0, 0, 0, 0, 0, 0, 0, + 181, 0, 0, 71, 64, 0, 741, 0, 0, 80, + 75, 76, 0, 901, 95, 90, 91, 825, 0, 0, + 0, 0, 919, 911, 0, 411, 0, 410, 916, 913, + 353, 354, 350, 0, 322, 0, 0, 358, 235, 0, + 239, 426, 270, 267, 268, 271, 272, 269, 261, 266, + 264, 263, 262, 265, 299, 298, 297, 296, 295, 294, + 288, 290, 287, 289, 292, 291, 283, 286, 285, 282, + 281, 293, 284, 260, 279, 0, 0, 0, 0, 0, + 302, 307, 313, 427, 418, 0, 348, 417, 415, 413, + 357, 346, 0, 246, 817, 815, 0, 0, 819, 209, + 889, 890, 894, 0, 894, 446, 0, 0, 0, 19, + 49, 43, 0, 456, 0, 475, 474, 476, 0, 829, + 323, 0, 623, 664, 0, 569, 571, 561, 565, 703, + 596, 0, 0, 0, 735, 432, 0, 468, 323, 0, + 329, 0, 0, 0, 773, 0, 759, 769, 757, 0, + 761, 762, 187, 194, 193, 0, 0, 185, 0, 195, + 180, 437, 0, 365, 0, 0, 0, 0, 0, 0, + 369, 370, 372, 373, 374, 375, 376, 377, 371, 378, + 379, 366, 441, 0, 0, 786, 787, 0, 189, 198, + 641, 163, 156, 207, 157, 206, 160, 158, 159, 162, + 161, 0, 746, 0, 745, 175, 65, 250, 244, 0, + 243, 232, 0, 242, 249, 317, 96, 543, 0, 831, + 835, 0, 833, 823, 0, 0, 920, 335, 409, 904, + 355, 349, 280, 345, 356, 0, 360, 240, 300, 301, + 315, 314, 304, 305, 306, 0, 0, 310, 311, 312, + 309, 0, 0, 362, 0, 812, 0, 895, 224, 0, + 0, 886, 894, 208, 224, 211, 222, 38, 0, 829, + 473, 0, 0, 470, 54, 626, 0, 0, 0, 662, + 0, 597, 0, 592, 633, 540, 0, 549, 547, 548, + 626, 550, 0, 566, 572, 0, 0, 618, 558, 562, + 613, 0, 0, 0, 0, 0, 469, 0, 461, 0, + 0, 770, 772, 771, 0, 767, 0, 0, 0, 192, + 190, 0, 186, 0, 829, 449, 450, 435, 438, 407, + 405, 0, 0, 0, 0, 401, 0, 0, 0, 381, + 14, 13, 0, 0, 0, 0, 480, 483, 482, 491, + 479, 493, 488, 484, 481, 487, 489, 486, 485, 494, + 490, 492, 495, 497, 496, 782, 784, 0, 0, 441, + 0, 200, 201, 199, 0, 0, 640, 740, 0, 0, + 748, 742, 743, 749, 66, 251, 0, 0, 323, 830, + 0, 0, 836, 824, 918, 344, 362, 361, 303, 428, + 308, 316, 347, 356, 814, 0, 210, 0, 0, 0, + 212, 229, 226, 228, 230, 227, 0, 223, 452, 0, + 0, 477, 0, 0, 622, 627, 665, 0, 0, 589, + 0, 579, 584, 0, 575, 580, 593, 595, 0, 591, + 0, 629, 541, 538, 0, 0, 568, 570, 560, 564, + 0, 0, 545, 0, 0, 0, 508, 0, 0, 498, + 738, 0, 0, 433, 431, 0, 462, 0, 0, 458, + 760, 766, 0, 768, 188, 184, 828, 0, 0, 0, + 323, 393, 423, 420, 424, 0, 323, 0, 0, 0, + 0, 0, 0, 800, 802, 801, 796, 797, 803, 0, + 387, 0, 442, 439, 0, 783, 781, 0, 0, 776, + 0, 774, 775, 0, 0, 204, 203, 202, 197, 198, + 0, 681, 0, 700, 0, 705, 725, 0, 0, 642, + 643, 659, 644, 646, 647, 648, 649, 693, 650, 651, + 652, 653, 655, 656, 0, 0, 657, 329, 712, 847, + 848, 711, 858, 859, 714, 716, 0, 753, 329, 231, + 0, 233, 241, 323, 837, 224, 0, 891, 899, 0, + 219, 451, 478, 471, 472, 624, 628, 663, 661, 596, + 0, 587, 583, 574, 0, 578, 0, 0, 637, 0, + 630, 0, 0, 534, 0, 0, 0, 0, 0, 544, + 0, 0, 0, 0, 603, 0, 0, 329, 0, 612, + 0, 736, 734, 463, 0, 0, 758, 826, 0, 436, + 434, 0, 0, 0, 397, 0, 0, 402, 403, 798, + 794, 0, 0, 811, 807, 808, 793, 380, 0, 382, + 0, 390, 780, 779, 785, 0, 0, 440, 182, 0, + 0, 667, 0, 679, 682, 0, 698, 701, 702, 706, + 0, 0, 723, 0, 0, 0, 0, 0, 694, 509, + 510, 0, 666, 0, 645, 654, 658, 715, 0, 713, + 717, 739, 0, 751, 767, 234, 210, 898, 0, 887, + 900, 891, 220, 221, 217, 600, 585, 0, 586, 576, + 0, 581, 594, 634, 636, 635, 641, 171, 164, 632, + 165, 168, 166, 167, 631, 170, 169, 0, 0, 531, + 0, 0, 844, 0, 0, 0, 0, 0, 0, 0, + 0, 717, 605, 134, 0, 515, 603, 0, 614, 616, + 0, 0, 0, 457, 460, 827, 396, 0, 0, 394, + 419, 0, 421, 404, 398, 799, 0, 805, 804, 383, + 0, 388, 389, 0, 778, 777, 196, 0, 0, 0, + 0, 0, 0, 0, 704, 726, 0, 721, 666, 0, + 870, 867, 872, 0, 867, 0, 580, 0, 718, 662, + 513, 641, 0, 0, 0, 0, 0, 752, 0, 0, + 0, 893, 892, 888, 0, 216, 0, 0, 588, 0, + 582, 0, 638, 0, 540, 0, 0, 528, 0, 0, + 0, 0, 843, 0, 556, 0, 546, 556, 0, 0, + 323, 511, 604, 135, 0, 515, 504, 603, 615, 610, + 617, 0, 0, 323, 395, 422, 400, 399, 809, 386, + 384, 16, 668, 0, 680, 678, 0, 687, 699, 697, + 724, 0, 0, 0, 853, 868, 869, 0, 0, 0, + 707, 0, 0, 580, 0, 0, 0, 719, 0, 874, + 0, 0, 756, 0, 754, 897, 218, 598, 0, 601, + 577, 639, 623, 539, 536, 0, 0, 0, 603, 0, + 0, 845, 0, 0, 0, 0, 553, 0, 554, 512, + 608, 606, 501, 504, 609, 392, 0, 810, 385, 0, + 0, 17, 669, 0, 670, 0, 674, 0, 685, 722, + 720, 589, 590, 0, 0, 0, 871, 710, 0, 708, + 0, 660, 0, 0, 877, 0, 873, 755, 0, 0, + 0, 0, 535, 0, 515, 530, 529, 0, 842, 603, + 0, 846, 0, 0, 551, 555, 0, 0, 499, 505, + 501, 391, 15, 673, 0, 0, 0, 641, 0, 0, + 688, 861, 0, 0, 709, 0, 851, 0, 0, 691, + 674, 0, 0, 750, 599, 621, 0, 0, 532, 0, + 840, 841, 839, 0, 557, 603, 0, 0, 0, 0, + 500, 641, 0, 675, 676, 684, 686, 0, 0, 867, + 0, 862, 0, 878, 880, 0, 855, 849, 852, 0, + 0, 692, 0, 875, 0, 602, 0, 0, 0, 838, + 502, 603, 603, 0, 677, 668, 641, 0, 0, 0, + 860, 864, 0, 857, 0, 0, 850, 690, 0, 876, + 537, 0, 526, 503, 506, 603, 0, 689, 683, 866, + 0, 0, 856, 854, 668, 533, 0, 527, 507, 671, + 0, 0, 881, 0, 525, 0, 865, 879, 672, 863 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 1, 2, 3, 873, 224, 839, 1419, 1420, 225, + 280, 4, 5, 15, 16, 401, 116, 42, 19, 20, + 406, 431, 261, 432, 95, 260, 55, 93, 21, 22, + 263, 57, 117, 23, 884, 24, 298, 59, 150, 118, + 26, 308, 62, 160, 63, 119, 28, 315, 66, 179, + 120, 121, 435, 1233, 1234, 162, 182, 693, 1209, 151, + 123, 124, 125, 488, 688, 486, 653, 654, 818, 655, + 656, 660, 126, 874, 502, 695, 259, 607, 765, 421, + 1305, 1194, 916, 422, 917, 513, 886, 1061, 86, 346, + 540, 711, 226, 712, 713, 932, 387, 228, 229, 579, + 745, 580, 751, 581, 230, 231, 44, 249, 233, 207, + 47, 87, 48, 234, 235, 236, 237, 532, 731, 342, + 343, 537, 736, 344, 127, 495, 670, 671, 999, 1139, + 672, 1350, 1140, 1261, 1000, 1262, 673, 1122, 1249, 981, + 674, 1346, 675, 988, 1127, 835, 676, 677, 128, 982, + 728, 527, 588, 392, 832, 1123, 1252, 983, 345, 984, + 349, 129, 805, 130, 979, 827, 131, 844, 423, 828, + 132, 265, 447, 133, 810, 967, 134, 276, 478, 637, + 135, 136, 618, 619, 770, 921, 865, 958, 959, 1468, + 1412, 1469, 955, 1168, 956, 1170, 269, 270, 458, 459, + 460, 1576, 1396, 1456, 1317, 1498, 1219, 1452, 1093, 943, + 321, 953, 1099, 792, 461, 950, 951, 1405, 462, 463, + 464, 465, 933, 934, 1085, 1201, 935, 1082, 1198, 466, + 782, 939, 783, 467, 1306, 1307, 1389, 1335, 1336, 468, + 795, 1109, 796, 1240, 1110, 469, 470, 631, 776, 471, + 1075, 1091, 1214, 941, 1089, 1204, 1312, 875, 876, 1029, + 1030, 1031, 472, 928, 779, 1152, 1423, 1033, 1475, 1513, + 1514, 1034, 1270, 1153, 1035, 1479, 1428, 1480, 1036, 1530, + 1171, 1037, 1038, 1273, 1156, 1039, 473, 1041, 1160, 1042, + 1043, 1044, 1045, 1046, 1362, 1277, 1162, 91, 476, 137, + 803, 634, 153, 703, 881, 506, 704, 303, 882, 883, + 1298, 1183, 138, 483, 281, 282, 646, 650, 484, 647, + 1009, 1010, 139, 140, 866, 1006, 867, 684, 49, 241, + 50, 242, 243, 679, 838, 996, 1130, 997, 680, 991, + 1134, 1257, 1135, 403, 29, 251, 399, 404, 405, 141, + 142, 520, 721, 722, 892, 800, 1222, 1223, 1323, 1048, + 1049, 1487, 1050, 1051, 1052, 1520, 1550, 1551, 1053, 1367, + 1287, 1054, 1380, 1055, 1523, 1524, 1434, 424, 425, 426, + 602, 1189, 759, 905, 427, 176, 657, 156, 51, 78, + 198, 199, 200, 201, 324, 325, 202, 143 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -1403 +static const yytype_int16 yypact[] = +{ + -1403, 173, -1403, 185, -1403, 676, -1403, -1403, 402, 402, + 402, 402, 648, 303, 402, -1403, -1403, -1403, -1403, -1403, + 2417, -1403, 1192, -1403, 417, -1403, 2456, -1403, 2489, -1403, + -1403, -1403, 323, 438, 487, 289, -1403, 402, 402, 530, + -1403, 369, 499, 360, 204, 204, 601, -1403, 435, -1403, + -1403, -1403, 550, 586, 82, 569, 606, 1545, 634, 492, + 647, -1403, 2594, -1403, 81, 692, 2666, 402, 402, -1403, + 402, -1403, 664, 685, 691, -1403, -1403, -1403, 747, 303, + -1403, 829, -1403, 1313, -1403, 341, -1403, 365, 2084, 718, + 708, 623, 630, 673, -1403, -1403, 723, 681, 402, -1403, + 402, 402, 546, 402, 335, 681, 402, 402, 744, 841, + 402, -1403, -1403, 402, 758, -1403, -1403, -1403, -1403, -1403, + -1403, -1403, -1403, 838, -1403, 161, -1403, -1403, -1403, -1403, + -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, + -1403, -1403, -1403, -1403, 617, 402, 211, 188, 402, -1403, + -1403, -1403, -1403, 867, -1403, 442, 673, 442, 848, -1403, + -1403, -1403, -1403, 707, -1403, -1403, -1403, -1403, -1403, -1403, + -1403, -1403, -1403, -1403, 857, -1403, 779, 540, 540, -1403, + -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, 893, + 902, -1403, 877, -1403, 402, 402, 402, 792, 812, -1403, + -1403, 77, -1403, 678, -1403, -1403, -1403, -1403, -1403, -1403, + -1403, 852, -1403, -1403, 303, -1403, 859, -1403, 374, 374, + 374, 374, 374, 2013, -1403, -1403, -1403, 107, 628, 2186, + 840, 360, 381, -1403, -1403, 615, -1403, -1403, 844, -1403, + 861, -1403, 402, -1403, -1403, -1403, -1403, -1403, 878, 645, + 918, 507, 402, 402, 402, -1403, -1403, -1403, 1341, 876, + 673, 2633, 402, 888, -1403, 842, -1403, -1403, 71, 959, + 837, 988, 803, -1403, -1403, 360, 891, 824, -1403, -1403, + 895, 93, 897, -1403, 1004, -1403, 832, 904, 1019, 912, + 90, 839, 142, 402, 681, 2522, -1403, 402, 914, -1403, + 1016, 1047, 360, -1403, 402, 927, 617, 402, 929, -1403, + -1403, 932, 936, -1403, 1066, 935, -1403, 937, -1403, -1403, + 939, 563, -1403, 214, 941, 402, 942, -1403, 303, 943, + 214, 402, -1403, 168, -1403, -1403, -1403, 947, -1403, -1403, + -1403, 298, 944, 948, -1403, -1403, 663, -1403, -1403, 2084, + 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, + 2084, 2084, -1403, -1403, -1403, -1403, -1403, -1403, 2084, 2084, + 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, + 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 374, 2121, + 955, 392, -1403, -1403, 2013, 2084, -1403, -1403, 402, 952, + 303, -1403, -1403, -1403, 616, -1403, -1403, -1403, -1403, -1403, + 940, -1403, -1403, 681, 402, 402, -1403, -1403, -1403, 1029, + 1060, -1403, 402, -1403, -1403, -1403, -1403, -1403, -1403, 958, + -1403, 586, -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, + -1403, -1403, -1403, -1403, -1403, -1403, 303, 1067, 736, 303, + 723, 1082, 2084, 2084, 334, 2013, 610, -1403, -1403, -1403, + -1403, -1403, -1403, -1403, -1403, -1403, 989, -1403, -1403, -1403, + -1403, -1403, -1403, -1403, 969, -1403, 1085, 303, 974, 303, + 303, 1077, 463, 973, 1068, 2084, 468, 1084, 284, 303, + -1403, 303, -1403, 975, 394, 979, 303, 987, 681, 845, + -1403, 1096, 2699, -1403, -1403, 1102, 1062, 732, 990, -1403, + -1403, -1403, 1439, -1403, 402, -1403, -1403, -1403, 402, 100, + 86, 2084, -1403, 214, 985, 207, 1024, -1403, -1403, 214, + 643, 670, -1403, 374, -1403, 2013, 2084, 991, -1403, 2013, + -1403, -1403, 2161, 2161, 2161, 2161, 2161, 2161, 2161, 2161, + 2161, 2161, 2161, 2161, 2771, 2771, 2771, 2771, 2771, 2771, + 2771, 2771, 2771, 2771, 2771, 2771, 751, 751, 751, -1403, + -1403, -1403, -1403, 2161, -1403, 539, 539, 374, 374, 498, + -1403, 755, 1000, 557, -1403, 2013, -1403, 643, -1403, -1403, + 178, -1403, 997, -1403, -1403, -1403, 759, 918, -1403, -1403, + -1403, -1403, 59, 1110, 59, -1403, 681, 661, 850, 709, + -1403, -1403, 1002, -1403, 361, -1403, -1403, -1403, 1113, 996, + 677, 1007, 272, 1094, 1093, -1403, -1403, -1403, -1403, -1403, + 1124, 1103, 1914, 673, 1106, 1021, 303, -1403, 102, 1130, + 113, 936, 303, 303, -1403, 402, -1403, 1138, 1148, 1132, + -1403, -1403, -1403, 470, -1403, 673, 1114, 1145, 849, -1403, + -1403, 545, 1031, -1403, 303, 1038, 1133, 402, 931, 915, + -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, 1115, -1403, + -1403, -1403, 1039, 2322, 1045, -1403, -1403, 303, 468, 155, + -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, + -1403, 1042, -1403, 828, -1403, -1403, -1403, -1403, -1403, 2084, + -1403, -1403, 1037, -1403, -1403, 774, -1403, -1403, 303, -1403, + 670, 1034, 58, -1403, 1044, 1049, -1403, 966, -1403, -1403, + 643, -1403, -1403, -1403, 1051, 2013, -1403, -1403, -1403, -1403, + -1403, -1403, -1403, -1403, -1403, 539, 2121, -1403, -1403, -1403, + -1403, 539, 374, 312, 2084, -1403, 1048, 1054, 1078, 1137, + 1156, -1403, 59, -1403, 1078, -1403, 761, -1403, 1055, 714, + 1057, 2084, 1059, -1403, -1403, -1403, 1064, 1149, 2084, 1143, + 148, -1403, 1976, 655, 1072, 1172, 1963, -1403, -1403, -1403, + 334, 424, 402, -1403, -1403, 1186, 1182, -1403, -1403, -1403, + -1403, 1070, 673, 586, 2084, 1071, 360, 2084, 761, 2084, + 1076, -1403, 670, 360, 784, 1068, 1190, 936, 673, -1403, + -1403, 303, -1403, 1080, 563, -1403, -1403, 1079, -1403, -1403, + -1403, 2121, 1181, 303, 870, -1403, 1205, 2555, 722, -1403, + -1403, -1403, 402, 2084, 1086, 1087, -1403, -1403, -1403, -1403, + -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, + -1403, -1403, -1403, -1403, -1403, 1083, -1403, 810, 915, 1039, + 1173, 908, 402, -1403, 1089, 1213, 2156, -1403, 1210, 358, + -1403, -1403, -1403, -1403, -1403, -1403, 855, 1936, 510, -1403, + 303, 303, -1403, -1403, -1403, -1403, 410, -1403, -1403, 836, + -1403, -1403, -1403, -1403, -1403, 1105, -1403, 303, 402, 1183, + -1403, -1403, -1403, -1403, -1403, -1403, 303, -1403, -1403, 1097, + 681, -1403, 1104, 2335, -1403, 402, -1403, 2084, 1107, 360, + 1125, -1403, 129, 1108, 1176, -1403, -1403, -1403, 2084, -1403, + 508, 1212, -1403, 1117, 1225, 1229, -1403, -1403, -1403, -1403, + 1231, 1206, 554, 541, 402, 1233, -1403, 2084, 1242, -1403, + -1403, 1121, 1122, -1403, -1403, 1123, -1403, 2084, 1234, -1403, + -1403, -1403, 1131, -1403, -1403, 670, -1403, 98, 2084, 1134, + 413, -1403, -1403, -1403, -1403, 303, 699, 303, 583, 1174, + 1254, 2732, 1174, -1403, -1403, -1403, -1403, -1403, -1403, 884, + -1403, 1136, -1403, -1403, 1141, -1403, -1403, 1140, 2335, -1403, + 887, -1403, -1403, 1142, 303, -1403, -1403, -1403, -1403, 155, + 766, 402, 2084, 402, 1144, 2084, 1236, 2084, 48, -1403, + -1403, -1403, -1403, -1403, -1403, -1403, -1403, 400, -1403, -1403, + -1403, -1403, -1403, -1403, 543, 40, -1403, 1146, -1403, -1403, + -1403, -1403, -1403, -1403, -1403, -1403, 1147, 122, 874, -1403, + 1439, -1403, -1403, 649, 670, 1078, 731, 182, 146, 303, + 957, -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, 1124, + 2084, 1276, -1403, -1403, 2084, 1152, 1188, 1150, 360, 1157, + -1403, 2765, 2084, 1258, 1305, 1226, 1261, 1262, 402, -1403, + 1263, 1264, 402, 108, 1717, 1279, 2084, 1170, 106, -1403, + 1292, -1403, -1403, -1403, 1171, 2084, -1403, -1403, 1175, -1403, + -1403, 590, 889, 906, -1403, 1177, 1260, -1403, -1403, 402, + -1403, 1217, 1217, -1403, -1403, -1403, -1403, -1403, 915, -1403, + 595, -1403, -1403, -1403, -1403, 1178, 915, -1403, 670, 1179, + 1298, -1403, 2084, 1251, -1403, 1265, 1252, -1403, -1403, -1403, + 1184, 303, 1257, 1270, 1903, 2084, 2084, 2084, -1403, -1403, + -1403, 1293, 1194, 456, -1403, -1403, -1403, -1403, 2084, -1403, + 712, -1403, 500, 1309, 1068, -1403, -1403, -1403, 87, -1403, + -1403, 182, -1403, -1403, 1195, -1403, -1403, 2084, -1403, 1319, + 2084, -1403, -1403, -1403, 1207, -1403, -1403, -1403, -1403, -1403, + -1403, -1403, -1403, -1403, -1403, -1403, -1403, 1211, 673, 1295, + 1328, 2013, -1403, 314, 936, 936, 1215, 936, 936, 1320, + 2121, -1403, -1403, -1403, 1795, -1403, 1717, 1325, 402, -1403, + 1219, 1221, 1331, -1403, -1403, -1403, -1403, 1311, 303, -1403, + -1403, 2121, -1403, -1403, 402, -1403, 1350, -1403, -1403, -1403, + 1299, -1403, -1403, 1245, -1403, -1403, -1403, 1357, 1339, 2084, + 1232, 1634, 2084, 1237, -1403, -1403, 2084, 1354, 1194, 1238, + -1403, 564, -1403, 2084, 564, 1239, 1312, 1976, -1403, 1143, + -1403, -1403, 2084, 2084, 111, 402, 1243, -1403, 1366, 1249, + 734, -1403, -1403, -1403, 2084, -1403, 1253, 1976, -1403, 1976, + -1403, 303, -1403, 1367, 1172, 1255, 673, -1403, 1368, 1250, + 2013, 121, -1403, 1376, 1348, 1266, -1403, 1348, 1269, 2121, + 350, -1403, -1403, -1403, 1242, -1403, -1403, 1717, -1403, -1403, + -1403, 1271, 303, 474, -1403, -1403, -1403, -1403, 402, 402, + -1403, 1406, 69, 1332, -1403, -1403, 1384, -1403, -1403, -1403, + -1403, 2084, 1272, 148, -1403, -1403, -1403, 2084, 1324, 1273, + -1403, 2084, 1281, 1355, 1283, 1401, 1396, -1403, 2084, -1403, + 117, 788, -1403, 1405, -1403, -1403, -1403, -1403, 1369, -1403, + -1403, 360, 272, -1403, 1410, 1300, 1816, 1331, 1717, 1301, + 1331, -1403, 1303, 1415, 1414, 1310, -1403, 1314, -1403, -1403, + -1403, -1403, 1030, -1403, -1403, -1403, 1315, -1403, -1403, 1316, + 402, -1403, -1403, 1318, -1403, 2013, -1403, 1424, 1043, -1403, + -1403, 719, 1317, 1323, 1321, 264, -1403, -1403, 124, -1403, + 2084, -1403, 1418, 1332, 1391, 2084, -1403, -1403, 1322, 2013, + 1326, 1426, -1403, 1416, -1403, -1403, -1403, 1327, -1403, 1717, + 1330, -1403, 1331, 936, -1403, -1403, 172, 2084, -1403, -1403, + 1030, -1403, -1403, -1403, 1333, 344, 1335, -1403, 2084, 1435, + -1403, 675, 2084, 2084, -1403, 2084, -1403, 1338, 128, 402, + -1403, 2084, 1394, -1403, 1334, -1403, 936, 1430, -1403, 1454, + -1403, -1403, -1403, 1343, -1403, 1717, 1449, 1170, 1457, 2084, + -1403, -1403, 1475, -1403, -1403, -1403, -1403, 1427, 1462, 564, + 2084, -1403, 1421, -1403, -1403, 130, 1423, -1403, -1403, 1353, + 1356, -1403, 506, -1403, 2084, -1403, 1358, 936, 1488, -1403, + -1403, 1717, 1717, 1471, -1403, 69, -1403, 1359, 2084, 1433, + -1403, -1403, 2013, -1403, 136, 2084, -1403, -1403, 1493, -1403, + -1403, 1364, 402, -1403, -1403, 1717, 1370, -1403, -1403, -1403, + 2013, 815, -1403, -1403, 69, -1403, 1371, -1403, -1403, -1403, + 816, 2084, -1403, 1373, -1403, 2084, -1403, -1403, -1403, -1403 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -1403, -1403, -1403, -1403, -66, -1403, 382, -1403, -1403, -1403, + 7, 1518, -1403, -1403, -1403, 1521, 50, 1127, -1403, -1403, + 822, -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, + 1088, -1403, -1403, -1403, -1403, -1403, 1222, -1403, -1403, 115, + -1403, 1372, -1403, -1403, -1403, 1525, -1403, 1365, -1403, -1403, + -57, -52, -1403, -50, -1403, -1403, -1403, 542, -1403, -1403, + -224, 694, -24, -1403, -1403, -1403, -1403, 881, -1403, -1403, + -417, -1403, -34, 517, -1403, -1403, -148, -839, -1403, -692, + -1403, -1403, -1403, -1403, 739, -616, -1403, -1403, -39, -1403, + -1403, 482, 1009, -1403, 662, 220, -1403, -1403, 2505, 804, + -1403, -489, -1403, 800, -178, 903, -1403, 189, 52, -1403, + -1403, 1509, -353, -257, -1403, 1342, -1403, -1403, -1403, -278, + -382, -1403, -1403, -36, -1403, -1403, -1403, -1403, -1403, -1403, + -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, 309, + -1403, -1403, -1403, -1403, -1403, 571, -1403, -1403, -1403, -199, + -1403, -72, -1403, -269, -1403, -1403, -1403, -893, -27, -344, + 984, -1403, -1403, 16, -1403, -1403, -46, 695, -1403, -1403, + -1403, -1403, -1403, -1403, -1403, -1403, 18, -1403, -1403, -1403, + -31, -40, -1403, -1403, -1403, -1403, 642, -1403, -1403, 99, + 159, -1403, -1403, -1403, 536, -1403, -407, -1403, -1403, -1403, + -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, 262, + -147, -1403, -1403, -1403, -1403, -1403, -1403, 250, -1403, -1403, + -1403, -380, 275, -1023, -1403, -1403, -1096, -1403, -1403, -732, + 509, -1403, -1403, -379, -1403, -1403, -1403, 481, -1222, -1403, + -1403, 255, -1403, -1157, -1403, -1403, 960, -1403, 202, -595, + -1403, -1403, -1403, -1403, 434, -1403, -1403, -1145, -1403, -1403, + -1403, -1403, -397, 307, -1403, -1012, -1402, -1403, 109, -1403, + -1188, -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, -1403, + -1403, -1403, -1403, -1403, -1403, -1403, -401, -1403, -1403, 553, + -1403, -903, -1403, 556, -1403, -1403, -1403, -373, -1403, 1539, + -1403, -1403, -653, -1403, -1403, -1403, -1403, -1403, -1403, -1403, + -1403, -1403, -1403, -1403, 724, -1403, 420, -752, -583, -1403, + 459, -1403, -38, -29, 599, -1403, -1403, -1403, -8, -1403, + 22, 257, -64, -1403, -1403, -1403, 618, -1403, -1403, -1403, + -1403, 477, -1403, -1403, -1403, -1403, 1014, -1403, 1208, 322, + -16, -549, -1403, -1403, -1403, -1403, 390, -1403, -1403, -1403, + -1403, 131, -1403, -1403, -1403, -1403, 32, -1403, -1403, -1215, + 137, -1403, 97, 581, -1385, -1403, -1403, -1403, -1403, -1403, + 1020, 436, -523, -1403, -1403, -468, 1602, -1403, -1403, -1403, + -1403, -1403, -1403, -1403, 547, 1428, -1403, -1403 +}; + +/* 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 -918 +static const yytype_int16 yytable[] = +{ + 32, 33, 34, 36, 39, 84, 52, 122, 310, 180, + 161, 239, 592, 457, 181, 206, 165, 210, 35, 152, + 184, 154, 168, 611, 170, 811, 186, 777, 187, 72, + 73, 167, 183, 171, 420, 185, 583, 188, 163, 283, + 336, 337, 338, 339, 340, 584, 173, 238, 930, 326, + 880, 1102, 724, 628, 1106, 18, 240, 627, 612, 189, + 190, 1313, 191, 971, 815, 46, 906, 1066, 1286, 1369, + 772, 659, 910, 208, 625, 626, 31, 245, 164, 247, + 166, 761, 255, 92, 31, 1341, 738, 739, 264, 266, + 268, 493, 271, 36, 31, 36, 36, 284, 285, 36, + 288, 290, 36, 209, 1310, 292, 40, 31, 272, 149, + 277, 807, 429, 31, 286, 1413, 591, 291, 174, 267, + 25, 1178, 589, 174, 448, 890, 1357, 209, 31, 526, + 481, 203, 494, 586, 347, 174, 299, 300, 1080, 1378, + 305, 1285, 1238, 1566, 1028, 1445, 1375, 309, 1230, 309, + 39, 239, 1485, 592, 40, 31, 1485, 1400, 1378, 481, + 1292, 40, 31, 1569, 1445, 1426, 757, 718, 809, 316, + 316, 482, 1583, 6, 40, 31, 1458, 159, 1164, 31, + 348, 1081, -769, 174, 497, -3, 322, 323, 322, 822, + 871, 1373, 1179, 330, 40, 31, 1587, 457, 1165, 46, + 1182, 973, 45, 295, 433, 347, 758, 891, 1505, 434, + 574, 582, 301, 40, 31, 438, 872, 40, 31, 41, + 919, 441, 449, 442, 1188, 678, 1422, 436, 500, -51, + 440, 799, 443, 175, 396, 798, 329, 1501, 723, 909, + 1457, 1301, -368, 1460, 407, 407, 407, 613, 82, 83, + 1117, 348, 793, 794, 444, 1490, 898, 733, 1239, 1231, + -362, 719, 474, 1379, 1372, -459, 1363, 41, 45, 1446, + 389, 870, 232, 1401, -769, 977, 1486, 437, 635, 439, + 1528, 639, 1553, 1540, 1388, 36, 208, 41, 1572, 503, + 661, 45, 662, 498, 530, 455, 36, 682, 299, 509, + 499, 402, 518, 227, 1548, 1503, 304, 41, 248, 40, + 31, 507, 1173, 296, 390, 83, 209, 523, 1320, 1563, + 1564, 61, 239, 529, -323, 347, 41, 30, 82, 83, + 41, -362, 1516, -362, -625, 45, 45, 1331, -323, 347, + 40, 31, 31, 1578, 1321, 1483, 278, 1300, 31, 452, + 82, 83, 587, 82, 83, 732, 40, 31, 1345, 301, + 775, 521, 768, -323, 40, 31, 1544, 40, 31, 278, + -917, 348, 31, 1186, 1512, 457, 67, 212, 204, 213, + 40, 31, 617, 239, 172, 348, -411, 40, 31, 949, + 594, 652, 279, 948, 75, 1221, -411, 582, 582, 740, + 741, 1567, 664, 333, 244, 600, 603, 604, 665, 31, + 946, 947, 232, 389, 609, 279, 1484, 453, 58, 40, + 31, 391, 41, 214, 1549, 1425, 215, 666, 246, 608, + 962, -189, 1299, -72, 954, 601, 1409, 347, 70, 76, + 208, 71, 264, 341, 389, 691, 534, -357, 77, 31, + 692, -72, 46, 41, 402, 389, 696, 389, 667, 45, + 902, -357, 698, 239, 699, 830, 1166, 239, 694, 41, + 209, 697, 640, 700, 1184, 1040, 1121, 41, 583, 1032, + 41, 455, 1167, 348, -552, 801, 727, 642, 869, 1549, + 685, 68, 730, 41, 643, -72, 390, 83, -411, -411, + 41, 307, 668, 238, -72, 61, 716, 820, 145, 1118, + 717, 824, 240, 239, 40, 31, 81, 525, 644, 1087, + 686, 223, 531, 457, 642, 347, 146, 390, 83, 69, + 1297, 643, 41, 457, 420, -191, 1558, 1416, 82, 83, + 420, 669, 212, 204, 213, 40, 31, 31, -323, 40, + 31, 11, 40, 31, -589, 644, 702, 273, 452, 390, + 83, -411, -411, 1506, 1509, 1172, 825, 582, 582, 541, + 147, 348, 74, 582, 901, 652, 629, 652, 1100, 148, + 81, 645, 88, 232, -327, 13, 1164, 1425, 214, 45, + 31, 215, 89, 212, 204, 213, 40, 31, 600, 314, + 1190, 1101, 31, 274, 1365, 841, 1293, 400, 1324, 1325, + 826, 1327, 1328, 1126, 590, 593, 90, -189, 1295, 457, + 82, 83, 1366, 1026, 31, 1260, 1027, 41, 601, 94, + -327, 1433, 742, 743, 744, 525, 96, 36, 620, 214, + 350, 297, 215, 45, 232, 952, 597, 1174, 79, 37, + 322, 80, 814, 582, 961, 31, 82, 83, 41, 36, + 11, 840, 41, 239, 144, 41, 525, 38, 638, 525, + 974, -832, 623, 624, 834, 590, 351, 155, 525, 352, + 525, 208, 577, 578, 353, 525, 223, 40, 31, 8, + 455, -327, -327, -327, 13, -327, -327, -327, -327, 897, + 9, 1098, -327, -327, 88, 651, 192, 10, 720, 41, + 518, 209, 354, -327, 391, 31, 400, 1070, 355, 518, + 11, 252, 177, 519, 232, 575, 576, 193, 232, 936, + 31, 253, 714, 577, 578, 12, 262, 223, 145, 254, + 194, 725, 40, 31, 1246, 287, -696, 615, 250, 1280, + -35, 31, 992, -35, 13, 590, 734, 105, -696, 227, + 937, 1068, 629, 393, 394, 938, 81, 1150, 583, -666, + -666, -666, -666, -666, 232, 256, 14, 584, -696, 1519, + 1282, 911, 257, 106, 322, 1283, 1124, 457, 1125, -335, + -335, 390, 83, 616, -696, 82, 83, 777, 995, -335, + 13, 912, 913, 45, 1012, 753, 914, 111, 112, 763, + -834, 538, 539, 764, 163, -666, 82, 83, -666, 915, + 258, 45, 998, 82, 83, 45, -323, -36, 1334, 773, + -36, 812, 45, 204, 1001, 40, 31, 293, 451, 1319, + 205, 420, 289, 40, 31, 82, 83, 1504, 31, 37, + 823, -406, 452, 525, 1072, 31, 31, -215, 878, 296, + 1011, -215, 879, 1016, 1017, -514, -514, -514, 1047, -882, + 81, 1058, 524, 294, 519, 81, 525, 583, 524, 1187, + 1536, 70, 1385, 764, 705, -666, 764, -666, 993, 383, + 384, 385, 386, 747, 748, 749, 750, 306, 583, -625, + 322, -666, -666, 195, 312, 196, 197, 888, 79, -666, + -666, 755, 208, -666, 1015, 31, 43, 1076, -514, 204, + 453, 1561, 31, 1151, 232, 454, 320, -248, 1411, 885, + 81, 313, 836, 70, 691, 318, 970, 70, 1399, 692, + 1447, 727, 209, 582, 319, 696, 1103, -795, 327, 1107, + 837, 698, 70, 699, 477, 896, 41, 694, 1007, 1008, + 697, -795, 700, 328, 1581, 1585, -795, 1582, 1586, 45, + 742, 743, 744, 70, 903, 480, 583, 1192, 1193, 45, + 36, 70, 43, 489, 455, 388, -412, -412, 70, 450, + 496, 922, -795, 446, 70, 834, 687, 395, 926, 70, + 332, 766, -412, 1059, 1060, 275, 945, 335, -412, -795, + 975, 208, -412, 1154, -363, 1157, -795, -795, 398, 70, + 980, 987, 986, -19, 963, -19, 397, 965, 428, 968, + 475, -412, 1137, 1138, 1207, 1145, 1146, 1247, 1248, 1208, + 445, 209, 479, 1474, 70, 1211, 487, 1499, 485, 302, + 43, 1213, 582, 1215, 1250, 1251, 490, 1210, 1466, 1467, + 1212, 491, 1216, 1002, 492, 45, 504, 1494, 45, 448, + 1315, 1477, 1478, 582, 841, 408, 409, 505, 498, 1063, + 1064, 510, 1012, 512, 511, 514, -412, 515, 599, 516, + 1226, 517, 533, 535, 1229, 606, 1067, 522, 518, 528, + 1241, 536, 585, 411, 595, 525, 1432, 714, 605, 614, + 610, 412, 622, 413, -412, -412, -412, 43, -412, 630, + 632, 1255, 633, 636, 641, 648, 689, 663, 649, 45, + 840, 681, 1263, 658, 683, 43, 701, 414, 1011, 415, + 13, 726, 706, 1415, 729, 752, 735, 1077, 416, 239, + 754, 582, 760, 417, 767, 771, 519, 418, 1086, 774, + 778, 780, 781, 111, 112, 784, 802, 419, 1395, 391, + 1571, 804, 808, 456, 525, 481, 525, 1105, 816, 817, + 1302, 821, 174, 829, 1333, 831, 833, 1114, 1580, 843, + 887, 842, 868, 56, 877, 889, 893, 894, 1119, 895, + 904, -896, -61, 1148, 907, 908, 920, 918, -61, -61, + 923, 925, 927, 1107, 942, -61, 924, -61, -61, 940, + 954, 957, 960, 964, 972, -61, -61, -61, 969, 978, + 1338, 43, 976, 45, 985, 989, 43, 1005, 1003, 1004, + 1014, 1018, 1155, 1019, 1056, 1159, 1347, 1163, 239, 1071, + 1069, -61, 1065, -61, 1090, 1079, 1073, 1084, 1191, 1078, + 1083, 1094, -61, -61, 1092, 1095, 1097, -61, 1096, 1104, + -61, -61, 1108, 1111, 1112, 1113, 1115, -61, -61, -61, + 714, -61, 1129, 1116, 1131, 1197, 1120, 36, 1141, 1142, + 1161, 727, 1143, 1202, 1147, 1218, 1158, 1180, 1203, 1181, + 1196, 1200, 1381, 43, 1199, 1205, 1220, 1221, 1224, 1225, + 1227, 1228, 1217, 1402, 211, 1236, 212, 204, 213, 40, + 31, 1231, 1242, 1243, 1254, 1256, 1237, 1245, 1267, 1253, + 1264, 1266, 1269, 1272, 1276, 1244, 1274, 1271, 1278, 1291, + 1417, 1418, 410, 146, 1424, 1304, 1455, 1309, -224, 43, + 45, 1151, 43, 239, -61, 1316, 1311, 456, 1318, 1314, + 1329, 1337, 214, 1326, 1342, 215, 411, 1238, 216, 1348, + 217, 1339, 1268, 1340, 412, 1349, 413, 239, 1351, 1352, + 43, 1353, 43, 43, 1355, 1288, 1289, 1290, 1361, 1359, + 1364, 1370, 43, 1371, 43, 1382, 1383, 1392, 1294, 43, + 414, 1384, 415, 1398, 1397, 1387, 1403, 1394, 1404, 212, + 232, 416, 1472, 1425, 1427, 715, 417, 1308, 1406, 1330, + 418, 1408, 43, 1414, 1430, 1437, 111, 112, 43, 1436, + 419, 1442, 41, 1439, 218, 1441, 1440, 1343, 1443, 1448, + 1330, 896, 212, 204, 213, 40, 31, 1451, 219, 220, + 1449, 1462, 1453, 1481, 1459, 1461, 221, 222, 1507, 1107, + 223, 1463, 1464, 1476, 1489, 1518, 1465, -883, 1471, 1246, + 1473, 1482, 1491, 1496, 1493, 1534, 1497, 1537, 1495, 1500, + 239, 1531, 1502, 1535, 1538, 1541, 1511, 1515, 214, 1354, + 1527, 215, 1358, 1542, 707, 1539, 1360, 1545, 239, 1546, + 45, 1547, 1552, 1368, 1555, 1556, 1562, 1565, 1557, 232, + 1560, 1568, 1376, 1377, 1570, 1574, 1575, 769, 1330, 391, + 1259, 7, 1579, 1584, 1386, 1588, 17, 596, 508, 311, + 27, 525, 994, 1133, 819, 791, 1149, 1424, 621, 806, + 896, 708, 1185, 317, 709, 43, 813, 966, 737, 1062, + 899, 900, 45, 85, 1577, 97, 334, 1344, 41, 1128, + 218, 98, 99, 746, 1013, 1074, 1424, 43, 100, 1510, + 101, 102, 1470, 1169, 219, 220, 1393, 1407, 103, 104, + 105, 1429, 221, 222, 1390, 1235, 223, 1435, 1195, 1410, + 43, 1438, 797, 710, 1450, 1275, 1374, 1175, 1444, 1532, + 1176, 169, 1296, 1057, 12, 1265, 106, 1144, 1421, 1258, + 1136, 756, 598, 1322, 232, 107, 108, 1589, 1521, 1529, + 109, 43, 1554, 13, 110, 1177, 762, 1303, 64, 331, + 111, 112, 113, 0, 114, 1356, 0, 0, 232, 0, + -641, -641, 0, 0, 0, 896, 0, 0, 0, -641, + 0, 0, 0, 0, 0, 0, -641, 0, 0, 0, + 1488, 0, -641, -641, -641, 1492, -641, 0, -641, 896, + 0, 0, 0, -641, 0, 0, 0, 0, 0, 0, + -641, 0, 0, 929, -641, 0, -641, 1508, 0, 0, + 0, 0, 0, 456, 0, 0, 0, 0, 1517, 0, + -641, -641, 1522, 1525, 0, 1526, 0, 115, 0, 0, + 0, 1533, 0, 0, -641, 0, -641, -641, 0, 0, + 0, 0, 0, 0, 43, 0, 0, 97, 0, 1543, + 0, 0, 0, 98, 1232, 0, 43, 0, 0, 0, + 100, 232, 101, 102, 0, 0, 0, 0, 0, 0, + 103, 104, 105, -641, 1559, 0, 0, 0, 0, 232, + 0, 0, 0, 0, 0, 0, 0, 0, 1522, 0, + 0, 0, 896, 0, 0, 1573, 12, 0, 106, 456, + 0, -641, 302, 0, 0, 0, 0, 107, 108, 0, + 896, 0, 109, 43, 43, 13, 110, 0, 0, 0, + 0, 1522, 111, 112, 113, 97, 114, 0, 0, 0, + 43, 98, 1332, 0, 0, 0, 0, 0, 100, 43, + 101, 102, 0, 0, 0, 0, 97, 0, 103, 104, + 105, 0, 98, 1454, 0, 0, 0, 0, 0, 100, + 0, 101, 102, 1088, 0, 0, 0, 0, 0, 103, + 104, 105, 0, 0, 12, 0, 106, 0, 0, 0, + 0, 0, 0, 0, 0, 107, 108, 0, 0, 0, + 109, 0, 0, 13, 110, 12, 0, 106, 0, 115, + 111, 112, 113, 43, 114, 0, 107, 108, 43, 0, + 43, 109, 0, 0, 13, 110, 0, 0, 0, 0, + 0, 111, 112, 113, 1279, 114, 212, 204, 213, 40, + 31, 0, 0, 0, 0, 451, 0, 43, 0, 0, + 40, 31, 0, 0, 0, 0, 0, 0, 0, 452, + 0, 0, 785, 0, 0, 0, 786, 787, 788, 212, + 204, 213, 40, 31, 0, 789, 0, 929, -607, 0, + 0, 0, 214, -611, 0, 215, 0, 115, 0, 0, + 0, 0, 0, 715, 944, 0, 212, 204, 213, 40, + 31, 0, 43, 0, 0, 0, -625, 1280, 115, 212, + 204, 213, 40, 31, 0, 214, 0, 0, 215, 0, + 0, 707, 0, 0, 0, 0, 0, 453, 0, 0, + 931, 0, 790, 0, 0, 0, 0, 1281, 1282, 0, + 0, 0, 214, 1283, 1284, 215, 212, 204, 213, 40, + 31, 0, 41, 0, 218, 214, 0, 0, 215, 0, + 0, 0, 0, 41, 0, 0, 0, 0, 219, 220, + 0, 709, 0, 0, 0, 0, 221, 222, 0, 0, + 223, 0, 0, 0, 0, 41, 0, 218, 0, 0, + 0, 455, 214, 0, 1088, 215, 0, 0, 0, 0, + 217, 219, 220, 931, 0, 0, 0, 0, 0, 221, + 222, 0, 41, 223, 218, 0, 0, 212, 204, 213, + 40, 31, 0, 0, 0, 41, 0, 218, 219, 220, + 0, 0, 0, 0, 0, 0, 221, 222, 0, 0, + 223, 219, 220, 0, 0, 0, 0, 0, 0, 221, + 222, 0, 0, 223, 212, 204, 213, 40, 31, 0, + 0, 0, 41, 214, 218, 0, 215, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 219, 220, + 0, 43, 0, 0, 0, 0, 221, 222, 0, 0, + 223, 0, 40, 31, 0, 0, 0, 0, 0, 0, + 214, 452, 0, 215, 0, 0, 0, 0, 1020, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1021, 0, + -695, 0, 0, 0, 0, 1022, 0, 0, 356, 0, + 0, 0, -695, 41, 0, 218, 1023, 0, 1024, 0, + 0, 0, 0, 0, 1391, 0, 0, 0, 0, 219, + 220, 0, -695, 1025, 0, 0, 0, 221, 222, 0, + 0, 223, 0, 43, 357, 0, 1026, 358, -695, 1027, + 41, 0, 359, 0, 0, 43, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 575, 576, 0, 0, + 0, 0, 0, 0, 577, 578, 1431, 0, 223, 0, + 360, 0, 0, 0, 0, 41, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 0, 383, + 384, 385, 386, 455, 0, 0, 0, 0, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 845, 383, 384, 385, 386, 0, 0, + 0, 0, 0, 0, 0, 846, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 847, 848, 849, 846, 0, + 0, 0, 0, 850, 0, 851, 0, 852, 847, 848, + 849, 0, 0, 0, 0, 853, 850, 0, 851, 0, + 852, 0, 0, 0, 0, 0, 0, 0, 853, 0, + 0, 854, 0, 855, 0, 0, 0, 0, 0, 0, + 0, 0, 856, 857, 854, 0, 855, 858, 859, 0, + 0, 860, 0, 0, 0, 856, 857, 0, 0, 861, + 858, 859, 0, 0, 860, 0, 0, 0, 53, 0, + 0, 0, 861, 0, 0, 0, 0, -50, 862, 0, + 0, 863, 0, -50, -50, 0, 864, 0, 0, 0, + 0, 862, -50, -50, 863, 0, 0, -50, 0, 864, + -50, 0, -50, 0, 54, 0, 0, 60, 0, 0, + 0, 0, 0, 0, 0, 0, -82, 0, 0, 0, + 0, 0, -82, 0, 0, 0, -50, -50, -50, -82, + 0, -82, -82, 0, 0, 0, -82, -50, -50, -82, + 65, -82, -50, 61, 0, -50, -50, 0, 0, -97, + 0, 0, -50, -50, -50, -97, -50, 0, 0, 0, + 0, 0, 0, 0, -97, -82, 0, -82, 0, -97, + 0, 0, -97, 501, -97, 0, -82, -82, 0, 0, + 0, -82, -205, 0, -82, -82, 0, 0, -205, -205, + 0, -82, -82, -82, 0, -82, 0, -205, -97, 0, + -97, 0, 0, 0, 0, -205, 990, -205, 0, 0, + -97, 0, 0, 0, -97, -806, 0, -97, -97, 0, + 0, -806, 0, 0, -97, -97, -97, 0, -97, 0, + -806, -205, 0, -205, 0, -806, 0, 0, -806, 0, + -806, 0, 0, -205, 0, 0, 0, -205, 0, 0, + -205, -205, 0, 0, 97, 0, 0, -205, -205, -205, + 98, -205, 0, 0, -806, 0, -806, 100, 0, 101, + 102, 0, 0, 0, 157, 0, -806, 103, 0, 105, + -806, 0, 0, -806, -806, 0, 0, 0, 0, 0, + -806, -806, -806, 97, -806, 0, 0, 0, 0, 98, + 430, 0, 0, 158, 0, 106, 0, 0, 101, 102, + 0, 0, 0, 0, 107, 108, 103, 0, 105, 109, + 0, 0, 13, 110, 0, 0, 97, 0, 0, 111, + 112, 113, 98, 114, 0, 0, 0, 0, 0, 0, + 0, 101, 12, 0, 106, 0, 178, 0, 0, 103, + 0, 105, 0, 107, 108, 0, 0, 0, 109, 97, + 0, 13, 110, 0, 0, 98, 690, 0, 111, 112, + 113, 0, 114, 0, 101, 12, 0, 106, 0, 0, + 0, 0, 103, 0, 105, 0, 0, 108, 0, 0, + 0, 109, 97, 0, 13, 110, 0, 0, 98, 0, + 0, 111, 112, 113, 0, 114, 0, 101, 12, 0, + 106, 0, 1132, 0, 0, 103, 0, 105, 0, 0, + 108, 0, 0, 0, 109, 97, 0, 13, 110, 0, + 0, 98, 1206, 0, 111, 112, 113, 0, 114, 0, + 101, 12, 0, 106, 0, 0, 0, 0, 103, 0, + 105, 0, 0, 108, 0, 0, 0, 109, 0, 0, + 13, 110, 0, 0, 0, 0, 0, 111, 112, 113, + 0, 114, 0, 0, 12, 0, 106, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, + 109, 0, 0, 13, 110, 0, 0, 0, 0, 0, + 111, 112, 113, 0, 114, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 0, 0, 0, + 0, 0, 0, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, -918, -918, -918, -918, -918, -918, -918, + -918, -918, -918, -918, -918, 380, 381, 382, 0, 383, + 384, 385, 386 +}; + +static const yytype_int16 yycheck[] = +{ + 8, 9, 10, 11, 12, 44, 14, 57, 156, 66, + 62, 83, 394, 270, 66, 81, 62, 81, 11, 59, + 66, 59, 62, 430, 62, 641, 66, 622, 66, 37, + 38, 62, 66, 62, 258, 66, 389, 66, 62, 105, + 218, 219, 220, 221, 222, 389, 62, 83, 780, 196, + 703, 954, 520, 454, 957, 5, 83, 454, 431, 67, + 68, 1206, 70, 815, 647, 13, 758, 906, 1164, 1284, + 619, 488, 764, 81, 454, 454, 7, 85, 62, 87, + 62, 604, 90, 1, 7, 1242, 575, 576, 96, 97, + 98, 1, 100, 101, 7, 103, 104, 105, 106, 107, + 108, 109, 110, 81, 1200, 113, 6, 7, 101, 59, + 103, 9, 260, 7, 107, 1337, 394, 110, 37, 97, + 5, 81, 391, 37, 53, 67, 1271, 105, 7, 328, + 37, 79, 42, 390, 27, 37, 144, 145, 9, 28, + 148, 1164, 36, 1545, 876, 28, 1291, 155, 40, 157, + 158, 223, 28, 535, 6, 7, 28, 36, 28, 37, + 1172, 6, 7, 1548, 28, 1353, 107, 67, 55, 177, + 178, 78, 1574, 0, 6, 7, 1398, 62, 130, 7, + 73, 52, 60, 37, 42, 0, 194, 195, 196, 657, + 35, 1287, 152, 201, 6, 7, 1581, 454, 150, 147, + 78, 817, 13, 42, 261, 27, 147, 149, 36, 261, + 388, 389, 1, 6, 7, 261, 61, 6, 7, 119, + 769, 261, 151, 261, 42, 494, 157, 261, 294, 147, + 261, 632, 261, 152, 242, 632, 159, 1459, 152, 762, + 1397, 154, 152, 1400, 252, 253, 254, 446, 146, 147, + 152, 73, 632, 632, 262, 1443, 745, 535, 152, 151, + 153, 161, 270, 152, 1287, 152, 1278, 119, 79, 152, + 63, 688, 83, 152, 152, 824, 152, 261, 477, 261, + 152, 480, 152, 1505, 1307, 293, 294, 119, 152, 297, + 489, 102, 491, 151, 333, 147, 304, 496, 306, 307, + 293, 251, 156, 83, 1519, 1462, 118, 119, 88, 6, + 7, 304, 1044, 152, 146, 147, 294, 325, 1221, 1541, + 1542, 37, 394, 331, 156, 27, 119, 5, 146, 147, + 119, 153, 1477, 155, 62, 146, 147, 1230, 156, 27, + 6, 7, 7, 1565, 30, 81, 11, 1186, 7, 15, + 146, 147, 391, 146, 147, 533, 6, 7, 1251, 1, + 88, 147, 1, 156, 6, 7, 1511, 6, 7, 11, + 156, 73, 7, 1065, 30, 632, 53, 3, 4, 5, + 6, 7, 448, 455, 62, 73, 36, 6, 7, 790, + 398, 107, 57, 790, 25, 81, 46, 575, 576, 577, + 578, 1546, 8, 214, 63, 413, 414, 415, 14, 7, + 790, 790, 223, 63, 422, 57, 152, 83, 1, 6, + 7, 232, 119, 49, 1520, 81, 52, 33, 63, 422, + 803, 147, 1184, 16, 34, 413, 1329, 27, 149, 70, + 448, 152, 450, 223, 63, 502, 148, 149, 79, 7, + 502, 34, 400, 119, 404, 63, 502, 63, 64, 270, + 148, 149, 502, 535, 502, 664, 66, 539, 502, 119, + 448, 502, 480, 502, 1057, 876, 63, 119, 831, 876, + 119, 147, 82, 73, 60, 633, 525, 24, 687, 1585, + 498, 53, 531, 119, 31, 78, 146, 147, 148, 149, + 119, 59, 108, 539, 87, 37, 514, 655, 16, 977, + 518, 658, 539, 585, 6, 7, 156, 328, 55, 11, + 498, 147, 333, 780, 24, 27, 34, 146, 147, 42, + 1183, 31, 119, 790, 758, 67, 30, 63, 146, 147, + 764, 147, 3, 4, 5, 6, 7, 7, 156, 6, + 7, 44, 6, 7, 130, 55, 506, 11, 15, 146, + 147, 148, 149, 1466, 1467, 22, 21, 745, 746, 349, + 78, 73, 42, 751, 752, 107, 152, 107, 37, 87, + 156, 118, 147, 394, 27, 78, 130, 81, 49, 400, + 7, 52, 42, 3, 4, 5, 6, 7, 606, 59, + 1068, 60, 7, 57, 40, 669, 150, 100, 1224, 1225, + 65, 1227, 1228, 30, 394, 395, 30, 147, 118, 876, + 146, 147, 58, 80, 7, 30, 83, 119, 606, 60, + 73, 1363, 134, 135, 136, 446, 30, 645, 449, 49, + 12, 24, 52, 454, 455, 792, 30, 1044, 149, 1, + 658, 152, 645, 831, 802, 7, 146, 147, 119, 667, + 44, 669, 119, 735, 30, 119, 477, 19, 479, 480, + 818, 161, 452, 453, 667, 455, 48, 30, 489, 51, + 491, 689, 143, 144, 56, 496, 147, 6, 7, 13, + 147, 134, 135, 136, 78, 138, 139, 140, 141, 735, + 24, 147, 145, 146, 147, 485, 42, 31, 519, 119, + 156, 689, 84, 156, 525, 7, 100, 916, 90, 156, + 44, 13, 30, 160, 535, 135, 136, 42, 539, 74, + 7, 23, 512, 143, 144, 59, 13, 147, 16, 31, + 49, 521, 6, 7, 154, 1, 34, 11, 30, 74, + 149, 7, 30, 152, 78, 535, 536, 35, 46, 539, + 105, 908, 152, 148, 149, 110, 156, 1, 1121, 3, + 4, 5, 6, 7, 585, 152, 100, 1121, 66, 104, + 105, 20, 152, 61, 792, 110, 985, 1044, 987, 146, + 147, 146, 147, 57, 82, 146, 147, 1392, 838, 156, + 78, 40, 41, 614, 868, 585, 45, 85, 86, 148, + 161, 148, 149, 152, 838, 49, 146, 147, 52, 58, + 147, 632, 838, 146, 147, 636, 156, 149, 1235, 152, + 152, 642, 643, 4, 842, 6, 7, 79, 1, 1221, + 11, 1065, 1, 6, 7, 146, 147, 1463, 7, 1, + 1, 152, 15, 664, 920, 7, 7, 148, 30, 152, + 868, 152, 34, 871, 872, 28, 29, 30, 876, 150, + 156, 879, 325, 35, 160, 156, 687, 1230, 331, 148, + 1496, 149, 148, 152, 152, 119, 152, 121, 838, 138, + 139, 140, 141, 138, 139, 140, 141, 30, 1251, 62, + 908, 135, 136, 156, 47, 158, 159, 718, 149, 143, + 144, 152, 920, 147, 6, 7, 13, 925, 81, 4, + 83, 1537, 7, 157, 735, 88, 49, 153, 1335, 709, + 156, 152, 1, 149, 991, 42, 152, 149, 1320, 991, + 152, 980, 920, 1121, 42, 991, 954, 16, 156, 957, + 19, 991, 149, 991, 151, 735, 119, 991, 148, 149, + 991, 30, 991, 151, 149, 149, 35, 152, 152, 780, + 134, 135, 136, 149, 754, 151, 1329, 20, 21, 790, + 988, 149, 79, 151, 147, 145, 20, 21, 149, 30, + 151, 771, 61, 151, 149, 988, 151, 153, 778, 149, + 148, 151, 36, 148, 149, 102, 786, 148, 42, 78, + 821, 1019, 46, 1021, 153, 1023, 85, 86, 100, 149, + 831, 151, 833, 149, 804, 151, 148, 807, 152, 809, + 42, 65, 148, 149, 1091, 148, 149, 148, 149, 1091, + 152, 1019, 151, 1425, 149, 1091, 42, 1454, 151, 146, + 147, 1091, 1230, 1091, 148, 149, 152, 1091, 28, 29, + 1091, 42, 1091, 843, 152, 876, 152, 1449, 879, 53, + 1218, 28, 29, 1251, 1138, 253, 254, 30, 151, 890, + 891, 152, 1146, 147, 152, 19, 120, 152, 148, 152, + 1098, 152, 145, 149, 1102, 35, 907, 156, 156, 156, + 1108, 153, 147, 25, 152, 916, 1363, 887, 79, 42, + 152, 33, 30, 35, 148, 149, 150, 214, 152, 130, + 151, 1129, 37, 149, 47, 152, 30, 152, 60, 940, + 1138, 152, 1140, 49, 147, 232, 34, 59, 1146, 61, + 78, 156, 152, 1342, 120, 145, 155, 927, 70, 1221, + 153, 1329, 42, 75, 152, 42, 160, 79, 938, 152, + 66, 68, 38, 85, 86, 62, 60, 89, 1316, 980, + 1552, 150, 42, 270, 985, 37, 987, 957, 30, 47, + 1188, 67, 37, 152, 1234, 147, 53, 967, 1570, 150, + 153, 76, 147, 1, 152, 161, 152, 148, 978, 148, + 152, 147, 10, 1014, 67, 49, 149, 152, 16, 17, + 151, 62, 69, 1221, 42, 23, 152, 25, 26, 147, + 34, 39, 152, 152, 34, 33, 34, 35, 152, 150, + 1238, 328, 152, 1044, 53, 30, 333, 154, 152, 152, + 67, 152, 1022, 30, 34, 1025, 1254, 1027, 1320, 152, + 67, 59, 147, 61, 42, 130, 152, 81, 1069, 152, + 152, 36, 70, 71, 147, 36, 60, 75, 37, 36, + 78, 79, 30, 152, 152, 152, 42, 85, 86, 87, + 1060, 89, 108, 152, 30, 9, 152, 1295, 152, 148, + 54, 1330, 152, 105, 152, 37, 152, 151, 148, 152, + 1080, 149, 1295, 400, 1084, 148, 1, 81, 47, 47, + 47, 47, 1092, 1321, 1, 36, 3, 4, 5, 6, + 7, 151, 30, 152, 64, 108, 1106, 152, 30, 152, + 152, 152, 81, 81, 77, 1115, 152, 72, 68, 46, + 1348, 1349, 1, 34, 1352, 150, 1396, 28, 7, 446, + 1161, 157, 449, 1425, 162, 60, 149, 454, 30, 148, + 40, 36, 49, 148, 53, 52, 25, 36, 55, 19, + 57, 152, 1152, 152, 33, 76, 35, 1449, 133, 22, + 477, 42, 479, 480, 152, 1165, 1166, 1167, 34, 152, + 152, 152, 489, 81, 491, 152, 30, 30, 1178, 496, + 59, 152, 61, 153, 36, 152, 30, 152, 60, 3, + 1221, 70, 1420, 81, 30, 512, 75, 1197, 152, 1230, + 79, 152, 519, 152, 152, 152, 85, 86, 525, 105, + 89, 30, 119, 152, 121, 152, 81, 1248, 42, 34, + 1251, 1221, 3, 4, 5, 6, 7, 37, 135, 136, + 81, 36, 152, 130, 153, 152, 143, 144, 1466, 1467, + 147, 47, 152, 39, 46, 30, 152, 150, 152, 154, + 152, 150, 81, 47, 152, 81, 60, 47, 152, 152, + 1552, 1489, 152, 149, 30, 36, 153, 152, 49, 1269, + 152, 52, 1272, 36, 55, 152, 1276, 22, 1570, 72, + 1311, 39, 81, 1283, 81, 152, 18, 36, 152, 1320, + 152, 152, 1292, 1293, 81, 22, 152, 614, 1329, 1330, + 1138, 3, 152, 152, 1304, 152, 5, 400, 306, 157, + 5, 1342, 838, 991, 653, 632, 1019, 1545, 450, 636, + 1320, 102, 1060, 178, 105, 642, 643, 808, 539, 887, + 746, 751, 1363, 44, 1562, 10, 214, 1248, 119, 988, + 121, 16, 17, 579, 869, 923, 1574, 664, 23, 1470, + 25, 26, 1413, 1037, 135, 136, 1314, 1327, 33, 34, + 35, 1361, 143, 144, 1309, 1104, 147, 1367, 1079, 1334, + 687, 1371, 632, 154, 1392, 1161, 1289, 1044, 1378, 1490, + 1044, 62, 1182, 879, 59, 1146, 61, 1008, 1351, 1132, + 992, 597, 404, 1223, 1425, 70, 71, 1585, 1481, 1488, + 75, 718, 1525, 78, 79, 1044, 606, 1191, 26, 201, + 85, 86, 87, -1, 89, 1, -1, -1, 1449, -1, + 6, 7, -1, -1, -1, 1425, -1, -1, -1, 15, + -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, + 1440, -1, 28, 29, 30, 1445, 32, -1, 34, 1449, + -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, + 46, -1, -1, 780, 50, -1, 52, 1467, -1, -1, + -1, -1, -1, 790, -1, -1, -1, -1, 1478, -1, + 66, 67, 1482, 1483, -1, 1485, -1, 162, -1, -1, + -1, 1491, -1, -1, 80, -1, 82, 83, -1, -1, + -1, -1, -1, -1, 821, -1, -1, 10, -1, 1509, + -1, -1, -1, 16, 17, -1, 833, -1, -1, -1, + 23, 1552, 25, 26, -1, -1, -1, -1, -1, -1, + 33, 34, 35, 119, 1534, -1, -1, -1, -1, 1570, + -1, -1, -1, -1, -1, -1, -1, -1, 1548, -1, + -1, -1, 1552, -1, -1, 1555, 59, -1, 61, 876, + -1, 147, 879, -1, -1, -1, -1, 70, 71, -1, + 1570, -1, 75, 890, 891, 78, 79, -1, -1, -1, + -1, 1581, 85, 86, 87, 10, 89, -1, -1, -1, + 907, 16, 17, -1, -1, -1, -1, -1, 23, 916, + 25, 26, -1, -1, -1, -1, 10, -1, 33, 34, + 35, -1, 16, 17, -1, -1, -1, -1, -1, 23, + -1, 25, 26, 940, -1, -1, -1, -1, -1, 33, + 34, 35, -1, -1, 59, -1, 61, -1, -1, -1, + -1, -1, -1, -1, -1, 70, 71, -1, -1, -1, + 75, -1, -1, 78, 79, 59, -1, 61, -1, 162, + 85, 86, 87, 980, 89, -1, 70, 71, 985, -1, + 987, 75, -1, -1, 78, 79, -1, -1, -1, -1, + -1, 85, 86, 87, 1, 89, 3, 4, 5, 6, + 7, -1, -1, -1, -1, 1, -1, 1014, -1, -1, + 6, 7, -1, -1, -1, -1, -1, -1, -1, 15, + -1, -1, 18, -1, -1, -1, 22, 23, 24, 3, + 4, 5, 6, 7, -1, 31, -1, 1044, 34, -1, + -1, -1, 49, 39, -1, 52, -1, 162, -1, -1, + -1, -1, -1, 1060, 1, -1, 3, 4, 5, 6, + 7, -1, 1069, -1, -1, -1, 62, 74, 162, 3, + 4, 5, 6, 7, -1, 49, -1, -1, 52, -1, + -1, 55, -1, -1, -1, -1, -1, 83, -1, -1, + 97, -1, 88, -1, -1, -1, -1, 104, 105, -1, + -1, -1, 49, 110, 111, 52, 3, 4, 5, 6, + 7, -1, 119, -1, 121, 49, -1, -1, 52, -1, + -1, -1, -1, 119, -1, -1, -1, -1, 135, 136, + -1, 105, -1, -1, -1, -1, 143, 144, -1, -1, + 147, -1, -1, -1, -1, 119, -1, 121, -1, -1, + -1, 147, 49, -1, 1161, 52, -1, -1, -1, -1, + 57, 135, 136, 97, -1, -1, -1, -1, -1, 143, + 144, -1, 119, 147, 121, -1, -1, 3, 4, 5, + 6, 7, -1, -1, -1, 119, -1, 121, 135, 136, + -1, -1, -1, -1, -1, -1, 143, 144, -1, -1, + 147, 135, 136, -1, -1, -1, -1, -1, -1, 143, + 144, -1, -1, 147, 3, 4, 5, 6, 7, -1, + -1, -1, 119, 49, 121, -1, 52, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 135, 136, + -1, 1248, -1, -1, -1, -1, 143, 144, -1, -1, + 147, -1, 6, 7, -1, -1, -1, -1, -1, -1, + 49, 15, -1, 52, -1, -1, -1, -1, 22, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, + 34, -1, -1, -1, -1, 39, -1, -1, 12, -1, + -1, -1, 46, 119, -1, 121, 50, -1, 52, -1, + -1, -1, -1, -1, 1311, -1, -1, -1, -1, 135, + 136, -1, 66, 67, -1, -1, -1, 143, 144, -1, + -1, 147, -1, 1330, 48, -1, 80, 51, 82, 83, + 119, -1, 56, -1, -1, 1342, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 135, 136, -1, -1, + -1, -1, -1, -1, 143, 144, 1363, -1, 147, -1, + 84, -1, -1, -1, -1, 119, 90, 91, 92, 93, + 94, 95, 96, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, -1, 138, + 139, 140, 141, 147, -1, -1, -1, -1, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 1, 138, 139, 140, 141, -1, -1, + -1, -1, -1, -1, -1, 13, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 23, 24, 25, 13, -1, + -1, -1, -1, 31, -1, 33, -1, 35, 23, 24, + 25, -1, -1, -1, -1, 43, 31, -1, 33, -1, + 35, -1, -1, -1, -1, -1, -1, -1, 43, -1, + -1, 59, -1, 61, -1, -1, -1, -1, -1, -1, + -1, -1, 70, 71, 59, -1, 61, 75, 76, -1, + -1, 79, -1, -1, -1, 70, 71, -1, -1, 87, + 75, 76, -1, -1, 79, -1, -1, -1, 1, -1, + -1, -1, 87, -1, -1, -1, -1, 10, 106, -1, + -1, 109, -1, 16, 17, -1, 114, -1, -1, -1, + -1, 106, 25, 26, 109, -1, -1, 30, -1, 114, + 33, -1, 35, -1, 37, -1, -1, 1, -1, -1, + -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, + -1, -1, 16, -1, -1, -1, 59, 60, 61, 23, + -1, 25, 26, -1, -1, -1, 30, 70, 71, 33, + 1, 35, 75, 37, -1, 78, 79, -1, -1, 10, + -1, -1, 85, 86, 87, 16, 89, -1, -1, -1, + -1, -1, -1, -1, 25, 59, -1, 61, -1, 30, + -1, -1, 33, 1, 35, -1, 70, 71, -1, -1, + -1, 75, 10, -1, 78, 79, -1, -1, 16, 17, + -1, 85, 86, 87, -1, 89, -1, 25, 59, -1, + 61, -1, -1, -1, -1, 33, 1, 35, -1, -1, + 71, -1, -1, -1, 75, 10, -1, 78, 79, -1, + -1, 16, -1, -1, 85, 86, 87, -1, 89, -1, + 25, 59, -1, 61, -1, 30, -1, -1, 33, -1, + 35, -1, -1, 71, -1, -1, -1, 75, -1, -1, + 78, 79, -1, -1, 10, -1, -1, 85, 86, 87, + 16, 89, -1, -1, 59, -1, 61, 23, -1, 25, + 26, -1, -1, -1, 30, -1, 71, 33, -1, 35, + 75, -1, -1, 78, 79, -1, -1, -1, -1, -1, + 85, 86, 87, 10, 89, -1, -1, -1, -1, 16, + 17, -1, -1, 59, -1, 61, -1, -1, 25, 26, + -1, -1, -1, -1, 70, 71, 33, -1, 35, 75, + -1, -1, 78, 79, -1, -1, 10, -1, -1, 85, + 86, 87, 16, 89, -1, -1, -1, -1, -1, -1, + -1, 25, 59, -1, 61, -1, 30, -1, -1, 33, + -1, 35, -1, 70, 71, -1, -1, -1, 75, 10, + -1, 78, 79, -1, -1, 16, 17, -1, 85, 86, + 87, -1, 89, -1, 25, 59, -1, 61, -1, -1, + -1, -1, 33, -1, 35, -1, -1, 71, -1, -1, + -1, 75, 10, -1, 78, 79, -1, -1, 16, -1, + -1, 85, 86, 87, -1, 89, -1, 25, 59, -1, + 61, -1, 30, -1, -1, 33, -1, 35, -1, -1, + 71, -1, -1, -1, 75, 10, -1, 78, 79, -1, + -1, 16, 17, -1, 85, 86, 87, -1, 89, -1, + 25, 59, -1, 61, -1, -1, -1, -1, 33, -1, + 35, -1, -1, 71, -1, -1, -1, 75, -1, -1, + 78, 79, -1, -1, -1, -1, -1, 85, 86, 87, + -1, 89, -1, -1, 59, -1, 61, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, + 75, -1, -1, 78, 79, -1, -1, -1, -1, -1, + 85, 86, 87, -1, 89, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, -1, -1, -1, + -1, -1, -1, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, -1, 138, + 139, 140, 141 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint16 yystos[] = +{ + 0, 164, 165, 166, 174, 175, 0, 174, 13, 24, + 31, 44, 59, 78, 100, 176, 177, 178, 179, 181, + 182, 191, 192, 196, 198, 202, 203, 208, 209, 507, + 512, 7, 491, 491, 491, 173, 491, 1, 19, 491, + 6, 119, 180, 268, 269, 270, 271, 273, 275, 491, + 493, 551, 491, 1, 37, 189, 1, 194, 1, 200, + 1, 37, 205, 207, 549, 1, 211, 53, 53, 42, + 149, 152, 491, 491, 42, 25, 70, 79, 552, 149, + 152, 156, 146, 147, 251, 274, 251, 274, 147, 42, + 30, 460, 1, 190, 60, 187, 30, 10, 16, 17, + 23, 25, 26, 33, 34, 35, 61, 70, 71, 75, + 79, 85, 86, 87, 89, 162, 179, 195, 202, 208, + 213, 214, 216, 223, 224, 225, 235, 287, 311, 324, + 326, 329, 333, 336, 339, 343, 344, 462, 475, 485, + 486, 512, 513, 560, 30, 16, 34, 78, 87, 179, + 201, 222, 344, 465, 485, 30, 550, 30, 59, 202, + 206, 214, 218, 225, 326, 329, 339, 343, 344, 462, + 485, 486, 512, 513, 37, 152, 548, 30, 30, 212, + 213, 214, 219, 235, 329, 343, 344, 485, 486, 491, + 491, 491, 42, 42, 49, 156, 158, 159, 553, 554, + 555, 556, 559, 271, 4, 11, 167, 272, 491, 493, + 495, 1, 3, 5, 49, 52, 55, 57, 121, 135, + 136, 143, 144, 147, 168, 172, 255, 258, 260, 261, + 267, 268, 270, 271, 276, 277, 278, 279, 286, 314, + 321, 492, 494, 495, 63, 491, 63, 491, 258, 270, + 30, 508, 13, 23, 31, 491, 152, 152, 147, 239, + 188, 185, 13, 193, 491, 334, 491, 493, 491, 359, + 360, 491, 173, 11, 57, 268, 340, 173, 11, 57, + 173, 477, 478, 167, 491, 491, 173, 1, 491, 1, + 491, 173, 491, 79, 35, 42, 152, 24, 199, 491, + 491, 1, 268, 470, 118, 491, 30, 59, 204, 491, + 239, 204, 47, 152, 59, 210, 491, 210, 42, 42, + 49, 373, 491, 491, 557, 558, 373, 156, 151, 159, + 491, 558, 148, 270, 278, 148, 267, 267, 267, 267, + 267, 258, 282, 283, 286, 321, 252, 27, 73, 323, + 12, 48, 51, 56, 84, 90, 12, 48, 51, 56, + 84, 90, 91, 92, 93, 94, 95, 96, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 138, 139, 140, 141, 259, 145, 63, + 146, 270, 316, 148, 149, 153, 491, 148, 100, 509, + 100, 178, 179, 506, 510, 511, 183, 491, 183, 183, + 1, 25, 33, 35, 59, 61, 70, 75, 79, 89, + 223, 242, 246, 331, 540, 541, 542, 547, 152, 239, + 17, 184, 186, 213, 214, 215, 235, 326, 329, 339, + 343, 344, 485, 486, 491, 152, 151, 335, 53, 151, + 30, 1, 15, 83, 88, 147, 268, 276, 361, 362, + 363, 377, 381, 382, 383, 384, 392, 396, 402, 408, + 409, 412, 425, 449, 491, 42, 461, 151, 341, 151, + 151, 37, 78, 476, 481, 151, 228, 42, 226, 151, + 152, 42, 152, 1, 42, 288, 151, 42, 151, 173, + 167, 1, 237, 491, 152, 30, 468, 173, 199, 491, + 152, 152, 147, 248, 19, 152, 152, 152, 156, 160, + 514, 147, 156, 491, 557, 270, 312, 314, 156, 491, + 251, 270, 280, 145, 148, 149, 153, 284, 148, 149, + 253, 258, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 267, 135, 136, 143, 144, 262, + 264, 266, 267, 275, 322, 147, 276, 251, 315, 316, + 258, 282, 283, 258, 491, 152, 180, 30, 511, 148, + 491, 493, 543, 491, 491, 79, 35, 240, 173, 491, + 152, 359, 460, 312, 42, 11, 57, 167, 345, 346, + 270, 193, 30, 258, 258, 384, 396, 425, 449, 152, + 130, 410, 151, 37, 464, 312, 149, 342, 270, 312, + 491, 47, 24, 31, 55, 118, 479, 482, 152, 60, + 480, 258, 107, 229, 230, 232, 233, 549, 49, 233, + 234, 312, 312, 152, 8, 14, 33, 64, 108, 147, + 289, 290, 293, 299, 303, 305, 309, 310, 316, 496, + 501, 152, 312, 147, 490, 491, 493, 151, 227, 30, + 17, 213, 214, 220, 235, 238, 329, 343, 344, 485, + 486, 34, 179, 466, 469, 152, 152, 55, 102, 105, + 154, 254, 256, 257, 258, 268, 491, 491, 67, 161, + 270, 515, 516, 152, 548, 258, 156, 251, 313, 120, + 251, 281, 267, 282, 258, 155, 285, 255, 264, 264, + 267, 267, 134, 135, 136, 263, 323, 138, 139, 140, + 141, 265, 145, 258, 153, 152, 509, 107, 147, 545, + 42, 545, 543, 148, 152, 241, 151, 152, 1, 268, + 347, 42, 514, 152, 152, 88, 411, 412, 66, 427, + 68, 38, 393, 395, 62, 18, 22, 23, 24, 31, + 88, 268, 376, 384, 396, 403, 405, 409, 425, 449, + 518, 239, 60, 463, 150, 325, 268, 9, 42, 55, + 337, 248, 270, 268, 173, 481, 30, 47, 231, 230, + 239, 67, 548, 1, 373, 21, 65, 328, 332, 152, + 312, 147, 317, 53, 173, 308, 1, 19, 497, 169, + 491, 495, 76, 150, 330, 1, 13, 23, 24, 25, + 31, 33, 35, 43, 59, 61, 70, 71, 75, 76, + 79, 87, 106, 109, 114, 349, 487, 489, 147, 312, + 233, 35, 61, 167, 236, 420, 421, 152, 30, 34, + 465, 467, 471, 472, 197, 258, 249, 153, 270, 161, + 67, 149, 517, 152, 148, 148, 258, 286, 264, 262, + 266, 267, 148, 258, 152, 546, 242, 67, 49, 545, + 242, 20, 40, 41, 45, 58, 245, 247, 152, 514, + 149, 348, 258, 151, 152, 62, 258, 69, 426, 268, + 392, 97, 258, 385, 386, 389, 74, 105, 110, 394, + 147, 416, 42, 372, 1, 258, 384, 396, 425, 449, + 378, 379, 373, 374, 34, 355, 357, 39, 350, 351, + 152, 239, 460, 258, 152, 258, 247, 338, 258, 152, + 152, 480, 34, 248, 239, 270, 152, 514, 150, 327, + 270, 302, 312, 320, 322, 53, 270, 151, 306, 30, + 1, 502, 30, 179, 224, 344, 498, 500, 513, 291, + 297, 491, 258, 152, 152, 154, 488, 148, 149, 483, + 484, 491, 495, 330, 67, 6, 491, 491, 152, 30, + 22, 32, 39, 50, 52, 67, 80, 83, 392, 422, + 423, 424, 425, 430, 434, 437, 441, 444, 445, 448, + 449, 450, 452, 453, 454, 455, 456, 491, 522, 523, + 525, 526, 527, 531, 534, 536, 34, 477, 491, 148, + 149, 250, 257, 270, 270, 147, 240, 270, 373, 67, + 312, 152, 167, 152, 349, 413, 491, 258, 152, 130, + 9, 52, 390, 152, 81, 387, 258, 11, 268, 417, + 42, 414, 147, 371, 36, 36, 37, 60, 147, 375, + 37, 60, 454, 491, 36, 258, 454, 491, 30, 404, + 407, 152, 152, 152, 258, 42, 152, 152, 548, 258, + 152, 63, 300, 318, 312, 312, 30, 307, 308, 108, + 499, 30, 30, 220, 503, 505, 499, 148, 149, 292, + 295, 152, 148, 152, 487, 148, 149, 152, 270, 236, + 1, 157, 428, 436, 491, 258, 447, 491, 152, 258, + 451, 54, 459, 258, 130, 150, 66, 82, 356, 357, + 358, 443, 22, 392, 425, 452, 456, 536, 81, 152, + 151, 152, 78, 474, 481, 254, 242, 148, 42, 544, + 548, 270, 20, 21, 244, 393, 258, 9, 391, 258, + 149, 388, 105, 148, 418, 148, 17, 213, 214, 221, + 235, 329, 343, 344, 415, 485, 486, 258, 37, 369, + 1, 81, 519, 520, 47, 47, 491, 47, 47, 491, + 40, 151, 17, 216, 217, 400, 36, 258, 36, 152, + 406, 491, 30, 152, 258, 152, 154, 148, 149, 301, + 148, 149, 319, 152, 64, 491, 108, 504, 504, 169, + 30, 296, 298, 491, 152, 483, 152, 30, 258, 81, + 435, 72, 81, 446, 152, 417, 77, 458, 68, 1, + 74, 104, 105, 110, 111, 386, 389, 533, 258, 258, + 258, 46, 428, 150, 258, 118, 479, 465, 473, 480, + 240, 154, 491, 544, 150, 243, 397, 398, 258, 28, + 389, 149, 419, 420, 148, 239, 60, 367, 30, 283, + 454, 30, 519, 521, 248, 248, 148, 248, 248, 40, + 270, 320, 17, 216, 359, 400, 401, 36, 491, 152, + 152, 406, 53, 270, 302, 320, 304, 491, 19, 76, + 294, 133, 22, 42, 258, 152, 1, 420, 258, 152, + 258, 34, 457, 428, 152, 40, 58, 532, 258, 532, + 152, 81, 386, 389, 426, 420, 258, 258, 28, 152, + 535, 173, 152, 30, 152, 148, 258, 152, 386, 399, + 385, 268, 30, 372, 152, 239, 365, 36, 153, 283, + 36, 152, 491, 30, 60, 380, 152, 380, 152, 320, + 404, 359, 353, 401, 152, 312, 63, 491, 491, 170, + 171, 494, 157, 429, 491, 81, 433, 30, 439, 258, + 152, 268, 276, 392, 539, 258, 105, 152, 258, 152, + 81, 152, 30, 42, 258, 28, 152, 152, 34, 81, + 411, 37, 370, 152, 17, 216, 366, 406, 401, 153, + 406, 152, 36, 47, 152, 152, 28, 29, 352, 354, + 353, 152, 491, 152, 283, 431, 39, 28, 29, 438, + 440, 130, 150, 81, 152, 28, 152, 524, 258, 46, + 433, 81, 258, 152, 283, 152, 47, 60, 368, 359, + 152, 401, 152, 406, 248, 36, 454, 491, 258, 454, + 352, 153, 30, 432, 433, 152, 420, 258, 30, 104, + 528, 533, 258, 537, 538, 258, 258, 152, 152, 524, + 442, 491, 431, 258, 81, 149, 248, 47, 30, 152, + 401, 36, 36, 258, 420, 22, 72, 39, 532, 389, + 529, 530, 81, 152, 535, 81, 152, 152, 30, 258, + 152, 248, 18, 401, 401, 36, 429, 420, 152, 537, + 81, 283, 152, 258, 22, 152, 364, 491, 401, 152, + 283, 149, 152, 429, 152, 149, 152, 537, 152, 529 +}; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +/* 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); \ + yytoken = YYTRANSLATE (yychar); \ + YYPOPSTACK (1); \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (YYID (0)) + + +#define YYTERROR 1 +#define YYERRCODE 256 + + +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (YYID (N)) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (YYID (0)) +#endif + + +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +#endif + + +/* YYLEX -- calling `yylex' with the right arguments. */ + +#ifdef YYLEX_PARAM +# define YYLEX yylex (YYLEX_PARAM) +#else +# define YYLEX yylex () +#endif + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (YYID (0)) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); +# endif + switch (yytype) + { + default: + break; + } +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +#else +static void +yy_stack_print (bottom, top) + yytype_int16 *bottom; + yytype_int16 *top; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (; 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 (YYID (0)) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_reduce_print (YYSTYPE *yyvsp, int yyrule) +#else +static void +yy_reduce_print (yyvsp, yyrule) + YYSTYPE *yyvsp; + int yyrule; +#endif +{ + int yynrhs = yyr2[yyrule]; + int yyi; + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + fprintf (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); + fprintf (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule); \ +} while (YYID (0)) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, 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 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static YYSIZE_T +yystrlen (const char *yystr) +#else +static YYSIZE_T +yystrlen (yystr) + const char *yystr; +#endif +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif + +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static char * +yystpcpy (char *yydest, const char *yysrc) +#else +static char * +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +#endif +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into YYRESULT an error message about the unexpected token + YYCHAR while in state YYSTATE. Return the number of bytes copied, + including the terminating null byte. If YYRESULT is null, do not + copy anything; just return the number of bytes that would be + copied. As a special case, return 0 if an ordinary "syntax error" + message will do. Return YYSIZE_MAXIMUM if overflow occurs during + size calculation. */ +static YYSIZE_T +yysyntax_error (char *yyresult, int yystate, int yychar) +{ + int yyn = yypact[yystate]; + + if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) + return 0; + else + { + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; + +# if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +# endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; + + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } + + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + + if (yysize_overflow) + return YYSIZE_MAXIMUM; + + if (yyresult) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yyresult; + int yyi = 0; + while ((*yyp = *yyf) != '\0') + { + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } + } + } + return yysize; + } +} +#endif /* YYERROR_VERBOSE */ + + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) +#else +static void +yydestruct (yymsg, yytype, yyvaluep) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; +#endif +{ + YYUSE (yyvaluep); + + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + switch (yytype) + { + + default: + break; + } +} + + +/* Prevent warnings from -Wmissing-prototypes. */ + +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus +int yyparse (void); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ + + + +/* The look-ahead symbol. */ +int yychar; + +/* The semantic value of the look-ahead symbol. */ +YYSTYPE yylval; + +/* Number of syntax errors so far. */ +int yynerrs; + + + +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) +#else +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +#endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void) +#else +int +yyparse () + +#endif +#endif +{ + + int yystate; + int yyn; + int yyresult; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + /* Look-ahead token as an internal (translated) token number. */ + int yytoken = 0; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + + /* Three stacks and their tools: + `yyss': related to states, + `yyvs': related to semantic values, + `yyls': related to locations. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss = yyssa; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp; + + + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + YYSIZE_T yystacksize = YYINITDEPTH; + + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ + + yyssp = yyss; + yyvsp = yyvs; + + + /* User initialization code. */ + +{ yydebug=0; } +/* Line 1078 of yacc.c. */ + + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + + /* Each stack pointer address is followed by the size of the + 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 (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); + +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + + /* Do appropriate processing given the current state. Read a + look-ahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to look-ahead token. */ + yyn = yypact[yystate]; + if (yyn == YYPACT_NINF) + goto yydefault; + + /* Not known => get a look-ahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = YYLEX; + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* 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]; + if (yyn <= 0) + { + if (yyn == 0 || yyn == YYTABLE_NINF) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + if (yyn == YYFINAL) + YYACCEPT; + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the look-ahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + yystate = yyn; + *++yyvsp = yylval; + + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. + + 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]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 6: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 7: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 8: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 9: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 10: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 11: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 12: + + { (yyval.qstr)="null"; ;} + break; + + case 13: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 14: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 15: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 16: + + { (yyval.qstr)=""; ;} + break; + + case 17: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 18: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 19: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 20: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+","+(yyvsp[(3) - (3)].qstr);} + break; + + case 33: + + { + if ( parse_sec == 0) + { + addVhdlType((yyvsp[(2) - (3)].qstr),getParsedLine(t_LIBRARY),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,(yyvsp[(2) - (3)].qstr).data(),"_library_"); + } + (yyval.qstr)="library "+(yyvsp[(2) - (3)].qstr); + ;} + break; + + case 34: + + { + QStringList ql1=QStringList::split(",",(yyvsp[(2) - (3)].qstr),FALSE); + for (uint j=0;j<ql1.count();j++) + { + QStringList ql=QStringList::split(".",ql1[j],FALSE); + QCString it=ql[1].utf8(); + if ( parse_sec == 0 ) + { + addVhdlType(it,getParsedLine(t_USE),Entry::VARIABLE_SEC,VhdlDocGen::USE,it.data(),"_use_"); + } + } + (yyval.qstr)="use "+(yyvsp[(2) - (3)].qstr); + ;} + break; + + case 35: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 36: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+","+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 39: + + { + (yyval.qstr)=(yyvsp[(2) - (3)].qstr); + lastEntity=current; + lastCompound=0; + /*int k=*/ getParsedLine(t_ENTITY); + addVhdlType((yyval.qstr),getParsedLine(t_ENTITY),Entry::CLASS_SEC,VhdlDocGen::ENTITY,0,0,Public); + //fprintf(stderr,"\n entiy %s : at line %d",$$.data(),s_str.yyLineNr); + ;} + break; + + case 47: + + { (yyval.qstr)=""; ;} + break; + + case 48: + + { currP=VhdlDocGen::PORT; ;} + break; + + case 49: + + { currP=0; ;} + break; + + case 50: + + { (yyval.qstr)=""; ;} + break; + + case 51: + + { currP=VhdlDocGen::GENERIC;parse_sec=GEN_SEC;} + break; + + case 52: + + { currP=0;parse_sec=0; ;} + break; + + case 53: + + { currP=0; ;} + break; + + case 56: + + { + (yyval.qstr)=(yyvsp[(4) - (5)].qstr); + (yyval.qstr)+="::"; + (yyval.qstr)+=(yyvsp[(2) - (5)].qstr); + pushLabel((yyvsp[(2) - (5)].qstr)); + lastCompound=current; + addVhdlType((yyval.qstr),getParsedLine(t_ARCHITECTURE),Entry::CLASS_SEC,VhdlDocGen::ARCHITECTURE,0,0,Private); + ;} + break; + + case 61: + + { (yyval.qstr)=""; ;} + break; + + case 64: + + { genLabels.resize(0); ;} + break; + + case 65: + + { genLabels.resize(0); ;} + break; + + case 66: + + { + confName=""; + ;} + break; + + case 67: + + { + confName=(yyvsp[(2) - (5)].qstr)+"::"+(yyvsp[(4) - (5)].qstr); + addVhdlType((yyvsp[(2) - (5)].qstr).data(),getParsedLine(t_CONFIGURATION),Entry::VARIABLE_SEC,VhdlDocGen::CONFIG,"configuration",(yyvsp[(4) - (5)].qstr).data()); + ;} + break; + + case 68: + + { (yyval.qstr)=""; ;} + break; + + case 69: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 70: + + { (yyval.qstr)="configuration"; ;} + break; + + case 71: + + { (yyval.qstr)=(yyvsp[(2) - (2)].qstr); ;} + break; + + case 72: + + { (yyval.qstr)=""; ;} + break; + + case 73: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 74: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 77: + + { + lastCompound=current; + + + Entry *clone=new Entry(*current); + clone->section=Entry::NAMESPACE_SEC; + clone->spec=VhdlDocGen::PACKAGE; + clone->name=(yyvsp[(2) - (3)].qstr); + int line=s_str.iLine; + clone->startLine=line; + clone->bodyLine=line; + + clone->protection=Package; + current_root->addSubEntry(clone); + + + addVhdlType((yyvsp[(2) - (3)].qstr),line,Entry::CLASS_SEC,VhdlDocGen::PACKAGE,0,0,Package); + //fprintf(stderr,"\n entiy %s : at line %d",$$.data(),s_str.yyLineNr); + ;} + break; + + case 79: + + { lastCompound=0; ;} + break; + + case 80: + + { lastCompound=0; ;} + break; + + case 81: + + { lastCompound=0; ;} + break; + + case 92: + + { + (yyval.qstr)=(yyvsp[(3) - (4)].qstr); + lastCompound=current; + (yyval.qstr).prepend("_"); + addVhdlType((yyval.qstr),getParsedLine(t_PACKAGE) ,Entry::CLASS_SEC,VhdlDocGen::PACKAGE_BODY,0,0,Protected); + ;} + break; + + case 93: + + { (yyval.qstr)="";lastCompound=0; ;} + break; + + case 94: + + { lastCompound=0; ;} + break; + + case 95: + + { lastCompound=0; ;} + break; + + case 96: + + { lastCompound=0; ;} + break; + + case 97: + + { (yyval.qstr)=""; ;} + break; + + case 172: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 173: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 174: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 175: + + { (yyval.qstr)=(yyvsp[(3) - (4)].qstr); ;} + break; + + case 176: + + { (yyval.qstr)="pure"; ;} + break; + + case 177: + + { (yyval.qstr)="impure"; ;} + break; + + case 178: + + { currP=0; ;} + break; + + case 179: + + { currP=VhdlDocGen::PROCEDURE; createFunction((yyvsp[(2) - (2)].qstr),currP,0); ;} + break; + + case 180: + + { newEntry(); ;} + break; + + case 181: + + { + currP=VhdlDocGen::FUNCTION; + createFunction((yyvsp[(1) - (3)].qstr),currP,(yyvsp[(3) - (3)].qstr).data()); + ;} + break; + + case 182: + + { + tempEntry=current; + current->type=(yyvsp[(7) - (7)].qstr); + newEntry(); + ;} + break; + + case 183: + + { + currP=VhdlDocGen::FUNCTION; + createFunction(0,currP,(yyvsp[(2) - (2)].qstr).data()); + ;} + break; + + case 184: + + { + tempEntry=current; + current->type=(yyvsp[(6) - (6)].qstr); + newEntry(); + ;} + break; + + case 187: + + { param_sec=PARAM_SEC; ;} + break; + + case 188: + + { param_sec= 0; ;} + break; + + case 189: + + { param_sec=PARAM_SEC; ;} + break; + + case 190: + + { param_sec= 0; ;} + break; + + case 196: + + { + currP=0; + ;} + break; + + case 197: + + { + currP=0; + ;} + break; + + case 208: + + { (yyval.qstr)=""; ;} + break; + + case 209: + + { (yyval.qstr)=""; ;} + break; + + case 213: + + { + // adding generic : [ package foo is new bar] + if (parse_sec==GEN_SEC) + { + QCString n=current->name; + addVhdlType(n.data(),getParsedLine(t_PACKAGE),Entry::VARIABLE_SEC,VhdlDocGen::GENERIC,(yyvsp[(1) - (1)].qstr).data(),0); + } + ;} + break; + + case 214: + + { + if (parse_sec==GEN_SEC) + { + int a=getParsedLine(t_FUNCTION); + int b=getParsedLine(t_PROCEDURE); + + if (a>b) b=a; + + QCString n=current->name; + addVhdlType(n.data(),b,Entry::VARIABLE_SEC,VhdlDocGen::GENERIC,(yyvsp[(1) - (1)].qstr).data(),0); + } + ;} + break; + + case 215: + + { + if (parse_sec==GEN_SEC) + { + QCString v= (yyvsp[(1) - (2)].qstr); + addVhdlType((yyvsp[(2) - (2)].qstr),s_str.iLine,Entry::VARIABLE_SEC,currP,(yyvsp[(1) - (2)].qstr).data(),0); + } + ;} + break; + + case 216: + + { + QCString b=(yyvsp[(2) - (7)].qstr); + (yyval.qstr)=(yyvsp[(2) - (7)].qstr)+":"+(yyvsp[(4) - (7)].qstr)+(yyvsp[(5) - (7)].qstr)+(yyvsp[(6) - (7)].qstr)+(yyvsp[(7) - (7)].qstr); + if (currP!=VhdlDocGen::COMPONENT) + { + if (currP==VhdlDocGen::FUNCTION || currP==VhdlDocGen::PROCEDURE) + { + addProto((yyvsp[(1) - (7)].qstr).data(),(yyvsp[(2) - (7)].qstr).data(),(yyvsp[(4) - (7)].qstr).data(),(yyvsp[(5) - (7)].qstr).data(),(yyvsp[(6) - (7)].qstr).data(),(yyvsp[(7) - (7)].qstr).data()); + } + else + { + QCString i=(yyvsp[(5) - (7)].qstr)+(yyvsp[(6) - (7)].qstr)+(yyvsp[(7) - (7)].qstr); + if (currP==VhdlDocGen::GENERIC) + addVhdlType((yyvsp[(2) - (7)].qstr),s_str.iLine,Entry::VARIABLE_SEC,currP,i.data(),(yyvsp[(4) - (7)].qstr).data()); + else if(parse_sec != GEN_SEC) + addVhdlType((yyvsp[(2) - (7)].qstr),s_str.iLine,Entry::VARIABLE_SEC,currP,i.data(),(yyvsp[(4) - (7)].qstr).data()); + } + // fprintf(stderr,"\n\n <<port %s >>\n",$$.data()); + } // if component + ;} + break; + + case 217: + + { (yyval.qstr)=""; ;} + break; + + case 218: + + { (yyval.qstr)=":="+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 219: + + { (yyval.qstr)=""; ;} + break; + + case 220: + + { (yyval.qstr)="buffer"; ;} + break; + + case 221: + + { (yyval.qstr)="bus"; ;} + break; + + case 222: + + { (yyval.qstr)=""; ;} + break; + + case 223: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 224: + + { (yyval.qstr)=""; ;} + break; + + case 225: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 226: + + { (yyval.qstr)="in"; ;} + break; + + case 227: + + { (yyval.qstr)="out"; ;} + break; + + case 228: + + { (yyval.qstr)="inout"; ;} + break; + + case 229: + + { (yyval.qstr)="buffer"; ;} + break; + + case 230: + + { (yyval.qstr)="link"; ;} + break; + + case 231: + + { (yyval.qstr)="("+(yyvsp[(2) - (4)].qstr)+")"; ;} + break; + + case 232: + + { (yyval.qstr)=""; ;} + break; + + case 233: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 234: + + { (yyval.qstr)=", "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 235: + + { + QCString str="( "+(yyvsp[(2) - (4)].qstr); + str.append(" )"); + (yyval.qstr)=str; + ;} + break; + + case 236: + + { (yyval.qstr)=""; ;} + break; + + case 237: + + { (yyval.qstr)=" ( open ) "; ;} + break; + + case 238: + + { (yyval.qstr)=""; ;} + break; + + case 239: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+"?? "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 240: + + { (yyval.qstr)=","+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 241: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+"=>"+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 242: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 243: + + { (yyval.qstr)="<>"; ;} + break; + + case 244: + + { (yyval.qstr)="default"; ;} + break; + + case 245: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 247: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr) ; ;} + break; + + case 248: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 249: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 250: + + { (yyval.qstr)="open"; ;} + break; + + case 251: + + { (yyval.qstr)="inertial"; ;} + break; + + case 252: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 253: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 273: + + { (yyval.qstr)=" ?? "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 274: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 275: + + { (yyval.qstr)="+"+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 276: + + { (yyval.qstr)="-"+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 277: + + { (yyval.qstr)="abs"+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 278: + + { (yyval.qstr)="not "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 279: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" ** "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 280: + + { (yyval.qstr)=(yyvsp[(2) - (4)].qstr)+" ** "+(yyvsp[(4) - (4)].qstr); ;} + break; + + case 281: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" mod "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 282: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" rem "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 283: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" & "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 284: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" * "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 285: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" + "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 286: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" - "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 287: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" <= "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 288: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" >= "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 289: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" < "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 290: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" > "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 291: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" == "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 292: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" != "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 293: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" /"+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 294: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" ?/="+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 295: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" ?="+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 296: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" ?<"+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 297: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" ?>"+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 298: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" ?<="+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 299: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" ?>="+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 300: + + { (yyval.qstr) = "-"+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 301: + + { (yyval.qstr) = "+"+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 302: + + { (yyval.qstr) = (yyvsp[(1) - (1)].qstr); ;} + break; + + case 303: + + { (yyval.qstr) = (yyvsp[(1) - (3)].qstr)+" "+(yyvsp[(2) - (3)].qstr)+" "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 304: + + { (yyval.qstr) = "&"; ;} + break; + + case 305: + + { (yyval.qstr) = "-"; ;} + break; + + case 306: + + { (yyval.qstr) = "+"; ;} + break; + + case 307: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 308: + + { (yyval.qstr) = (yyvsp[(1) - (3)].qstr)+" "+(yyvsp[(2) - (3)].qstr)+" "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 309: + + { (yyval.qstr) = "*"; ;} + break; + + case 310: + + { (yyval.qstr) = "rem"; ;} + break; + + case 311: + + { (yyval.qstr) = "mod"; ;} + break; + + case 312: + + { (yyval.qstr) = "/"; ;} + break; + + case 313: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 314: + + { (yyval.qstr)="abs "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 315: + + { (yyval.qstr)="not "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 316: + + { (yyval.qstr) = (yyvsp[(1) - (3)].qstr)+" ** "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 317: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 318: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 319: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 320: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 321: + + { (yyval.qstr)=""; ;} + break; + + case 322: + + { (yyval.qstr)="("+(yyvsp[(2) - (3)].qstr)+")"; ;} + break; + + case 323: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 324: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 325: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 326: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 327: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 328: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 329: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 330: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 331: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+"."+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 332: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 333: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 334: + + { (yyval.qstr)="all"; ;} + break; + + case 335: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 336: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 337: + + { (yyval.qstr)="'"; ;} + break; + + case 338: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+"' "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 340: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" '"+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 341: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+"' range "; ;} + break; + + case 342: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+"' range "; ;} + break; + + case 343: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" ) "; ;} + break; + + case 344: + + { (yyval.qstr)="( "+(yyvsp[(2) - (5)].qstr)+ "=>"+(yyvsp[(4) - (5)].qstr)+" ) "; ;} + break; + + case 345: + + { (yyval.qstr)=" ( "+(yyvsp[(2) - (4)].qstr)+","+(yyvsp[(4) - (4)].qstr); ;} + break; + + case 346: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+","+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 347: + + { (yyval.qstr)=(yyvsp[(1) - (5)].qstr)+"'("+(yyvsp[(4) - (5)].qstr)+" ) "; ;} + break; + + case 348: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+"'"+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 356: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+"=> "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 357: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 358: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 359: + + { (yyval.qstr)=""; ;} + break; + + case 360: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 361: + + { (yyval.qstr)=" | "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 362: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 363: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 364: + + { (yyval.qstr)="others"; ;} + break; + + case 365: + + { (yyval.qstr)=""; ;} + break; + + case 366: + + { + addVhdlType((yyvsp[(2) - (4)].qstr),getParsedLine(t_TYPE),Entry::VARIABLE_SEC,VhdlDocGen::TYPE,0,(yyvsp[(3) - (4)].qstr).data()); + ;} + break; + + case 367: + + { (yyval.qstr)=""; ;} + break; + + case 368: + + { (yyval.qstr)=""; ;} + break; + + case 369: + + { (yyval.qstr)="is "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 370: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 371: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 372: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 373: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 374: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 375: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 376: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 377: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 378: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 379: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 380: + + { (yyval.qstr)="( "+(yyvsp[(2) - (4)].qstr)+" "+(yyvsp[(3) - (4)].qstr)+" )"; ;} + break; + + case 381: + + { (yyval.qstr)=""; ;} + break; + + case 382: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 383: + + { (yyval.qstr)=","+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 384: + + { + (yyval.qstr)=(yyvsp[(1) - (6)].qstr); + current->args=(yyvsp[(3) - (6)].qstr)+"#"+(yyvsp[(4) - (6)].qstr); + current->args.prepend("units"); + current->spec=VhdlDocGen::UNITS; + ;} + break; + + case 387: + + { (yyval.qstr)=""; ;} + break; + + case 388: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 389: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr)+"#"; ;} + break; + + case 390: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr); ;} + break; + + case 391: + + { (yyval.qstr)=(yyvsp[(1) - (4)].qstr)+"="+(yyvsp[(3) - (4)].qstr) ;} + break; + + case 392: + + { + QCString sr1=" array ( "+(yyvsp[(3) - (7)].qstr)+" "+(yyvsp[(4) - (7)].qstr); + QCString sr2=" ) of "+(yyvsp[(7) - (7)].qstr); + (yyval.qstr)=sr1+sr2; + ;} + break; + + case 393: + + { (yyval.qstr)=""; ;} + break; + + case 394: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr) ;} + break; + + case 395: + + { (yyval.qstr)=", "+(yyvsp[(2) - (2)].qstr) ;} + break; + + case 396: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" range<> "; ;} + break; + + case 397: + + { (yyval.qstr)=" array "+(yyvsp[(2) - (4)].qstr)+" of "+(yyvsp[(4) - (4)].qstr); ;} + break; + + case 398: + + { (yyval.qstr)=""; ;} + break; + + case 399: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 400: + + { + QRegExp reg("[\\s]"); + QCString oo=(yyvsp[(2) - (6)].qstr)+" "+(yyvsp[(3) - (6)].qstr); + current->spec=VhdlDocGen::RECORD; + current->args=oo; + current->args.replace(reg,"%"); + current->args.prepend("record"); + (yyval.qstr)=(yyvsp[(2) - (6)].qstr)+" "+(yyvsp[(3) - (6)].qstr); + ;} + break; + + case 401: + + { (yyval.qstr)=""; ;} + break; + + case 402: + + { + (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); + ;} + break; + + case 403: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 404: + + { (yyval.qstr)=(yyvsp[(1) - (4)].qstr)+":"+(yyvsp[(3) - (4)].qstr)+"#"; ;} + break; + + case 405: + + { (yyval.qstr)="access "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 406: + + { (yyval.qstr)="file of "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 407: + + { + addVhdlType((yyvsp[(2) - (5)].qstr),getParsedLine(t_SUBTYPE),Entry::VARIABLE_SEC,VhdlDocGen::SUBTYPE,0,(yyvsp[(4) - (5)].qstr).data()); + ;} + break; + + case 408: + + { (yyval.qstr)=""; ;} + break; + + case 409: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 410: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 411: + + { (yyval.qstr)=""; ;} + break; + + case 412: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 413: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" "+(yyvsp[(2) - (3)].qstr)+" "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 414: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 415: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" "+(yyvsp[(2) - (3)].qstr)+" "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 416: + + { (yyval.qstr)=""; ;} + break; + + case 417: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 418: + + { (yyval.qstr)="range "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 419: + + { (yyval.qstr)="("+(yyvsp[(2) - (4)].qstr)+" "+(yyvsp[(3) - (4)].qstr)+")"; ;} + break; + + case 420: + + { (yyval.qstr)=""; ;} + break; + + case 421: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 422: + + { (yyval.qstr)=","+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 423: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 424: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 425: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 426: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" "+(yyvsp[(2) - (3)].qstr)+" "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 427: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 428: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" "+(yyvsp[(2) - (3)].qstr)+" "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 429: + + { (yyval.qstr)=" to "; ;} + break; + + case 430: + + { (yyval.qstr)=" downto "; ;} + break; + + case 431: + + { + QCString it=(yyvsp[(4) - (6)].qstr)+" "+(yyvsp[(5) - (6)].qstr); + // fprintf(stderr,"\n currP %d \n",currP); + addVhdlType((yyvsp[(2) - (6)].qstr),getParsedLine(t_CONSTANT),Entry::VARIABLE_SEC,VhdlDocGen::CONSTANT,0,it.data()); + ;} + break; + + case 432: + + { (yyval.qstr)=""; ;} + break; + + case 433: + + { (yyval.qstr)=":="+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 434: + + { + QCString s=(yyvsp[(4) - (7)].qstr)+" "+(yyvsp[(6) - (7)].qstr); + addVhdlType((yyvsp[(2) - (7)].qstr),getParsedLine(t_SIGNAL),Entry::VARIABLE_SEC,VhdlDocGen::SIGNAL,0,s.data()); + ;} + break; + + case 435: + + { (yyval.qstr)=""; ;} + break; + + case 436: + + { (yyval.qstr)=":="+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 437: + + { (yyval.qstr)=""; ;} + break; + + case 438: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 439: + + { + (yyval.qstr)=(yyvsp[(2) - (6)].qstr)+":"+(yyvsp[(4) - (6)].qstr)+" "+(yyvsp[(5) - (6)].qstr); + ;} + break; + + case 440: + + { + (yyval.qstr)=(yyvsp[(5) - (7)].qstr)+" "+(yyvsp[(6) - (7)].qstr); + addVhdlType((yyvsp[(3) - (7)].qstr),getParsedLine(t_VARIABLE),Entry::VARIABLE_SEC,VhdlDocGen::SHAREDVARIABLE,0,(yyval.qstr).data()); + ;} + break; + + case 441: + + { (yyval.qstr)=""; ;} + break; + + case 442: + + { (yyval.qstr)=":="+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 443: + + { (yyval.qstr)="constant"; ;} + break; + + case 444: + + { (yyval.qstr)="signal"; ;} + break; + + case 445: + + { (yyval.qstr)="variable"; ;} + break; + + case 446: + + { (yyval.qstr)="shared"; ;} + break; + + case 447: + + { (yyval.qstr)="file"; ;} + break; + + case 448: + + { (yyval.qstr)="type"; ;} + break; + + case 449: + + { (yyval.qstr)="bus"; ;} + break; + + case 450: + + { (yyval.qstr)="register"; ;} + break; + + case 451: + + { + QCString s=(yyvsp[(3) - (7)].qstr)+" is "+(yyvsp[(5) - (7)].qstr)+(yyvsp[(6) - (7)].qstr); + addVhdlType((yyvsp[(2) - (7)].qstr),getParsedLine(t_ALIAS),Entry::VARIABLE_SEC,VhdlDocGen::ALIAS,0,s.data()); + ;} + break; + + case 452: + + { (yyval.qstr)=""; ;} + break; + + case 453: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 454: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 455: + + { (yyval.qstr)=""; ;} + break; + + case 456: + + { (yyval.qstr)=","+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 457: + + { + addVhdlType((yyvsp[(2) - (8)].qstr),getParsedLine(t_FILE),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,(yyvsp[(4) - (8)].qstr).data()); + ;} + break; + + case 458: + + { + QCString s=(yyvsp[(4) - (6)].qstr)+" "+(yyvsp[(5) - (6)].qstr); + addVhdlType((yyvsp[(2) - (6)].qstr),getParsedLine(t_FILE),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,s.data()); + ;} + break; + + case 459: + + { (yyval.qstr)=""; ;} + break; + + case 460: + + { (yyval.qstr)="open "+(yyvsp[(2) - (4)].qstr)+" is "+s_str.qstr; ;} + break; + + case 461: + + { (yyval.qstr)=""; ;} + break; + + case 462: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 470: + + { + addVhdlType((yyvsp[(2) - (5)].qstr),getParsedLine(t_ATTRIBUTE),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,(yyvsp[(4) - (5)].qstr).data()); + ;} + break; + + case 471: + + { + QCString oo=(yyvsp[(4) - (7)].qstr)+" is "+(yyvsp[(6) - (7)].qstr); + addVhdlType((yyvsp[(2) - (7)].qstr),getParsedLine(t_ATTRIBUTE),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,oo.data()); + ;} + break; + + case 472: + + { (yyval.qstr)=(yyvsp[(1) - (4)].qstr)+(yyvsp[(2) - (4)].qstr)+":"+(yyvsp[(4) - (4)].qstr);;} + break; + + case 473: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 474: + + { (yyval.qstr)="others"; ;} + break; + + case 475: + + { (yyval.qstr)="all"; ;} + break; + + case 476: + + { (yyval.qstr)=""; ;} + break; + + case 477: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 478: + + { (yyval.qstr)=","+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 479: + + { (yyval.qstr)="entity"; ;} + break; + + case 480: + + { (yyval.qstr)="architecture"; ;} + break; + + case 481: + + { (yyval.qstr)="package"; ;} + break; + + case 482: + + { (yyval.qstr)="configuration"; ;} + break; + + case 483: + + { (yyval.qstr)="component"; ;} + break; + + case 484: + + { (yyval.qstr)="label"; ;} + break; + + case 485: + + { (yyval.qstr)="type"; ;} + break; + + case 486: + + { (yyval.qstr)="subtype"; ;} + break; + + case 487: + + { (yyval.qstr)="procedure"; ;} + break; + + case 488: + + { (yyval.qstr)="function"; ;} + break; + + case 489: + + { (yyval.qstr)="signal"; ;} + break; + + case 490: + + { (yyval.qstr)="variable"; ;} + break; + + case 491: + + { (yyval.qstr)="constant"; ;} + break; + + case 492: + + { (yyval.qstr)="group"; ;} + break; + + case 493: + + { (yyval.qstr)="file"; ;} + break; + + case 494: + + { (yyval.qstr)="units"; ;} + break; + + case 495: + + { (yyval.qstr)="literal"; ;} + break; + + case 496: + + { (yyval.qstr)="sequence"; ;} + break; + + case 497: + + { (yyval.qstr)="property"; ;} + break; + + case 542: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 543: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+"."+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 544: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 545: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 546: + + { (yyval.qstr)="("+(yyvsp[(2) - (3)].qstr)+")"; ;} + break; + + case 547: + + { (yyval.qstr)="configurátion";yyLineNr=s_str.iLine; ;} + break; + + case 548: + + { (yyval.qstr)="entity";yyLineNr=s_str.iLine; ;} + break; + + case 549: + + { (yyval.qstr)="component";yyLineNr=s_str.iLine; ;} + break; + + case 550: + + { yyLineNr=s_str.iLine; ;} + break; + + case 551: + + { + addCompInst((yyvsp[(1) - (9)].qstr).data(),(yyvsp[(3) - (9)].qstr).data(),0,yyLineNr); + ;} + break; + + case 552: + + { yyLineNr=s_str.iLine; ;} + break; + + case 553: + + { + addCompInst((yyvsp[(1) - (8)].qstr).data(),(yyvsp[(3) - (8)].qstr).data(),0,yyLineNr); + ;} + break; + + case 554: + + { + addCompInst((yyvsp[(1) - (8)].qstr).data(),(yyvsp[(4) - (8)].qstr).data(),(yyvsp[(3) - (8)].qstr).data(),yyLineNr); + ;} + break; + + case 555: + + { + addCompInst((yyvsp[(1) - (9)].qstr).data(),(yyvsp[(4) - (9)].qstr).data(),(yyvsp[(3) - (9)].qstr).data(),yyLineNr); + ;} + break; + + case 607: + + { pushLabel((yyvsp[(1) - (2)].qstr)); ;} + break; + + case 609: + + { popLabel(); ;} + break; + + case 610: + + { popLabel(); ;} + break; + + case 611: + + { pushLabel((yyvsp[(1) - (2)].qstr)); ;} + break; + + case 614: + + { (yyval.qstr)=""; ;} + break; + + case 615: + + { (yyval.qstr)=(yyvsp[(2) - (2)].qstr); ;} + break; + + case 618: + + { + current->name=(yyvsp[(1) - (3)].qstr); + current->endBodyLine=s_str.yyLineNr; + newEntry(); + ;} + break; + + case 619: + + { + current->name=VhdlDocGen::getProcessNumber(); + current->endBodyLine=s_str.yyLineNr; + newEntry(); + ;} + break; + + case 620: + + { currP=VhdlDocGen::PROCESS; ;} + break; + + case 621: + + { currP=0; + createFunction(currName,VhdlDocGen::PROCESS,(yyvsp[(4) - (10)].qstr).data()); + ;} + break; + + case 622: + + { currP=0; ;} + break; + + case 625: + + { (yyval.qstr)=""; ;} + break; + + case 626: + + { (yyval.qstr)="postponed"; ;} + break; + + case 627: + + { (yyval.qstr)=""; ;} + break; + + case 628: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 633: + + { (yyval.qstr)=""; ;} + break; + + case 634: + + { (yyval.qstr)="all"; ;} + break; + + case 635: + + { (yyval.qstr)=(yyvsp[(2) - (3)].qstr); ;} + break; + + case 636: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 637: + + { (yyval.qstr)=""; ;} + break; + + case 638: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 639: + + { (yyval.qstr)=","+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 727: + + { lastEntity=0; lastCompound=0; genLabels.resize(0); ;} + break; + + case 729: + + { lastCompound=0; genLabels.resize(0); ;} + break; + + case 730: + + { lastEntity=0; genLabels.resize(0); ;} + break; + + case 731: + + { lastEntity=0; lastCompound=0; genLabels.resize(0); ;} + break; + + case 732: + + { currP=VhdlDocGen::COMPONENT; ;} + break; + + case 733: + + { currP=VhdlDocGen::COMPONENT; ;} + break; + + case 734: + + { + addVhdlType((yyvsp[(2) - (7)].qstr),getParsedLine(t_COMPONENT),Entry::VARIABLE_SEC,VhdlDocGen::COMPONENT,0,0); + currP=0; + ;} + break; + + case 735: + + { (yyval.qstr)=""; ;} + break; + + case 736: + + { (yyval.qstr)=(yyvsp[(2) - (3)].qstr); ;} + break; + + case 737: + + { (yyval.qstr)=""; ;} + break; + + case 738: + + { (yyval.qstr)=(yyvsp[(2) - (3)].qstr); ;} + break; + + case 739: + + { + popConfig(); + ;} + break; + + case 740: + + { (yyval.qstr)=""; ;} + break; + + case 741: + + { (yyval.qstr)=""; ;} + break; + + case 742: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "; ;} + break; + + case 743: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 744: + + { (yyval.qstr)=""; ;} + break; + + case 745: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr); ;} + break; + + case 746: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 747: + + { + (yyval.qstr)=(yyvsp[(1) - (1)].qstr); + + if (levelCounter==0) + addConfigureNode((yyvsp[(1) - (1)].qstr).data(),NULL,TRUE,FALSE); + else + addConfigureNode((yyvsp[(1) - (1)].qstr).data(),NULL,FALSE,FALSE); + ;} + break; + + case 748: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 749: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 750: + + { + (yyval.qstr)=(yyvsp[(2) - (7)].qstr)+" "+(yyvsp[(3) - (7)].qstr)+" "+(yyvsp[(4) - (7)].qstr); + popConfig(); + ;} + break; + + case 751: + + { (yyval.qstr)=""; ;} + break; + + case 752: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 753: + + { (yyval.qstr)=""; ;} + break; + + case 754: + + { (yyval.qstr)=""; ;} + break; + + case 755: + + { (yyval.qstr)=""; ;} + break; + + case 756: + + { + addConfigureNode(compSpec.data(),(yyvsp[(2) - (3)].qstr).data(),FALSE,FALSE); + ;} + break; + + case 757: + + { + addConfigureNode((yyvsp[(2) - (4)].qstr).data(),(yyvsp[(3) - (4)].qstr).data(),TRUE,FALSE,TRUE);currNode->confVhdl=lastCompound->name; + ;} + break; + + case 758: + + { + addConfigureNode((yyvsp[(2) - (7)].qstr).data(),(yyvsp[(3) - (7)].qstr).data(),TRUE,FALSE,TRUE);currNode->confVhdl=lastCompound->name; + ;} + break; + + case 759: + + { (yyval.qstr)=(yyvsp[(2) - (2)].qstr); ;} + break; + + case 760: + + { (yyval.qstr)=""; ;} + break; + + case 761: + + { (yyval.qstr)=""; ;} + break; + + case 762: + + { + (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+":"+(yyvsp[(3) - (3)].qstr); + compSpec=(yyval.qstr); + ;} + break; + + case 763: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 764: + + { (yyval.qstr)="all"; ;} + break; + + case 765: + + { (yyval.qstr)="others"; ;} + break; + + case 766: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr); ;} + break; + + case 771: + + { (yyval.qstr)="entity "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 772: + + { (yyval.qstr)="configuration "+ (yyvsp[(2) - (2)].qstr); ;} + break; + + case 773: + + { (yyval.qstr)="open "; ;} + break; + + case 774: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 775: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 776: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 777: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+","+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 778: + + { + // $$=$2+":"+$4+$6; + (yyval.qstr)="("+(yyvsp[(4) - (8)].qstr)+(yyvsp[(6) - (8)].qstr)+")"; + addVhdlType((yyvsp[(2) - (8)].qstr),getParsedLine(t_GROUP),Entry::VARIABLE_SEC,VhdlDocGen::GROUP,(yyval.qstr).data(),0); + ;} + break; + + case 779: + + { + (yyval.qstr)=(yyvsp[(2) - (7)].qstr)+":"+(yyvsp[(5) - (7)].qstr); + addVhdlType((yyvsp[(2) - (7)].qstr),getParsedLine(t_GROUP),Entry::VARIABLE_SEC,VhdlDocGen::GROUP,(yyvsp[(5) - (7)].qstr).data(),0); + ;} + break; + + case 780: + + { (yyval.qstr)=""; ;} + break; + + case 782: + + { (yyval.qstr)=""; ;} + break; + + case 783: + + { (yyval.qstr)="<>"; ;} + break; + + case 784: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 785: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+","+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 786: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 787: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 788: + + { + (yyval.qstr)=s_str.qstr; + ;} + break; + + case 789: + + { + (yyval.qstr)=s_str.qstr; + ;} + break; + + case 790: + + { + (yyval.qstr)=s_str.qstr; + ;} + break; + + case 791: + + { + (yyval.qstr)=s_str.qstr; + ;} + break; + + case 792: + + { + (yyval.qstr)=s_str.qstr; + ;} + break; + + case 793: + + { (yyval.qstr)=""; ;} + break; + + case 794: + + { (yyval.qstr)=""; ;} + break; + + case 804: + + { (yyval.qstr)=""; ;} + break; + + case 805: + + { (yyval.qstr)=""; ;} + break; + + case 812: + + { (yyval.qstr)="context "+(yyvsp[(2) - (3)].qstr); ;} + break; + + case 813: + + { parse_sec=CONTEXT_SEC; ;} + break; + + case 814: + + { + parse_sec=0; + QCString v=(yyvsp[(5) - (8)].qstr); + addVhdlType((yyvsp[(2) - (8)].qstr),getParsedLine(t_LIBRARY),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,"context",(yyvsp[(5) - (8)].qstr).data()); + ;} + break; + + case 815: + + { + addVhdlType((yyvsp[(2) - (6)].qstr),getParsedLine(t_LIBRARY),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,"context",0); + ;} + break; + + case 818: + + { (yyval.qstr) = (yyvsp[(1) - (1)].qstr); ;} + break; + + case 819: + + { (yyval.qstr) = (yyvsp[(1) - (2)].qstr)+"#"+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 820: + + { (yyval.qstr) = (yyvsp[(1) - (1)].qstr); ;} + break; + + case 821: + + { (yyval.qstr) = (yyvsp[(1) - (1)].qstr); ;} + break; + + case 822: + + { (yyval.qstr) = (yyvsp[(1) - (1)].qstr); ;} + break; + + case 823: + + { + (yyval.qstr)=" is new "+(yyvsp[(5) - (7)].qstr)+(yyvsp[(6) - (7)].qstr); + //Entry * pp=lastCompound; + //Entry * pps=lastEntity ; + //assert(false); + addVhdlType((yyvsp[(2) - (7)].qstr),getParsedLine(t_PACKAGE),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"package",(yyval.qstr).data()); + ;} + break; + + case 824: + + { + (yyval.qstr)=" is new "+(yyvsp[(5) - (8)].qstr)+(yyvsp[(6) - (8)].qstr); + addVhdlType((yyvsp[(2) - (8)].qstr),getParsedLine(t_PACKAGE),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"package",(yyval.qstr).data()); + ;} + break; + + case 825: + + { (yyval.qstr)=""; ;} + break; + + case 826: + + { + (yyval.qstr)= " is new "+(yyvsp[(5) - (7)].qstr)+(yyvsp[(6) - (7)].qstr); + addVhdlType((yyvsp[(2) - (7)].qstr),getParsedLine(t_FUNCTION),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"function ",(yyval.qstr).data()); + ;} + break; + + case 827: + + { + (yyval.qstr)=" is new "+(yyvsp[(5) - (8)].qstr)+(yyvsp[(6) - (8)].qstr); + addVhdlType((yyvsp[(2) - (8)].qstr),getParsedLine(t_FUNCTION),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"function ",(yyval.qstr).data()); + ;} + break; + + case 828: + + { (yyval.qstr)=""; ;} + break; + + case 829: + + { (yyval.qstr)=""; ;} + break; + + case 830: + + { (yyval.qstr)="["+(yyvsp[(2) - (3)].qstr)+" ]"; ;} + break; + + case 831: + + { (yyval.qstr)="[ ]"; ;} + break; + + case 832: + + { (yyval.qstr)="return "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 833: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 834: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+" return "+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 835: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 836: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+" "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 837: + + { (yyval.qstr)=" , "+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 884: + + { (yyval.qstr) = (yyvsp[(1) - (1)].qstr); ;} + break; + + case 885: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 886: + + { (yyval.qstr) = "procedure "+(yyvsp[(2) - (3)].qstr)+(yyvsp[(3) - (3)].qstr); current->name=(yyvsp[(2) - (3)].qstr); ;} + break; + + case 887: + + { + QCString s=(yyvsp[(6) - (6)].qstr); + if (!s.isEmpty()) + { + s.prepend(" is "); + } + (yyval.qstr)=" function "+(yyvsp[(2) - (6)].qstr)+(yyvsp[(3) - (6)].qstr)+(yyvsp[(5) - (6)].qstr)+s; + current->name=(yyvsp[(2) - (6)].qstr); + ;} + break; + + case 888: + + { + QCString s=(yyvsp[(7) - (7)].qstr); + if (!s.isEmpty()) + { + s.prepend(" is "); + } + (yyval.qstr)=(yyvsp[(1) - (7)].qstr)+" function "+(yyvsp[(3) - (7)].qstr)+(yyvsp[(4) - (7)].qstr)+" return "+(yyvsp[(6) - (7)].qstr)+s; + current->name=(yyvsp[(3) - (7)].qstr); + ;} + break; + + case 889: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 890: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 891: + + { (yyval.qstr)=""; ;} + break; + + case 892: + + { (yyval.qstr)=(yyvsp[(2) - (2)].qstr); ;} + break; + + case 893: + + { (yyval.qstr)="<>"; ;} + break; + + case 894: + + { (yyval.qstr)=""; ;} + break; + + case 895: + + { (yyval.qstr)="parameter "; ;} + break; + + case 896: + + { parse_sec=PARAM_SEC; ;} + break; + + case 897: + + { parse_sec=0; ;} + break; + + case 898: + + { (yyval.qstr)="("+(yyvsp[(2) - (4)].qstr)+")"; ;} + break; + + case 899: + + { + (yyval.qstr)="package "+(yyvsp[(2) - (5)].qstr)+" is new "+(yyvsp[(5) - (5)].qstr); + current->name=(yyvsp[(2) - (5)].qstr); + ;} + break; + + case 900: + + { + (yyval.qstr)="package "+(yyvsp[(2) - (6)].qstr)+" is new "+(yyvsp[(5) - (6)].qstr)+"( ... )" ; + current->name=(yyvsp[(2) - (6)].qstr); + ;} + break; + + case 902: + + { + //int u=s_str.iLine; + parse_sec=GEN_SEC; + ;} + break; + + case 903: + + { + QCString vo=(yyvsp[(3) - (3)].qstr); + parse_sec=0; + ;} + break; + + case 904: + + { + QCString s="<<"+(yyvsp[(2) - (6)].qstr); + QCString s1=(yyvsp[(3) - (6)].qstr)+":"+(yyvsp[(5) - (6)].qstr)+">>"; + (yyval.qstr)=s+s1; + ;} + break; + + case 905: + + { (yyval.qstr)="constant "; ;} + break; + + case 906: + + { (yyval.qstr)="signal "; ;} + break; + + case 907: + + { (yyval.qstr)="variable "; ;} + break; + + case 908: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 909: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 910: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 911: + + { (yyval.qstr)="."+(yyvsp[(2) - (3)].qstr)+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 912: + + { (yyval.qstr)="."+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 913: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+(yyvsp[(2) - (3)].qstr)+(yyvsp[(3) - (3)].qstr); ;} + break; + + case 914: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 915: + + { (yyval.qstr)="^."; ;} + break; + + case 916: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+"^."; ;} + break; + + case 917: + + { (yyval.qstr)=(yyvsp[(1) - (1)].qstr); ;} + break; + + case 918: + + { (yyval.qstr)=(yyvsp[(1) - (4)].qstr)+"("+(yyvsp[(3) - (4)].qstr)+")"; ;} + break; + + case 919: + + { (yyval.qstr)=(yyvsp[(1) - (2)].qstr)+"."; ;} + break; + + case 920: + + { (yyval.qstr)=(yyvsp[(1) - (3)].qstr)+(yyvsp[(2) - (3)].qstr)+"."; ;} + break; + + case 921: + + { (yyval.qstr)="@"+(yyvsp[(2) - (2)].qstr); ;} + break; + + case 922: + + { +// fprintf(stderr,"\n tooldir %s",s_str.qstr.data() ); +;} + break; + + +/* Line 1267 of yacc.c. */ + + default: break; + } + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + + /* Now `shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (YY_("syntax error")); +#else + { + YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); + if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) + { + YYSIZE_T yyalloc = 2 * yysize; + if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) + yyalloc = YYSTACK_ALLOC_MAXIMUM; + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yyalloc); + if (yymsg) + yymsg_alloc = yyalloc; + else + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + } + } + + if (0 < yysize && yysize <= yymsg_alloc) + { + (void) yysyntax_error (yymsg, yystate, yychar); + yyerror (yymsg); + } + else + { + yyerror (YY_("syntax error")); + if (yysize != 0) + goto yyexhaustedlab; + } + } +#endif + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse look-ahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse look-ahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule which action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + 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; + + + yydestruct ("Error: popping", + yystos[yystate], yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + if (yyn == YYFINAL) + YYACCEPT; + + *++yyvsp = yylval; + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#ifndef yyoverflow +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEOF && yychar != YYEMPTY) + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + /* Do not reclaim the symbols of the rule which action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + /* Make sure YYID is used. */ + return YYID (yyresult); +} + + + + +extern FILE* yyout; +extern YYSTYPE vhdlScanYYlval; + +void vhdlScanYYerror(const char* /*str*/) +{ +// fprintf(stderr,"\n<---error at line %d : [ %s] in file : %s ---->",s_str.yyLineNr,s_str.qstr.data(),s_str.fileName); + // exit(0); +} + +void vhdlParse() +{ +// //myconv=conv; + vhdlScanYYparse(); +} + +//int lex(void) +//{ +// return myconv->doLex(); +//} + +VhdlContainer* getVhdlCont() +{ + return &s_str; +} + +Entry* getVhdlCompound() +{ + if (lastEntity) return lastEntity; + if (lastCompound) return lastCompound; + return NULL; +} + +QList<VhdlConfNode>& getVhdlConfiguration() { return configL; } + +static void addCompInst(char *n, char* instName, char* comp,int iLine) +{ + + current->spec=VhdlDocGen::INSTANTIATION; + current->section=Entry::VARIABLE_SEC; + current->startLine=iLine; + current->bodyLine=iLine; + current->type=instName; // foo:instname e.g proto or work. proto(ttt) + current->exception=genLabels; // |arch|label1:label2... + current->name=n; // foo + current->args=lastCompound->name; // architecture name + current->includeName=comp; // component/enity/configuration + + //printf(" \n genlable: [%s] inst: [%s] name: [%s] \n",genLabels.data(),instName,n); + + if (lastCompound) + { + current->args=lastCompound->name; + if (true) // !findInstant(current->type)) + { + initEntry(current); + instFiles.append(new Entry(*current)); + } + + Entry *temp=current; // hold current pointer (temp=oldEntry) + current=new Entry; // (oldEntry != current) + delete temp; + + } + else + { + newEntry(); + } +} + +static void pushLabel(const QCString &label) +{ + genLabels+="|"+label; +} + +static void popLabel() +{ + int u=genLabels.findRev("|"); + if (u<0) return; + genLabels=genLabels.left(u); +} + +static void popConfig() +{ + assert(currNode); + currNode=currNode->prevNode; + // printf("\n pop arch %s ",currNode->arch.data()); +} + +static void addConfigureNode(const char* a,const char*b, bool isRoot,bool isLeave,bool inlineConf) +{ + VhdlConfNode* co; + QCString ent,arch,lab; + ent=a; + lab = VhdlDocGen::parseForConfig(ent,arch); + + if (b) + { + ent=b; + lab=VhdlDocGen::parseForBinding(ent,arch); + } + + co=new VhdlConfNode(a,b,confName.data()); + if (inlineConf) + { + co->isInlineConf=TRUE; + } + + if (isRoot) + { + co->isRoot=TRUE; + configL.append(co); + currNode=co; + currNode->prevNode=currNode; + } + else if (!isLeave) + { + currNode->addNode(co); + co->prevNode=currNode; + currNode=co; + } + else + { + assert(0); + co=new VhdlConfNode(a,b,confName.data()); + currNode->addNode(co); + } +}// addConfigure + +//------------------------------------------------------------------------------------------------------------ + +static bool isFuncProcProced() +{ + if (currP==VhdlDocGen::FUNCTION || + currP==VhdlDocGen::PROCEDURE || + currP==VhdlDocGen::PROCESS + ) + { + return TRUE; + } + return FALSE; +} + +static void initEntry(Entry *e) +{ + e->fileName = s_str.fileName; + e->lang=SrcLangExt_VHDL; + isVhdlDocPending(); + initGroupInfo(e); +} + +static void addProto(const char *s1,const char *s2,const char *s3, + const char *s4,const char *s5,const char *s6) +{ + // (void)s3; // avoid unused warning + (void)s5; // avoid unused warning + static QRegExp reg("[\\s]"); + QCString name=s2; + QStringList ql=QStringList::split(",",name,FALSE); + + for (uint u=0;u<ql.count();u++) + { + Argument *arg=new Argument; + arg->name=ql[u].utf8(); + if (s3) + { + arg->type=s3; + } + arg->type+=" "; + arg->type+=s4; + if (s6) + { + arg->type+=s6; + } + if (parse_sec==GEN_SEC && param_sec==0) + { + arg->defval="gen!"; + } + + if (parse_sec==PARAM_SEC) + { + assert(false); + } + + arg->defval+=s1; + arg->attrib="";//s6; + + current->argList->append(arg); + current->args+=s2; + current->args+=","; + } +} + +static void createFunction(const QCString &impure,int spec, + const QCString &fname) +{ + int it=0; + current->bodyLine=getParsedLine(spec); + current->spec=spec; + current->section=Entry::FUNCTION_SEC; + current->exception=impure; + + if (parse_sec==GEN_SEC) + { + current->spec= VhdlDocGen::GENERIC; + current->section=Entry::FUNCTION_SEC; + } + + if (currP==VhdlDocGen::PROCEDURE) + { + current->name=impure; + current->exception=""; + it=t_PROCEDURE; + } + else + { + current->name=fname; + it=t_FUNCTION; + } + + if (spec==VhdlDocGen::PROCESS) + { + it=t_PROCESS; + current->args=fname; + current->name=impure; + if (!fname.isEmpty()) + { + QStringList q1=QStringList::split(',',fname); + for (uint ii=0;ii<q1.count();ii++) + { + Argument *arg=new Argument; + arg->name=q1[ii].utf8(); + current->argList->append(arg); + } + } + } + + current->startLine=getParsedLine(it); + current->bodyLine=getParsedLine(it); +} + +static void addVhdlType(const QCString &name,int startLine,int section,int spec, + const char* args,const char* type,Protection prot) +{ + static QRegExp reg("[\\s]"); + + //int startLine=getParsedLine(spec); + + if (isFuncProcProced()) + { + return; + } + + if (parse_sec==GEN_SEC) + { + spec= VhdlDocGen::GENERIC; + } + + // more than one name ? + QStringList ql=QStringList::split(",",name,FALSE); + + for (uint u=0;u<ql.count();u++) + { + current->name=ql[u].utf8(); + // if (section==Entry::VARIABLE_SEC && !(spec == VhdlDocGen::USE || spec == VhdlDocGen::LIBRARY) ) + // { + // current->name.prepend(VhdlDocGen::getRecordNumber()); + // } + + current->startLine=startLine; + current->bodyLine=startLine; + current->section=section; + current->spec=spec; + current->fileName=s_str.fileName; + if (current->args.isEmpty()) + { + current->args=args; + current->args.replace(reg,"%"); // insert dummy chars because wihte spaces are removed + } + current->type=type; + current->type.replace(reg,"%"); // insert dummy chars because white spaces are removed + current->protection=prot; + newEntry(); + } +} + +static void newEntry() +{ + if (current->spec==VhdlDocGen::ENTITY || + current->spec==VhdlDocGen::PACKAGE || + current->spec==VhdlDocGen::ARCHITECTURE || + current->spec==VhdlDocGen::PACKAGE_BODY + ) + { + current_root->addSubEntry(current); + } + else + { + if (lastCompound) + { + lastCompound->addSubEntry(current); + } + else + { + if (lastEntity) + { + lastEntity->addSubEntry(current); + } + else + { + current_root->addSubEntry(current); + } + } + } + current = new Entry ; + initEntry(current); +} + + |