提交 c40f5640 编写于 作者: S Sam Ravnborg

kbuild: Create _shipped files for genksyms

Generate _shipped files so the genksyms change in previous commit is enabled.
The files are generated with latest versions of the tools:

bison (GNU Bison) 2.0
flex version 2.5.4
GNU gperf 3.0.1
Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
上级 a89a0a23
/* ANSI-C code produced by gperf version 2.7.2 */ /* ANSI-C code produced by gperf version 3.0.1 */
/* Command-line: gperf -L ANSI-C -a -C -E -g -H is_reserved_hash -k '1,3,$' -N is_reserved_word -p -t scripts/genksyms/keywords.gperf */ /* Command-line: gperf -L ANSI-C -a -C -E -g -H is_reserved_hash -k '1,3,$' -N is_reserved_word -p -t scripts/genksyms/keywords.gperf */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
&& (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
&& ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
&& ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
&& ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
&& ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
&& ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
&& ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
&& ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
&& ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
&& ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
&& ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
&& ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
&& ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
&& ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
&& ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
&& ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
&& ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
&& ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
&& ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
/* The character set is not based on ISO-646. */
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
#endif
#line 1 "scripts/genksyms/keywords.gperf"
#line 3 "scripts/genksyms/keywords.gperf"
struct resword { const char *name; int token; }; struct resword { const char *name; int token; };
/* maximum key range = 109, duplicates = 0 */ /* maximum key range = 68, duplicates = 0 */
#ifdef __GNUC__ #ifdef __GNUC__
__inline __inline
...@@ -15,32 +46,32 @@ is_reserved_hash (register const char *str, register unsigned int len) ...@@ -15,32 +46,32 @@ is_reserved_hash (register const char *str, register unsigned int len)
{ {
static const unsigned char asso_values[] = static const unsigned char asso_values[] =
{ {
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 5, 71, 71, 71, 71, 71, 71, 71, 71, 71, 15,
113, 113, 113, 113, 113, 113, 0, 113, 113, 113, 71, 71, 71, 71, 71, 71, 15, 71, 71, 71,
0, 113, 113, 113, 113, 113, 113, 113, 113, 113, 10, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 0, 113, 0, 113, 20, 71, 71, 71, 71, 71, 0, 71, 0, 71, 5,
25, 0, 35, 30, 113, 20, 113, 113, 40, 30, 5, 0, 10, 20, 71, 25, 71, 71, 20, 0,
30, 0, 0, 113, 0, 51, 0, 15, 5, 113, 20, 30, 25, 71, 10, 5, 0, 20, 15, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
113, 113, 113, 113, 113, 113 71, 71, 71, 71, 71, 71
}; };
return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]]; return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]];
} }
...@@ -56,77 +87,112 @@ is_reserved_word (register const char *str, register unsigned int len) ...@@ -56,77 +87,112 @@ is_reserved_word (register const char *str, register unsigned int len)
TOTAL_KEYWORDS = 41, TOTAL_KEYWORDS = 41,
MIN_WORD_LENGTH = 3, MIN_WORD_LENGTH = 3,
MAX_WORD_LENGTH = 17, MAX_WORD_LENGTH = 17,
MIN_HASH_VALUE = 4, MIN_HASH_VALUE = 3,
MAX_HASH_VALUE = 112 MAX_HASH_VALUE = 70
}; };
static const struct resword wordlist[] = static const struct resword wordlist[] =
{ {
{""}, {""}, {""}, {""}, {""}, {""}, {""},
{"auto", AUTO_KEYW}, #line 24 "scripts/genksyms/keywords.gperf"
{""}, {""}, {"asm", ASM_KEYW},
{""},
#line 7 "scripts/genksyms/keywords.gperf"
{"__asm", ASM_KEYW},
{""},
#line 8 "scripts/genksyms/keywords.gperf"
{"__asm__", ASM_KEYW}, {"__asm__", ASM_KEYW},
{""}, {""},
#line 21 "scripts/genksyms/keywords.gperf"
{"_restrict", RESTRICT_KEYW}, {"_restrict", RESTRICT_KEYW},
#line 50 "scripts/genksyms/keywords.gperf"
{"__typeof__", TYPEOF_KEYW}, {"__typeof__", TYPEOF_KEYW},
#line 9 "scripts/genksyms/keywords.gperf"
{"__attribute", ATTRIBUTE_KEYW}, {"__attribute", ATTRIBUTE_KEYW},
{"__restrict__", RESTRICT_KEYW}, #line 11 "scripts/genksyms/keywords.gperf"
{"__const", CONST_KEYW},
#line 10 "scripts/genksyms/keywords.gperf"
{"__attribute__", ATTRIBUTE_KEYW}, {"__attribute__", ATTRIBUTE_KEYW},
#line 12 "scripts/genksyms/keywords.gperf"
{"__const__", CONST_KEYW},
#line 16 "scripts/genksyms/keywords.gperf"
{"__signed__", SIGNED_KEYW},
#line 42 "scripts/genksyms/keywords.gperf"
{"static", STATIC_KEYW},
{""}, {""},
{"__volatile", VOLATILE_KEYW}, #line 15 "scripts/genksyms/keywords.gperf"
{"__signed", SIGNED_KEYW},
#line 30 "scripts/genksyms/keywords.gperf"
{"char", CHAR_KEYW},
{""}, {""},
#line 43 "scripts/genksyms/keywords.gperf"
{"struct", STRUCT_KEYW},
#line 22 "scripts/genksyms/keywords.gperf"
{"__restrict__", RESTRICT_KEYW},
#line 23 "scripts/genksyms/keywords.gperf"
{"restrict", RESTRICT_KEYW},
#line 33 "scripts/genksyms/keywords.gperf"
{"enum", ENUM_KEYW},
#line 17 "scripts/genksyms/keywords.gperf"
{"__volatile", VOLATILE_KEYW},
#line 34 "scripts/genksyms/keywords.gperf"
{"extern", EXTERN_KEYW},
#line 18 "scripts/genksyms/keywords.gperf"
{"__volatile__", VOLATILE_KEYW}, {"__volatile__", VOLATILE_KEYW},
{"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW}, #line 37 "scripts/genksyms/keywords.gperf"
{""}, {""}, {""},
{"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
{"int", INT_KEYW}, {"int", INT_KEYW},
{"char", CHAR_KEYW}, {""},
{""}, {""}, #line 31 "scripts/genksyms/keywords.gperf"
{"__const", CONST_KEYW}, {"const", CONST_KEYW},
#line 32 "scripts/genksyms/keywords.gperf"
{"double", DOUBLE_KEYW},
{""},
#line 13 "scripts/genksyms/keywords.gperf"
{"__inline", INLINE_KEYW}, {"__inline", INLINE_KEYW},
{"__const__", CONST_KEYW}, #line 29 "scripts/genksyms/keywords.gperf"
{"auto", AUTO_KEYW},
#line 14 "scripts/genksyms/keywords.gperf"
{"__inline__", INLINE_KEYW}, {"__inline__", INLINE_KEYW},
{""}, {""}, {""}, {""}, #line 41 "scripts/genksyms/keywords.gperf"
{"__asm", ASM_KEYW}, {"signed", SIGNED_KEYW},
{"extern", EXTERN_KEYW},
{""}, {""},
{"register", REGISTER_KEYW}, #line 46 "scripts/genksyms/keywords.gperf"
{"unsigned", UNSIGNED_KEYW},
{""}, {""},
{"float", FLOAT_KEYW}, #line 40 "scripts/genksyms/keywords.gperf"
{"short", SHORT_KEYW},
#line 49 "scripts/genksyms/keywords.gperf"
{"typeof", TYPEOF_KEYW}, {"typeof", TYPEOF_KEYW},
#line 44 "scripts/genksyms/keywords.gperf"
{"typedef", TYPEDEF_KEYW}, {"typedef", TYPEDEF_KEYW},
{""}, {""}, #line 48 "scripts/genksyms/keywords.gperf"
{"_Bool", BOOL_KEYW},
{"double", DOUBLE_KEYW},
{""}, {""},
{"enum", ENUM_KEYW},
{""}, {""}, {""},
{"volatile", VOLATILE_KEYW}, {"volatile", VOLATILE_KEYW},
{""},
#line 35 "scripts/genksyms/keywords.gperf"
{"float", FLOAT_KEYW},
{""}, {""},
#line 39 "scripts/genksyms/keywords.gperf"
{"register", REGISTER_KEYW},
#line 47 "scripts/genksyms/keywords.gperf"
{"void", VOID_KEYW}, {"void", VOID_KEYW},
{"const", CONST_KEYW},
{"short", SHORT_KEYW},
{"struct", STRUCT_KEYW},
{""}, {""},
{"restrict", RESTRICT_KEYW}, #line 36 "scripts/genksyms/keywords.gperf"
{"inline", INLINE_KEYW},
{""}, {""},
{"__signed__", SIGNED_KEYW}, #line 5 "scripts/genksyms/keywords.gperf"
{"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW},
{""}, {""},
{"asm", ASM_KEYW}, #line 20 "scripts/genksyms/keywords.gperf"
{""}, {""}, {"_Bool", BOOL_KEYW},
{"inline", INLINE_KEYW}, {""},
{""}, {""}, {""}, #line 6 "scripts/genksyms/keywords.gperf"
{"union", UNION_KEYW}, {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
{""}, {""}, {""}, {""}, {""}, {""},
{"static", STATIC_KEYW},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{"__signed", SIGNED_KEYW}, #line 38 "scripts/genksyms/keywords.gperf"
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
{"unsigned", UNSIGNED_KEYW},
{""}, {""}, {""}, {""},
{"long", LONG_KEYW}, {"long", LONG_KEYW},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{"signed", SIGNED_KEYW} #line 45 "scripts/genksyms/keywords.gperf"
{"union", UNION_KEYW}
}; };
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
......
...@@ -2036,49 +2036,131 @@ fini: ...@@ -2036,49 +2036,131 @@ fini:
return token; return token;
} }
#ifndef YYSTYPE /* A Bison parser, made by GNU Bison 2.0. */
#define YYSTYPE int
#endif
#define ASM_KEYW 257
#define ATTRIBUTE_KEYW 258
#define AUTO_KEYW 259
#define BOOL_KEYW 260
#define CHAR_KEYW 261
#define CONST_KEYW 262
#define DOUBLE_KEYW 263
#define ENUM_KEYW 264
#define EXTERN_KEYW 265
#define FLOAT_KEYW 266
#define INLINE_KEYW 267
#define INT_KEYW 268
#define LONG_KEYW 269
#define REGISTER_KEYW 270
#define RESTRICT_KEYW 271
#define SHORT_KEYW 272
#define SIGNED_KEYW 273
#define STATIC_KEYW 274
#define STRUCT_KEYW 275
#define TYPEDEF_KEYW 276
#define UNION_KEYW 277
#define UNSIGNED_KEYW 278
#define VOID_KEYW 279
#define VOLATILE_KEYW 280
#define TYPEOF_KEYW 281
#define EXPORT_SYMBOL_KEYW 282
#define ASM_PHRASE 283
#define ATTRIBUTE_PHRASE 284
#define BRACE_PHRASE 285
#define BRACKET_PHRASE 286
#define EXPRESSION_PHRASE 287
#define CHAR 288
#define DOTS 289
#define IDENT 290
#define INT 291
#define REAL 292
#define STRING 293
#define TYPE 294
#define OTHER 295
#define FILENAME 296
/* Skeleton parser for Yacc-like parsing with Bison,
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* As a special exception, when this file is copied by Bison into a
Bison output file, you may use that output file without restriction.
This special exception was added by the Free Software Foundation
in version 1.24 of Bison. */
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
/* Put the tokens into the symbol table, so that GDB and other debuggers
know about them. */
enum yytokentype {
ASM_KEYW = 258,
ATTRIBUTE_KEYW = 259,
AUTO_KEYW = 260,
BOOL_KEYW = 261,
CHAR_KEYW = 262,
CONST_KEYW = 263,
DOUBLE_KEYW = 264,
ENUM_KEYW = 265,
EXTERN_KEYW = 266,
FLOAT_KEYW = 267,
INLINE_KEYW = 268,
INT_KEYW = 269,
LONG_KEYW = 270,
REGISTER_KEYW = 271,
RESTRICT_KEYW = 272,
SHORT_KEYW = 273,
SIGNED_KEYW = 274,
STATIC_KEYW = 275,
STRUCT_KEYW = 276,
TYPEDEF_KEYW = 277,
UNION_KEYW = 278,
UNSIGNED_KEYW = 279,
VOID_KEYW = 280,
VOLATILE_KEYW = 281,
TYPEOF_KEYW = 282,
EXPORT_SYMBOL_KEYW = 283,
ASM_PHRASE = 284,
ATTRIBUTE_PHRASE = 285,
BRACE_PHRASE = 286,
BRACKET_PHRASE = 287,
EXPRESSION_PHRASE = 288,
CHAR = 289,
DOTS = 290,
IDENT = 291,
INT = 292,
REAL = 293,
STRING = 294,
TYPE = 295,
OTHER = 296,
FILENAME = 297
};
#endif
#define ASM_KEYW 258
#define ATTRIBUTE_KEYW 259
#define AUTO_KEYW 260
#define BOOL_KEYW 261
#define CHAR_KEYW 262
#define CONST_KEYW 263
#define DOUBLE_KEYW 264
#define ENUM_KEYW 265
#define EXTERN_KEYW 266
#define FLOAT_KEYW 267
#define INLINE_KEYW 268
#define INT_KEYW 269
#define LONG_KEYW 270
#define REGISTER_KEYW 271
#define RESTRICT_KEYW 272
#define SHORT_KEYW 273
#define SIGNED_KEYW 274
#define STATIC_KEYW 275
#define STRUCT_KEYW 276
#define TYPEDEF_KEYW 277
#define UNION_KEYW 278
#define UNSIGNED_KEYW 279
#define VOID_KEYW 280
#define VOLATILE_KEYW 281
#define TYPEOF_KEYW 282
#define EXPORT_SYMBOL_KEYW 283
#define ASM_PHRASE 284
#define ATTRIBUTE_PHRASE 285
#define BRACE_PHRASE 286
#define BRACKET_PHRASE 287
#define EXPRESSION_PHRASE 288
#define CHAR 289
#define DOTS 290
#define IDENT 291
#define INT 292
#define REAL 293
#define STRING 294
#define TYPE 295
#define OTHER 296
#define FILENAME 297
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
typedef int YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif
extern YYSTYPE yylval; extern YYSTYPE yylval;
/* A Bison parser, made by GNU Bison 2.0. */
/* A Bison parser, made from scripts/genksyms/parse.y /* Skeleton parser for Yacc-like parsing with Bison,
by GNU Bison version 1.28 */ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
#define YYBISON 1 /* Identify Bison output. */
#define ASM_KEYW 257
#define ATTRIBUTE_KEYW 258
#define AUTO_KEYW 259
#define BOOL_KEYW 260
#define CHAR_KEYW 261
#define CONST_KEYW 262
#define DOUBLE_KEYW 263
#define ENUM_KEYW 264
#define EXTERN_KEYW 265
#define FLOAT_KEYW 266
#define INLINE_KEYW 267
#define INT_KEYW 268
#define LONG_KEYW 269
#define REGISTER_KEYW 270
#define RESTRICT_KEYW 271
#define SHORT_KEYW 272
#define SIGNED_KEYW 273
#define STATIC_KEYW 274
#define STRUCT_KEYW 275
#define TYPEDEF_KEYW 276
#define UNION_KEYW 277
#define UNSIGNED_KEYW 278
#define VOID_KEYW 279
#define VOLATILE_KEYW 280
#define TYPEOF_KEYW 281
#define EXPORT_SYMBOL_KEYW 282
#define ASM_PHRASE 283
#define ATTRIBUTE_PHRASE 284
#define BRACE_PHRASE 285
#define BRACKET_PHRASE 286
#define EXPRESSION_PHRASE 287
#define CHAR 288
#define DOTS 289
#define IDENT 290
#define INT 291
#define REAL 292
#define STRING 293
#define TYPE 294
#define OTHER 295
#define FILENAME 296
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* As a special exception, when this file is copied by Bison into a
Bison output file, you may use that output file without restriction.
This special exception was added by the Free Software Foundation
in version 1.24 of Bison. */
/* Written by Richard Stallman by simplifying the original so called
``semantic'' parser. */
/* All symbols defined below should begin with yy or YY, to avoid
infringing on user name space. This should be done even for local
variables, as they might otherwise be expanded by user macros.
There are some unavoidable exceptions within include files to
define necessary library symbols; they are noted "INFRINGES ON
USER NAME SPACE" below. */
/* Identify Bison output. */
#define YYBISON 1
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
/* Pure parsers. */
#define YYPURE 0
/* Using locations. */
#define YYLSP_NEEDED 0
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
/* Put the tokens into the symbol table, so that GDB and other debuggers
know about them. */
enum yytokentype {
ASM_KEYW = 258,
ATTRIBUTE_KEYW = 259,
AUTO_KEYW = 260,
BOOL_KEYW = 261,
CHAR_KEYW = 262,
CONST_KEYW = 263,
DOUBLE_KEYW = 264,
ENUM_KEYW = 265,
EXTERN_KEYW = 266,
FLOAT_KEYW = 267,
INLINE_KEYW = 268,
INT_KEYW = 269,
LONG_KEYW = 270,
REGISTER_KEYW = 271,
RESTRICT_KEYW = 272,
SHORT_KEYW = 273,
SIGNED_KEYW = 274,
STATIC_KEYW = 275,
STRUCT_KEYW = 276,
TYPEDEF_KEYW = 277,
UNION_KEYW = 278,
UNSIGNED_KEYW = 279,
VOID_KEYW = 280,
VOLATILE_KEYW = 281,
TYPEOF_KEYW = 282,
EXPORT_SYMBOL_KEYW = 283,
ASM_PHRASE = 284,
ATTRIBUTE_PHRASE = 285,
BRACE_PHRASE = 286,
BRACKET_PHRASE = 287,
EXPRESSION_PHRASE = 288,
CHAR = 289,
DOTS = 290,
IDENT = 291,
INT = 292,
REAL = 293,
STRING = 294,
TYPE = 295,
OTHER = 296,
FILENAME = 297
};
#endif
#define ASM_KEYW 258
#define ATTRIBUTE_KEYW 259
#define AUTO_KEYW 260
#define BOOL_KEYW 261
#define CHAR_KEYW 262
#define CONST_KEYW 263
#define DOUBLE_KEYW 264
#define ENUM_KEYW 265
#define EXTERN_KEYW 266
#define FLOAT_KEYW 267
#define INLINE_KEYW 268
#define INT_KEYW 269
#define LONG_KEYW 270
#define REGISTER_KEYW 271
#define RESTRICT_KEYW 272
#define SHORT_KEYW 273
#define SIGNED_KEYW 274
#define STATIC_KEYW 275
#define STRUCT_KEYW 276
#define TYPEDEF_KEYW 277
#define UNION_KEYW 278
#define UNSIGNED_KEYW 279
#define VOID_KEYW 280
#define VOLATILE_KEYW 281
#define TYPEOF_KEYW 282
#define EXPORT_SYMBOL_KEYW 283
#define ASM_PHRASE 284
#define ATTRIBUTE_PHRASE 285
#define BRACE_PHRASE 286
#define BRACKET_PHRASE 287
#define EXPRESSION_PHRASE 288
#define CHAR 289
#define DOTS 290
#define IDENT 291
#define INT 292
#define REAL 293
#define STRING 294
#define TYPE 295
#define OTHER 296
#define FILENAME 297
/* Copy the first part of user declarations. */
#line 24 "scripts/genksyms/parse.y" #line 24 "scripts/genksyms/parse.y"
...@@ -75,661 +170,1000 @@ remove_list(struct string_list **pb, struct string_list **pe) ...@@ -75,661 +170,1000 @@ remove_list(struct string_list **pb, struct string_list **pe)
free_list(b, e); free_list(b, e);
} }
#ifndef YYSTYPE
#define YYSTYPE int
#endif /* Enabling traces. */
#ifndef YYDEBUG #ifndef YYDEBUG
#define YYDEBUG 1 # define YYDEBUG 1
#endif #endif
#include <stdio.h> /* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE
#ifndef __cplusplus # undef YYERROR_VERBOSE
#ifndef __STDC__ # define YYERROR_VERBOSE 1
#define const #else
# define YYERROR_VERBOSE 0
#endif #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 #endif
#define YYFINAL 172 /* Copy the second part of user declarations. */
#define YYFLAG -32768
#define YYNTBASE 52
#define YYTRANSLATE(x) ((unsigned)(x) <= 296 ? yytranslate[x] : 96)
static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 46,
47, 48, 2, 45, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 51, 43, 2,
49, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 50, 2, 44, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42
};
#if YYDEBUG != 0
static const short yyprhs[] = { 0,
0, 2, 5, 6, 9, 10, 14, 16, 18, 20,
22, 25, 28, 32, 33, 35, 37, 41, 46, 47,
49, 51, 54, 56, 58, 60, 62, 64, 66, 68,
70, 72, 77, 80, 83, 86, 90, 94, 98, 101,
104, 107, 109, 111, 113, 115, 117, 119, 121, 123,
125, 127, 129, 132, 133, 135, 137, 140, 142, 144,
146, 148, 151, 153, 155, 160, 165, 168, 172, 176,
179, 181, 183, 185, 190, 195, 198, 202, 206, 209,
211, 215, 216, 218, 220, 224, 227, 230, 232, 233,
235, 237, 242, 247, 250, 254, 258, 262, 263, 265,
268, 272, 276, 277, 279, 281, 284, 288, 291, 292,
294, 296, 300, 303, 306, 308, 311, 312, 314, 317,
318, 320
};
static const short yyrhs[] = { 53, /* Line 213 of yacc.c. */
0, 52, 53, 0, 0, 54, 55, 0, 0, 22, #line 202 "scripts/genksyms/parse.c"
56, 57, 0, 57, 0, 81, 0, 93, 0, 95,
0, 1, 43, 0, 1, 44, 0, 61, 58, 43,
0, 0, 59, 0, 60, 0, 59, 45, 60, 0,
71, 94, 92, 82, 0, 0, 62, 0, 63, 0,
62, 63, 0, 64, 0, 65, 0, 5, 0, 16,
0, 20, 0, 11, 0, 13, 0, 66, 0, 70,
0, 27, 46, 62, 47, 0, 21, 36, 0, 23,
36, 0, 10, 36, 0, 21, 36, 84, 0, 23,
36, 84, 0, 10, 36, 31, 0, 10, 31, 0,
21, 84, 0, 23, 84, 0, 7, 0, 18, 0,
14, 0, 15, 0, 19, 0, 24, 0, 12, 0,
9, 0, 25, 0, 6, 0, 40, 0, 48, 68,
0, 0, 69, 0, 70, 0, 69, 70, 0, 8,
0, 26, 0, 30, 0, 17, 0, 67, 71, 0,
72, 0, 36, 0, 72, 46, 75, 47, 0, 72,
46, 1, 47, 0, 72, 32, 0, 46, 71, 47,
0, 46, 1, 47, 0, 67, 73, 0, 74, 0,
36, 0, 40, 0, 74, 46, 75, 47, 0, 74,
46, 1, 47, 0, 74, 32, 0, 46, 73, 47,
0, 46, 1, 47, 0, 76, 35, 0, 76, 0,
77, 45, 35, 0, 0, 77, 0, 78, 0, 77,
45, 78, 0, 62, 79, 0, 67, 79, 0, 80,
0, 0, 36, 0, 40, 0, 80, 46, 75, 47,
0, 80, 46, 1, 47, 0, 80, 32, 0, 46,
79, 47, 0, 46, 1, 47, 0, 61, 71, 31,
0, 0, 83, 0, 49, 33, 0, 50, 85, 44,
0, 50, 1, 44, 0, 0, 86, 0, 87, 0,
86, 87, 0, 61, 88, 43, 0, 1, 43, 0,
0, 89, 0, 90, 0, 89, 45, 90, 0, 73,
92, 0, 36, 91, 0, 91, 0, 51, 33, 0,
0, 30, 0, 29, 43, 0, 0, 29, 0, 28,
46, 36, 47, 43, 0
};
#endif #if ! defined (yyoverflow) || YYERROR_VERBOSE
#if YYDEBUG != 0 # ifndef YYFREE
static const short yyrline[] = { 0, # define YYFREE free
101, 103, 106, 109, 112, 114, 115, 116, 117, 118, # endif
119, 120, 123, 137, 139, 142, 151, 163, 169, 171, # ifndef YYMALLOC
174, 176, 179, 186, 189, 191, 192, 193, 194, 197, # define YYMALLOC malloc
199, 200, 204, 206, 208, 212, 219, 226, 235, 236, # endif
237, 240, 242, 243, 244, 245, 246, 247, 248, 249,
250, 251, 254, 259, 261, 264, 266, 269, 270, 270,
271, 278, 280, 283, 293, 295, 297, 299, 301, 307,
309, 312, 314, 315, 317, 319, 321, 323, 327, 329,
330, 333, 335, 338, 340, 344, 349, 352, 355, 357,
365, 369, 371, 373, 375, 377, 381, 390, 392, 396,
401, 403, 406, 408, 411, 413, 416, 419, 423, 425,
428, 430, 433, 435, 436, 439, 443, 445, 448, 452,
454, 457
};
#endif
/* 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
# else
# define YYSTACK_ALLOC alloca
# endif
# endif
# endif
# ifdef YYSTACK_ALLOC
/* Pacify GCC's `empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
# else
# if defined (__STDC__) || defined (__cplusplus)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# endif
# define YYSTACK_ALLOC YYMALLOC
# define YYSTACK_FREE YYFREE
# 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
{
short int yyss;
YYSTYPE yyvs;
};
/* The size of the maximum gap between one aligned stack and the next. */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
/* The size of an array large to enough to hold all stacks, each with
N elements. */
# define YYSTACK_BYTES(N) \
((N) * (sizeof (short int) + 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 \
{ \
register YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
while (0)
# endif
# endif
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
elements in the stack, and YYPTR gives the new location of the
stack. Advance YYPTR to a properly aligned location for the next
stack. */
# define YYSTACK_RELOCATE(Stack) \
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack, Stack, yysize); \
Stack = &yyptr->Stack; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (0)
#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
static const char * const yytname[] = { "$","error","$undefined.","ASM_KEYW",
"ATTRIBUTE_KEYW","AUTO_KEYW","BOOL_KEYW","CHAR_KEYW","CONST_KEYW","DOUBLE_KEYW",
"ENUM_KEYW","EXTERN_KEYW","FLOAT_KEYW","INLINE_KEYW","INT_KEYW","LONG_KEYW",
"REGISTER_KEYW","RESTRICT_KEYW","SHORT_KEYW","SIGNED_KEYW","STATIC_KEYW","STRUCT_KEYW",
"TYPEDEF_KEYW","UNION_KEYW","UNSIGNED_KEYW","VOID_KEYW","VOLATILE_KEYW","TYPEOF_KEYW",
"EXPORT_SYMBOL_KEYW","ASM_PHRASE","ATTRIBUTE_PHRASE","BRACE_PHRASE","BRACKET_PHRASE",
"EXPRESSION_PHRASE","CHAR","DOTS","IDENT","INT","REAL","STRING","TYPE","OTHER",
"FILENAME","';'","'}'","','","'('","')'","'*'","'='","'{'","':'","declaration_seq",
"declaration","@1","declaration1","@2","simple_declaration","init_declarator_list_opt",
"init_declarator_list","init_declarator","decl_specifier_seq_opt","decl_specifier_seq",
"decl_specifier","storage_class_specifier","type_specifier","simple_type_specifier",
"ptr_operator","cvar_qualifier_seq_opt","cvar_qualifier_seq","cvar_qualifier",
"declarator","direct_declarator","nested_declarator","direct_nested_declarator",
"parameter_declaration_clause","parameter_declaration_list_opt","parameter_declaration_list",
"parameter_declaration","m_abstract_declarator","direct_m_abstract_declarator",
"function_definition","initializer_opt","initializer","class_body","member_specification_opt",
"member_specification","member_declaration","member_declarator_list_opt","member_declarator_list",
"member_declarator","member_bitfield_declarator","attribute_opt","asm_definition",
"asm_phrase_opt","export_definition", NULL
};
#endif #endif
static const short yyr1[] = { 0, #if defined (__STDC__) || defined (__cplusplus)
52, 52, 54, 53, 56, 55, 55, 55, 55, 55, typedef signed char yysigned_char;
55, 55, 57, 58, 58, 59, 59, 60, 61, 61, #else
62, 62, 63, 63, 64, 64, 64, 64, 64, 65, typedef short int yysigned_char;
65, 65, 65, 65, 65, 65, 65, 65, 65, 65, #endif
65, 66, 66, 66, 66, 66, 66, 66, 66, 66,
66, 66, 67, 68, 68, 69, 69, 70, 70, 70, /* YYFINAL -- State number of the termination state. */
70, 71, 71, 72, 72, 72, 72, 72, 72, 73, #define YYFINAL 4
73, 74, 74, 74, 74, 74, 74, 74, 75, 75, /* YYLAST -- Last index in YYTABLE. */
75, 76, 76, 77, 77, 78, 79, 79, 80, 80, #define YYLAST 535
80, 80, 80, 80, 80, 80, 81, 82, 82, 83,
84, 84, 85, 85, 86, 86, 87, 87, 88, 88, /* YYNTOKENS -- Number of terminals. */
89, 89, 90, 90, 90, 91, 92, 92, 93, 94, #define YYNTOKENS 52
94, 95 /* YYNNTS -- Number of nonterminals. */
#define YYNNTS 45
/* YYNRULES -- Number of rules. */
#define YYNRULES 124
/* YYNRULES -- Number of states. */
#define YYNSTATES 174
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 297
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
static const unsigned char yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
46, 48, 47, 2, 45, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 51, 43,
2, 49, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 50, 2, 44, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 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
}; };
static const short yyr2[] = { 0, #if YYDEBUG
1, 2, 0, 2, 0, 3, 1, 1, 1, 1, /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
2, 2, 3, 0, 1, 1, 3, 4, 0, 1, YYRHS. */
1, 2, 1, 1, 1, 1, 1, 1, 1, 1, static const unsigned short int yyprhs[] =
1, 4, 2, 2, 2, 3, 3, 3, 2, 2, {
2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 3, 5, 8, 9, 12, 13, 17, 19,
1, 1, 2, 0, 1, 1, 2, 1, 1, 1, 21, 23, 25, 28, 31, 35, 36, 38, 40, 44,
1, 2, 1, 1, 4, 4, 2, 3, 3, 2, 49, 50, 52, 54, 57, 59, 61, 63, 65, 67,
1, 1, 1, 4, 4, 2, 3, 3, 2, 1, 69, 71, 73, 75, 81, 86, 89, 92, 95, 99,
3, 0, 1, 1, 3, 2, 2, 1, 0, 1, 103, 107, 110, 113, 116, 118, 120, 122, 124, 126,
1, 4, 4, 2, 3, 3, 3, 0, 1, 2, 128, 130, 132, 134, 136, 138, 141, 142, 144, 146,
3, 3, 0, 1, 1, 2, 3, 2, 0, 1, 149, 151, 153, 155, 157, 160, 162, 164, 169, 174,
1, 3, 2, 2, 1, 2, 0, 1, 2, 0, 177, 181, 185, 188, 190, 192, 194, 199, 204, 207,
1, 5 211, 215, 218, 220, 224, 225, 227, 229, 233, 236,
239, 241, 242, 244, 246, 251, 256, 259, 263, 267,
271, 272, 274, 277, 281, 285, 286, 288, 290, 293,
297, 300, 301, 303, 305, 309, 312, 315, 317, 320,
321, 323, 326, 327, 329
}; };
static const short yydefact[] = { 3, /* YYRHS -- A `-1'-separated list of the rules' RHS. */
3, 1, 0, 2, 0, 25, 51, 42, 58, 49, static const yysigned_char yyrhs[] =
0, 28, 48, 29, 44, 45, 26, 61, 43, 46, {
27, 0, 5, 0, 47, 50, 59, 0, 0, 0, 53, 0, -1, 54, -1, 53, 54, -1, -1, 55,
60, 52, 4, 7, 14, 20, 21, 23, 24, 30, 56, -1, -1, 22, 57, 58, -1, 58, -1, 82,
31, 8, 9, 10, 11, 12, 39, 35, 33, 0, -1, 94, -1, 96, -1, 1, 43, -1, 1, 44,
40, 19, 34, 41, 0, 0, 119, 64, 0, 54, -1, 62, 59, 43, -1, -1, 60, -1, 61, -1,
0, 15, 16, 0, 120, 63, 22, 38, 36, 0, 60, 45, 61, -1, 72, 95, 93, 83, -1, -1,
109, 0, 0, 105, 6, 14, 37, 0, 0, 0, 63, -1, 64, -1, 63, 64, -1, 65, -1, 66,
0, 53, 55, 56, 13, 0, 62, 121, 97, 117, -1, 5, -1, 16, -1, 20, -1, 11, -1, 13,
67, 0, 108, 102, 72, 73, 0, 0, 0, 117, -1, 67, -1, 71, -1, 27, 46, 63, 47, 48,
71, 0, 110, 111, 115, 101, 0, 106, 120, 32, -1, 27, 46, 63, 48, -1, 21, 36, -1, 23,
0, 69, 68, 57, 17, 118, 98, 0, 89, 0, 36, -1, 10, 36, -1, 21, 36, 85, -1, 23,
80, 83, 84, 114, 0, 72, 0, 116, 70, 113, 36, 85, -1, 10, 36, 31, -1, 10, 31, -1,
76, 0, 107, 0, 122, 0, 18, 99, 66, 90, 21, 85, -1, 23, 85, -1, 7, -1, 18, -1,
52, 0, 89, 86, 88, 65, 79, 0, 78, 77, 14, -1, 15, -1, 19, -1, 24, -1, 12, -1,
0, 0, 112, 100, 0, 91, 0, 87, 94, 0, 9, -1, 25, -1, 6, -1, 40, -1, 47, 69,
81, 85, 75, 74, 96, 95, 0, 0, 93, 92, -1, -1, 70, -1, 71, -1, 70, 71, -1, 8,
0, 0 -1, 26, -1, 30, -1, 17, -1, 68, 72, -1,
73, -1, 36, -1, 73, 46, 76, 48, -1, 73,
46, 1, 48, -1, 73, 32, -1, 46, 72, 48,
-1, 46, 1, 48, -1, 68, 74, -1, 75, -1,
36, -1, 40, -1, 75, 46, 76, 48, -1, 75,
46, 1, 48, -1, 75, 32, -1, 46, 74, 48,
-1, 46, 1, 48, -1, 77, 35, -1, 77, -1,
78, 45, 35, -1, -1, 78, -1, 79, -1, 78,
45, 79, -1, 63, 80, -1, 68, 80, -1, 81,
-1, -1, 36, -1, 40, -1, 81, 46, 76, 48,
-1, 81, 46, 1, 48, -1, 81, 32, -1, 46,
80, 48, -1, 46, 1, 48, -1, 62, 72, 31,
-1, -1, 84, -1, 49, 33, -1, 50, 86, 44,
-1, 50, 1, 44, -1, -1, 87, -1, 88, -1,
87, 88, -1, 62, 89, 43, -1, 1, 43, -1,
-1, 90, -1, 91, -1, 90, 45, 91, -1, 74,
93, -1, 36, 92, -1, 92, -1, 51, 33, -1,
-1, 30, -1, 29, 43, -1, -1, 29, -1, 28,
46, 36, 48, 43, -1
}; };
static const short yydefgoto[] = { 1, /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
2, 3, 33, 52, 34, 61, 62, 63, 71, 36, static const unsigned short int yyrline[] =
37, 38, 39, 40, 64, 82, 83, 41, 109, 66, {
100, 101, 120, 121, 122, 123, 144, 145, 42, 137, 0, 102, 102, 103, 107, 107, 113, 113, 115, 116,
138, 51, 72, 73, 74, 102, 103, 104, 105, 117, 117, 118, 119, 120, 124, 138, 139, 143, 151, 164,
43, 90, 44 170, 171, 175, 176, 180, 186, 190, 191, 192, 193,
194, 198, 199, 200, 201, 205, 207, 209, 213, 220,
227, 236, 237, 238, 242, 243, 244, 245, 246, 247,
248, 249, 250, 251, 252, 256, 261, 262, 266, 267,
271, 271, 271, 272, 280, 281, 285, 294, 296, 298,
300, 302, 309, 310, 314, 315, 316, 318, 320, 322,
324, 329, 330, 331, 335, 336, 340, 341, 346, 351,
353, 357, 358, 366, 370, 372, 374, 376, 378, 383,
392, 393, 398, 403, 404, 408, 409, 413, 414, 418,
420, 425, 426, 430, 431, 435, 436, 437, 441, 445,
446, 450, 454, 455, 459
}; };
#endif
static const short yypact[] = {-32768, #if YYDEBUG || YYERROR_VERBOSE
15,-32768, 197,-32768, 23,-32768,-32768,-32768,-32768,-32768, /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-18,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-32768, -28,-32768, -25,-32768,-32768,-32768, -26, -22, -12, static const char *const yytname[] =
-32768,-32768,-32768,-32768, 49, 493,-32768,-32768,-32768,-32768, {
-32768,-32768,-32768,-32768,-32768,-32768,-32768, 27, -8, 101, "$end", "error", "$undefined", "ASM_KEYW", "ATTRIBUTE_KEYW",
-32768, 493, -8,-32768, 493, 10,-32768,-32768, 11, 9, "AUTO_KEYW", "BOOL_KEYW", "CHAR_KEYW", "CONST_KEYW", "DOUBLE_KEYW",
18, 26,-32768, 49, -15, -13,-32768,-32768,-32768, 25, "ENUM_KEYW", "EXTERN_KEYW", "FLOAT_KEYW", "INLINE_KEYW", "INT_KEYW",
24, 48, 149,-32768,-32768, 49,-32768, 414, 39, 40, "LONG_KEYW", "REGISTER_KEYW", "RESTRICT_KEYW", "SHORT_KEYW",
47,-32768, 9,-32768,-32768, 49,-32768,-32768,-32768, 66, "SIGNED_KEYW", "STATIC_KEYW", "STRUCT_KEYW", "TYPEDEF_KEYW",
-32768, 241,-32768,-32768, 50,-32768, 5, 65, 42, 66, "UNION_KEYW", "UNSIGNED_KEYW", "VOID_KEYW", "VOLATILE_KEYW",
17, 56, 55,-32768,-32768,-32768, 60,-32768, 75,-32768, "TYPEOF_KEYW", "EXPORT_SYMBOL_KEYW", "ASM_PHRASE", "ATTRIBUTE_PHRASE",
80,-32768,-32768,-32768,-32768,-32768, 81, 82, 370, 85, "BRACE_PHRASE", "BRACKET_PHRASE", "EXPRESSION_PHRASE", "CHAR", "DOTS",
98, 89,-32768,-32768, 88,-32768, 91,-32768,-32768,-32768, "IDENT", "INT", "REAL", "STRING", "TYPE", "OTHER", "FILENAME", "';'",
-32768, 284,-32768, 24,-32768, 103,-32768,-32768,-32768,-32768, "'}'", "','", "'('", "'*'", "')'", "'='", "'{'", "':'", "$accept",
-32768, 8, 43,-32768, 30,-32768,-32768, 457,-32768,-32768, "declaration_seq", "declaration", "@1", "declaration1", "@2",
92, 93,-32768,-32768, 95,-32768, 96,-32768,-32768, 327, "simple_declaration", "init_declarator_list_opt", "init_declarator_list",
-32768,-32768,-32768,-32768,-32768,-32768, 99, 104,-32768,-32768, "init_declarator", "decl_specifier_seq_opt", "decl_specifier_seq",
148,-32768 "decl_specifier", "storage_class_specifier", "type_specifier",
"simple_type_specifier", "ptr_operator", "cvar_qualifier_seq_opt",
"cvar_qualifier_seq", "cvar_qualifier", "declarator",
"direct_declarator", "nested_declarator", "direct_nested_declarator",
"parameter_declaration_clause", "parameter_declaration_list_opt",
"parameter_declaration_list", "parameter_declaration",
"m_abstract_declarator", "direct_m_abstract_declarator",
"function_definition", "initializer_opt", "initializer", "class_body",
"member_specification_opt", "member_specification", "member_declaration",
"member_declarator_list_opt", "member_declarator_list",
"member_declarator", "member_bitfield_declarator", "attribute_opt",
"asm_definition", "asm_phrase_opt", "export_definition", 0
}; };
#endif
static const short yypgoto[] = {-32768, # ifdef YYPRINT
152,-32768,-32768,-32768, 119,-32768,-32768, 94, 0, -55, /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
-35,-32768,-32768,-32768, -69,-32768,-32768, -56, -30,-32768, token YYLEX-NUM. */
-76,-32768, -122,-32768,-32768, 29, -62,-32768,-32768,-32768, static const unsigned short int yytoknum[] =
-32768, -17,-32768,-32768, 105,-32768,-32768, 52, 86, 83, {
-32768,-32768,-32768 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, 59, 125, 44, 40, 42, 41, 61,
123, 58
}; };
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const unsigned char yyr1[] =
{
0, 52, 53, 53, 55, 54, 57, 56, 56, 56,
56, 56, 56, 56, 58, 59, 59, 60, 60, 61,
62, 62, 63, 63, 64, 64, 65, 65, 65, 65,
65, 66, 66, 66, 66, 66, 66, 66, 66, 66,
66, 66, 66, 66, 67, 67, 67, 67, 67, 67,
67, 67, 67, 67, 67, 68, 69, 69, 70, 70,
71, 71, 71, 71, 72, 72, 73, 73, 73, 73,
73, 73, 74, 74, 75, 75, 75, 75, 75, 75,
75, 76, 76, 76, 77, 77, 78, 78, 79, 80,
80, 81, 81, 81, 81, 81, 81, 81, 81, 82,
83, 83, 84, 85, 85, 86, 86, 87, 87, 88,
88, 89, 89, 90, 90, 91, 91, 91, 92, 93,
93, 94, 95, 95, 96
};
#define YYLAST 533 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const unsigned char yyr2[] =
{
static const short yytable[] = { 78, 0, 2, 1, 2, 0, 2, 0, 3, 1, 1,
67, 99, 35, 84, 65, 125, 54, 49, 155, 152, 1, 1, 2, 2, 3, 0, 1, 1, 3, 4,
53, 80, 47, 88, 171, 89, 9, 48, 91, 55, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1,
127, 50, 129, 56, 50, 18, 114, 99, 81, 99, 1, 1, 1, 5, 4, 2, 2, 2, 3, 3,
57, 69, 92, 87, 27, 77, 119, 168, 31, -89, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1,
126, 50, 67, 140, 96, 79, 58, 156, 131, 143, 1, 1, 1, 1, 1, 2, 0, 1, 1, 2,
97, 76, 60, 142, -89, 60, 59, 68, 60, 95, 1, 1, 1, 1, 2, 1, 1, 4, 4, 2,
85, 159, 132, 96, 99, 45, 46, 93, 94, 97, 3, 3, 2, 1, 1, 1, 4, 4, 2, 3,
86, 60, 143, 143, 98, 160, 119, 126, 140, 157, 3, 2, 1, 3, 0, 1, 1, 3, 2, 2,
158, 96, 156, 67, 58, 111, 112, 97, 142, 60, 1, 0, 1, 1, 4, 4, 2, 3, 3, 3,
60, 106, 119, 113, 59, 116, 60, 128, 133, 134, 0, 1, 2, 3, 3, 0, 1, 1, 2, 3,
98, 70, 93, 88, 119, 6, 7, 8, 9, 10, 2, 0, 1, 1, 3, 2, 2, 1, 2, 0,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1, 2, 0, 1, 5
21, 22, 135, 24, 25, 26, 27, 28, 139, 136,
31, 146, 147, 148, 149, 154, -19, 150, 163, 164,
32, 165, 166, -19, -103, 169, -19, 172, -19, 107,
170, -19, 4, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
75, 24, 25, 26, 27, 28, 162, 108, 31, 115,
124, 0, 130, 0, -19, 153, 0, 0, 32, 0,
0, -19, -104, 0, -19, 0, -19, 5, 0, -19,
0, 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, 0, 0, 0,
0, 0, -19, 0, 0, 0, 32, 0, 0, -19,
0, 118, -19, 0, -19, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 0, 24, 25, 26, 27, 28, 0, 0,
31, 0, 0, 0, 0, -82, 0, 0, 0, 0,
32, 0, 0, 0, 151, 0, 0, -82, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 0, 24, 25, 26, 27,
28, 0, 0, 31, 0, 0, 0, 0, -82, 0,
0, 0, 0, 32, 0, 0, 0, 167, 0, 0,
-82, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 0, 24,
25, 26, 27, 28, 0, 0, 31, 0, 0, 0,
0, -82, 0, 0, 0, 0, 32, 0, 0, 0,
0, 0, 0, -82, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 0, 24, 25, 26, 27, 28, 0, 0, 31,
0, 0, 0, 0, 0, 140, 0, 0, 0, 141,
0, 0, 0, 0, 0, 142, 0, 60, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 0, 24, 25, 26, 27,
28, 0, 0, 31, 0, 0, 0, 0, 0, 0,
0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
110, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 0, 24,
25, 26, 27, 28, 0, 0, 31, 0, 0, 0,
0, 161, 0, 0, 0, 0, 32, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 0, 24, 25, 26, 27, 28,
0, 0, 31, 0, 0, 0, 0, 0, 0, 0,
0, 0, 32
}; };
static const short yycheck[] = { 55, /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
36, 71, 3, 60, 35, 1, 24, 36, 1, 132, STATE-NUM when YYTABLE doesn't specify something else to do. Zero
36, 1, 31, 29, 0, 31, 8, 36, 32, 46, means the default is an error. */
97, 50, 99, 46, 50, 17, 83, 97, 59, 99, static const unsigned char yydefact[] =
43, 49, 46, 64, 26, 53, 92, 160, 30, 32, {
36, 50, 78, 36, 40, 36, 36, 40, 32, 119, 4, 4, 2, 0, 1, 3, 0, 26, 53, 44,
46, 52, 48, 46, 47, 48, 46, 31, 48, 36, 60, 51, 0, 29, 50, 30, 46, 47, 27, 63,
43, 32, 46, 40, 134, 43, 44, 43, 44, 46, 45, 48, 28, 0, 6, 0, 49, 52, 61, 0,
45, 48, 142, 143, 51, 46, 132, 36, 36, 142, 0, 0, 62, 54, 5, 8, 15, 21, 22, 24,
143, 40, 40, 119, 36, 47, 47, 46, 46, 48, 25, 31, 32, 9, 10, 11, 12, 13, 41, 37,
48, 44, 148, 47, 46, 30, 48, 33, 43, 45, 35, 0, 42, 20, 36, 43, 0, 0, 121, 66,
51, 1, 43, 29, 160, 5, 6, 7, 8, 9, 0, 56, 0, 16, 17, 0, 122, 65, 23, 40,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 38, 0, 111, 0, 0, 107, 7, 15, 39, 0,
20, 21, 43, 23, 24, 25, 26, 27, 47, 49, 0, 0, 0, 55, 57, 58, 14, 0, 64, 123,
30, 47, 35, 45, 47, 33, 36, 47, 47, 47, 99, 119, 69, 0, 110, 104, 74, 75, 0, 0,
40, 47, 47, 43, 44, 47, 46, 0, 48, 1, 0, 119, 73, 0, 112, 113, 117, 103, 0, 108,
47, 51, 1, 5, 6, 7, 8, 9, 10, 11, 122, 0, 34, 0, 71, 70, 59, 18, 120, 100,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 91, 0, 82, 85, 86, 116, 0, 74, 0,
52, 23, 24, 25, 26, 27, 148, 73, 30, 86, 118, 72, 115, 78, 0, 109, 0, 33, 124, 0,
95, -1, 100, -1, 36, 134, -1, -1, 40, -1, 19, 101, 68, 92, 54, 0, 91, 88, 90, 67,
-1, 43, 44, -1, 46, -1, 48, 1, -1, 51, 81, 0, 80, 79, 0, 0, 114, 102, 0, 93,
-1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 0, 89, 96, 0, 83, 87, 77, 76, 98, 97,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 95, 94
24, 25, 26, 27, 28, 29, 30, -1, -1, -1,
-1, -1, 36, -1, -1, -1, 40, -1, -1, 43,
-1, 1, 46, -1, 48, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, -1, 23, 24, 25, 26, 27, -1, -1,
30, -1, -1, -1, -1, 35, -1, -1, -1, -1,
40, -1, -1, -1, 1, -1, -1, 47, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, 26,
27, -1, -1, 30, -1, -1, -1, -1, 35, -1,
-1, -1, -1, 40, -1, -1, -1, 1, -1, -1,
47, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, -1, 23,
24, 25, 26, 27, -1, -1, 30, -1, -1, -1,
-1, 35, -1, -1, -1, -1, 40, -1, -1, -1,
-1, -1, -1, 47, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, -1, 23, 24, 25, 26, 27, -1, -1, 30,
-1, -1, -1, -1, -1, 36, -1, -1, -1, 40,
-1, -1, -1, -1, -1, 46, -1, 48, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, -1, 23, 24, 25, 26,
27, -1, -1, 30, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 40, -1, -1, -1, -1, -1, -1,
47, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, -1, 23,
24, 25, 26, 27, -1, -1, 30, -1, -1, -1,
-1, 35, -1, -1, -1, -1, 40, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, -1, 23, 24, 25, 26, 27,
-1, -1, 30, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 40
}; };
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/lib/bison.simple"
/* This file comes from bison-1.28. */
/* Skeleton output parser for bison, /* YYDEFGOTO[NTERM-NUM]. */
Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. static const short int yydefgoto[] =
{
-1, 1, 2, 3, 34, 53, 35, 62, 63, 64,
72, 37, 38, 39, 40, 41, 65, 83, 84, 42,
110, 67, 101, 102, 122, 123, 124, 125, 147, 148,
43, 140, 141, 52, 73, 74, 75, 103, 104, 105,
106, 119, 44, 91, 45
};
This program is free software; you can redistribute it and/or modify /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
it under the terms of the GNU General Public License as published by STATE-NUM. */
the Free Software Foundation; either version 2, or (at your option) #define YYPACT_NINF -128
any later version. static const short int yypact[] =
{
-128, 13, -128, 329, -128, -128, 36, -128, -128, -128,
-128, -128, -16, -128, -128, -128, -128, -128, -128, -128,
-128, -128, -128, -25, -128, -24, -128, -128, -128, -29,
-4, -22, -128, -128, -128, -128, -28, 495, -128, -128,
-128, -128, -128, -128, -128, -128, -128, -128, -128, 16,
-23, 103, -128, 495, -23, -128, 495, 35, -128, -128,
3, 15, 9, 17, -128, -28, -15, -8, -128, -128,
-128, 47, 23, 44, 150, -128, -128, -28, -128, 372,
33, 48, 49, -128, 15, -128, -128, -28, -128, -128,
-128, 64, -128, 197, -128, -128, 50, -128, 21, 65,
37, 64, 14, 56, 55, -128, -128, -128, 59, -128,
74, 57, -128, 63, -128, -128, -128, -128, -128, 76,
83, 416, 84, 99, 90, -128, -128, 88, -128, 89,
-128, -128, -128, -128, 241, -128, 23, -128, -128, 105,
-128, -128, -128, -128, -128, 8, 46, -128, 26, -128,
-128, 459, -128, -128, 92, 93, -128, -128, 94, -128,
96, -128, -128, 285, -128, -128, -128, -128, -128, -128,
97, 100, -128, -128
};
This program is distributed in the hope that it will be useful, /* YYPGOTO[NTERM-NUM]. */
but WITHOUT ANY WARRANTY; without even the implied warranty of static const short int yypgoto[] =
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the {
GNU General Public License for more details. -128, -128, 151, -128, -128, -128, 119, -128, -128, 66,
0, -56, -36, -128, -128, -128, -70, -128, -128, -51,
-31, -128, -11, -128, -127, -128, -128, 27, -81, -128,
-128, -128, -128, -19, -128, -128, 107, -128, -128, 43,
86, 82, -128, -128, -128
};
You should have received a copy of the GNU General Public License /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
along with this program; if not, write to the Free Software positive, shift that token. If negative, reduce the rule which
Foundation, Inc., 59 Temple Place - Suite 330, number is the opposite. If zero, do what YYDEFACT says.
Boston, MA 02111-1307, USA. */ If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -107
static const short int yytable[] =
{
79, 68, 100, 36, 81, 66, 55, 155, 59, 158,
85, 50, 54, 4, 89, 48, 90, 56, 60, 61,
49, 58, 127, 10, 92, 51, 51, 51, 100, 82,
100, 70, 19, 116, 88, 78, 171, 121, 93, 59,
-91, 28, 57, 68, 143, 32, 133, 69, 159, 60,
61, 146, 86, 77, 145, 61, -91, 128, 162, 96,
134, 97, 87, 97, 160, 161, 100, 98, 61, 98,
61, 80, 163, 128, 99, 146, 146, 97, 121, 46,
47, 113, 143, 98, 61, 68, 159, 129, 107, 131,
94, 95, 145, 61, 118, 121, 114, 115, 130, 135,
136, 99, 94, 89, 71, 137, 138, 121, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 139, 25, 26, 27, 28,
29, 142, 149, 32, 150, 151, 152, 153, 157, -20,
166, 167, 168, 33, 169, 172, -20, -105, 173, -20,
-20, 108, 5, 117, -20, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 76, 25, 26, 27, 28, 29, 165, 156,
32, 109, 126, 132, 0, 0, -20, 0, 0, 0,
33, 0, 0, -20, -106, 0, -20, -20, 120, 0,
0, -20, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
25, 26, 27, 28, 29, 0, 0, 32, 0, 0,
0, 0, -84, 0, 0, 0, 0, 33, 0, 0,
0, 0, 154, 0, 0, -84, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 0, 25, 26, 27, 28, 29, 0,
0, 32, 0, 0, 0, 0, -84, 0, 0, 0,
0, 33, 0, 0, 0, 0, 170, 0, 0, -84,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 0, 25, 26,
27, 28, 29, 0, 0, 32, 0, 0, 0, 0,
-84, 0, 0, 0, 0, 33, 0, 0, 0, 0,
6, 0, 0, -84, 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,
0, 0, 0, 0, 0, -20, 0, 0, 0, 33,
0, 0, -20, 0, 0, -20, -20, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 0, 25, 26, 27, 28, 29,
0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
0, 0, 33, 0, 0, 0, 0, 0, 0, 111,
112, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 0, 25,
26, 27, 28, 29, 0, 0, 32, 0, 0, 0,
0, 0, 143, 0, 0, 0, 144, 0, 0, 0,
0, 0, 145, 61, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 0, 25, 26, 27, 28, 29, 0, 0, 32,
0, 0, 0, 0, 164, 0, 0, 0, 0, 33,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 0, 25, 26,
27, 28, 29, 0, 0, 32, 0, 0, 0, 0,
0, 0, 0, 0, 0, 33
};
/* As a special exception, when this file is copied by Bison into a static const short int yycheck[] =
Bison output file, you may use that output file without restriction. {
This special exception was added by the Free Software Foundation 56, 37, 72, 3, 1, 36, 25, 134, 36, 1,
in version 1.24 of Bison. */ 61, 36, 36, 0, 29, 31, 31, 46, 46, 47,
36, 43, 1, 8, 32, 50, 50, 50, 98, 60,
100, 50, 17, 84, 65, 54, 163, 93, 46, 36,
32, 26, 46, 79, 36, 30, 32, 31, 40, 46,
47, 121, 43, 53, 46, 47, 48, 36, 32, 36,
46, 40, 45, 40, 145, 146, 136, 46, 47, 46,
47, 36, 46, 36, 51, 145, 146, 40, 134, 43,
44, 48, 36, 46, 47, 121, 40, 98, 44, 100,
43, 44, 46, 47, 30, 151, 48, 48, 33, 43,
45, 51, 43, 29, 1, 48, 43, 163, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 49, 23, 24, 25, 26,
27, 48, 48, 30, 35, 45, 48, 48, 33, 36,
48, 48, 48, 40, 48, 48, 43, 44, 48, 46,
47, 1, 1, 87, 51, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 53, 23, 24, 25, 26, 27, 151, 136,
30, 74, 96, 101, -1, -1, 36, -1, -1, -1,
40, -1, -1, 43, 44, -1, 46, 47, 1, -1,
-1, 51, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, -1,
23, 24, 25, 26, 27, -1, -1, 30, -1, -1,
-1, -1, 35, -1, -1, -1, -1, 40, -1, -1,
-1, -1, 1, -1, -1, 48, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, -1, 23, 24, 25, 26, 27, -1,
-1, 30, -1, -1, -1, -1, 35, -1, -1, -1,
-1, 40, -1, -1, -1, -1, 1, -1, -1, 48,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
25, 26, 27, -1, -1, 30, -1, -1, -1, -1,
35, -1, -1, -1, -1, 40, -1, -1, -1, -1,
1, -1, -1, 48, 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,
-1, -1, -1, -1, -1, 36, -1, -1, -1, 40,
-1, -1, 43, -1, -1, 46, 47, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, -1, 23, 24, 25, 26, 27,
-1, -1, 30, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 40, -1, -1, -1, -1, -1, -1, 47,
48, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, -1, 23,
24, 25, 26, 27, -1, -1, 30, -1, -1, -1,
-1, -1, 36, -1, -1, -1, 40, -1, -1, -1,
-1, -1, 46, 47, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, -1, 23, 24, 25, 26, 27, -1, -1, 30,
-1, -1, -1, -1, 35, -1, -1, -1, -1, 40,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
25, 26, 27, -1, -1, 30, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 40
};
/* This is the parser code that is written into each bison parser /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
when the %semantic_parser declaration is not specified in the grammar. symbol of state STATE-NUM. */
It was written by Richard Stallman by simplifying the hairy parser static const unsigned char yystos[] =
used when %semantic_parser is specified. */ {
0, 53, 54, 55, 0, 54, 1, 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, 40, 56, 58, 62, 63, 64, 65,
66, 67, 71, 82, 94, 96, 43, 44, 31, 36,
36, 50, 85, 57, 36, 85, 46, 46, 43, 36,
46, 47, 59, 60, 61, 68, 72, 73, 64, 31,
85, 1, 62, 86, 87, 88, 58, 62, 85, 63,
36, 1, 72, 69, 70, 71, 43, 45, 72, 29,
31, 95, 32, 46, 43, 44, 36, 40, 46, 51,
68, 74, 75, 89, 90, 91, 92, 44, 1, 88,
72, 47, 48, 48, 48, 48, 71, 61, 30, 93,
1, 63, 76, 77, 78, 79, 92, 1, 36, 74,
33, 74, 93, 32, 46, 43, 45, 48, 43, 49,
83, 84, 48, 36, 40, 46, 68, 80, 81, 48,
35, 45, 48, 48, 1, 76, 91, 33, 1, 40,
80, 80, 32, 46, 35, 79, 48, 48, 48, 48,
1, 76, 48, 48
};
#ifndef YYSTACK_USE_ALLOCA #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
#ifdef alloca # define YYSIZE_T __SIZE_TYPE__
#define YYSTACK_USE_ALLOCA
#else /* alloca not defined */
#ifdef __GNUC__
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca
#else /* not GNU C. */
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
#define YYSTACK_USE_ALLOCA
#include <alloca.h>
#else /* not sparc */
/* We think this test detects Watcom and Microsoft C. */
/* This used to test MSDOS, but that is a bad idea
since that symbol is in the user namespace. */
#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
#if 0 /* No need for malloc.h, which pollutes the namespace;
instead, just don't use alloca. */
#include <malloc.h>
#endif #endif
#else /* not MSDOS, or __TURBOC__ */ #if ! defined (YYSIZE_T) && defined (size_t)
#if defined(_AIX) # define YYSIZE_T size_t
/* I don't know what this was needed for, but it pollutes the namespace.
So I turned it off. rms, 2 May 1997. */
/* #include <malloc.h> */
#pragma alloca
#define YYSTACK_USE_ALLOCA
#else /* not MSDOS, or __TURBOC__, or _AIX */
#if 0
#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
and on HPUX 10. Eventually we can turn this on. */
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca
#endif /* __hpux */
#endif #endif
#endif /* not _AIX */ #if ! defined (YYSIZE_T)
#endif /* not MSDOS, or __TURBOC__ */ # if defined (__STDC__) || defined (__cplusplus)
#endif /* not sparc */ # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
#endif /* not GNU C */ # define YYSIZE_T size_t
#endif /* alloca not defined */ # endif
#endif /* YYSTACK_USE_ALLOCA not defined */ #endif
#if ! defined (YYSIZE_T)
#ifdef YYSTACK_USE_ALLOCA # define YYSIZE_T unsigned int
#define YYSTACK_ALLOC alloca
#else
#define YYSTACK_ALLOC malloc
#endif #endif
/* Note: there must be only one dollar sign in this file.
It is replaced by the list of actions, each action
as one case of the switch. */
#define yyerrok (yyerrstatus = 0) #define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY) #define yyclearin (yychar = YYEMPTY)
#define YYEMPTY -2 #define YYEMPTY (-2)
#define YYEOF 0 #define YYEOF 0
#define YYACCEPT goto yyacceptlab #define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab #define YYABORT goto yyabortlab
#define YYERROR goto yyerrlab1 #define YYERROR goto yyerrorlab
/* Like YYERROR except do call yyerror.
This remains here temporarily to ease the
transition to the new meaning of YYERROR, for GCC. /* 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. */ Once GCC version 2 has supplanted version 1, this can go. */
#define YYFAIL goto yyerrlab #define YYFAIL goto yyerrlab
#define YYRECOVERING() (!!yyerrstatus) #define YYRECOVERING() (!!yyerrstatus)
#define YYBACKUP(token, value) \
#define YYBACKUP(Token, Value) \
do \ do \
if (yychar == YYEMPTY && yylen == 1) \ if (yychar == YYEMPTY && yylen == 1) \
{ yychar = (token), yylval = (value); \ { \
yychar1 = YYTRANSLATE (yychar); \ yychar = (Token); \
yylval = (Value); \
yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK; \ YYPOPSTACK; \
goto yybackup; \ goto yybackup; \
} \ } \
else \ else \
{ yyerror ("syntax error: cannot back up"); YYERROR; } \ { \
yyerror ("syntax error: cannot back up");\
YYERROR; \
} \
while (0) while (0)
#define YYTERROR 1 #define YYTERROR 1
#define YYERRCODE 256 #define YYERRCODE 256
#ifndef YYPURE
#define YYLEX yylex() /* 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 (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 (0)
#endif #endif
#ifdef YYPURE
#ifdef YYLSP_NEEDED /* YY_LOCATION_PRINT -- Print the location on the stream.
#ifdef YYLEX_PARAM This macro was not mandated originally: define only if we know
#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) we won't break user code: when these are the locations we know. */
#else
#define YYLEX yylex(&yylval, &yylloc) #ifndef YY_LOCATION_PRINT
# if 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 #endif
#else /* not YYLSP_NEEDED */
/* YYLEX -- calling `yylex' with the right arguments. */
#ifdef YYLEX_PARAM #ifdef YYLEX_PARAM
#define YYLEX yylex(&yylval, YYLEX_PARAM) # define YYLEX yylex (YYLEX_PARAM)
#else #else
#define YYLEX yylex(&yylval) # define YYLEX yylex ()
#endif #endif
#endif /* not YYLSP_NEEDED */
/* 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 (0)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
do { \
if (yydebug) \
{ \
YYFPRINTF (stderr, "%s ", Title); \
yysymprint (stderr, \
Type, Value); \
YYFPRINTF (stderr, "\n"); \
} \
} while (0)
/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included). |
`------------------------------------------------------------------*/
#if defined (__STDC__) || defined (__cplusplus)
static void
yy_stack_print (short int *bottom, short int *top)
#else
static void
yy_stack_print (bottom, top)
short int *bottom;
short int *top;
#endif #endif
{
YYFPRINTF (stderr, "Stack now");
for (/* Nothing. */; bottom <= top; ++bottom)
YYFPRINTF (stderr, " %d", *bottom);
YYFPRINTF (stderr, "\n");
}
/* If nonreentrant, generate the variables here */ # define YY_STACK_PRINT(Bottom, Top) \
do { \
if (yydebug) \
yy_stack_print ((Bottom), (Top)); \
} while (0)
#ifndef YYPURE
int yychar; /* the lookahead symbol */ /*------------------------------------------------.
YYSTYPE yylval; /* the semantic value of the */ | Report that the YYRULE is going to be reduced. |
/* lookahead symbol */ `------------------------------------------------*/
#ifdef YYLSP_NEEDED #if defined (__STDC__) || defined (__cplusplus)
YYLTYPE yylloc; /* location data for the lookahead */ static void
/* symbol */ yy_reduce_print (int yyrule)
#else
static void
yy_reduce_print (yyrule)
int yyrule;
#endif #endif
{
int yyi;
unsigned int yylno = yyrline[yyrule];
YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
yyrule - 1, yylno);
/* Print the symbols being reduced, and their result. */
for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
}
int yynerrs; /* number of parse errors so far */ # define YY_REDUCE_PRINT(Rule) \
#endif /* not YYPURE */ do { \
if (yydebug) \
yy_reduce_print (Rule); \
} while (0)
#if YYDEBUG != 0 /* Nonzero means print parse trace. It is left uninitialized so that
int yydebug; /* nonzero means print parse trace */ multiple parsers can coexist. */
/* Since this is uninitialized, it does not stop multiple parsers int yydebug;
from coexisting. */ #else /* !YYDEBUG */
#endif # 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 indicates the initial size of the parser's stacks */
/* YYINITDEPTH -- initial size of the parser's stacks. */
#ifndef YYINITDEPTH #ifndef YYINITDEPTH
#define YYINITDEPTH 200 # define YYINITDEPTH 200
#endif #endif
/* YYMAXDEPTH is the maximum size the stacks can grow to /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
(effective only if the built-in stack extension method is used). */ if the built-in stack extension method is used).
#if YYMAXDEPTH == 0 Do not make this value too large; the results are undefined if
#undef YYMAXDEPTH SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
#endif evaluated with infinite-precision integer arithmetic. */
#ifndef YYMAXDEPTH #ifndef YYMAXDEPTH
#define YYMAXDEPTH 10000 # define YYMAXDEPTH 10000
#endif #endif
/* Define __yy_memcpy. Note that the size argument
should be passed with type unsigned int, because that is what the non-GCC #if YYERROR_VERBOSE
definitions require. With GCC, __builtin_memcpy takes an arg
of type size_t, but it can handle unsigned int. */ # ifndef yystrlen
# if defined (__GLIBC__) && defined (_STRING_H)
#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ # define yystrlen strlen
#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) # else
#else /* not GNU C or C++ */ /* Return the length of YYSTR. */
#ifndef __cplusplus static YYSIZE_T
# if defined (__STDC__) || defined (__cplusplus)
/* This is the most reliable way to avoid incompatibilities yystrlen (const char *yystr)
in available built-in functions on various systems. */ # else
static void yystrlen (yystr)
__yy_memcpy (to, from, count) const char *yystr;
char *to; # endif
char *from; {
unsigned int count; register const char *yys = yystr;
while (*yys++ != '\0')
continue;
return yys - yystr - 1;
}
# 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. */
static char *
# if defined (__STDC__) || defined (__cplusplus)
yystpcpy (char *yydest, const char *yysrc)
# else
yystpcpy (yydest, yysrc)
char *yydest;
const char *yysrc;
# endif
{ {
register char *f = from; register char *yyd = yydest;
register char *t = to; register const char *yys = yysrc;
register int i = count;
while (i-- > 0) while ((*yyd++ = *yys++) != '\0')
*t++ = *f++; continue;
return yyd - 1;
} }
# endif
# endif
#endif /* !YYERROR_VERBOSE */
#else /* __cplusplus */
#if YYDEBUG
/*--------------------------------.
| Print this symbol on YYOUTPUT. |
`--------------------------------*/
/* This is the most reliable way to avoid incompatibilities #if defined (__STDC__) || defined (__cplusplus)
in available built-in functions on various systems. */
static void static void
__yy_memcpy (char *to, char *from, unsigned int count) yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
#else
static void
yysymprint (yyoutput, yytype, yyvaluep)
FILE *yyoutput;
int yytype;
YYSTYPE *yyvaluep;
#endif
{ {
register char *t = to; /* Pacify ``unused variable'' warnings. */
register char *f = from; (void) yyvaluep;
register int i = count;
while (i-- > 0) if (yytype < YYNTOKENS)
*t++ = *f++; YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
else
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
# ifdef YYPRINT
if (yytype < YYNTOKENS)
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# endif
switch (yytype)
{
default:
break;
}
YYFPRINTF (yyoutput, ")");
} }
#endif /* ! YYDEBUG */
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
`-----------------------------------------------*/
#if defined (__STDC__) || defined (__cplusplus)
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 #endif
#endif {
/* Pacify ``unused variable'' warnings. */
(void) yyvaluep;
if (!yymsg)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
switch (yytype)
{
default:
break;
}
}
#line 217 "/usr/lib/bison.simple"
/* The user can define YYPARSE_PARAM as the name of an argument to be passed /* Prevent warnings from -Wmissing-prototypes. */
into yyparse. The argument should have type void *.
It should actually point to an object.
Grammar actions can access the variable by casting it
to the proper pointer type. */
#ifdef YYPARSE_PARAM #ifdef YYPARSE_PARAM
#ifdef __cplusplus # if defined (__STDC__) || defined (__cplusplus)
#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM int yyparse (void *YYPARSE_PARAM);
#define YYPARSE_PARAM_DECL # else
#else /* not __cplusplus */ int yyparse ();
#define YYPARSE_PARAM_ARG YYPARSE_PARAM # endif
#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; #else /* ! YYPARSE_PARAM */
#endif /* not __cplusplus */ #if defined (__STDC__) || defined (__cplusplus)
#else /* not YYPARSE_PARAM */
#define YYPARSE_PARAM_ARG
#define YYPARSE_PARAM_DECL
#endif /* not YYPARSE_PARAM */
/* Prevent warning if -Wstrict-prototypes. */
#ifdef __GNUC__
#ifdef YYPARSE_PARAM
int yyparse (void *);
#else
int yyparse (void); int yyparse (void);
#else
int yyparse ();
#endif #endif
#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 (__cplusplus)
int yyparse (void *YYPARSE_PARAM)
# else
int yyparse (YYPARSE_PARAM)
void *YYPARSE_PARAM;
# endif
#else /* ! YYPARSE_PARAM */
#if defined (__STDC__) || defined (__cplusplus)
int
yyparse (void)
#else
int int
yyparse(YYPARSE_PARAM_ARG) yyparse ()
YYPARSE_PARAM_DECL
#endif
#endif
{ {
register int yystate; register int yystate;
register int yyn; register int yyn;
register short *yyssp; 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;
/* 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. */
short int yyssa[YYINITDEPTH];
short int *yyss = yyssa;
register short int *yyssp;
/* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs = yyvsa;
register YYSTYPE *yyvsp; register YYSTYPE *yyvsp;
int yyerrstatus; /* number of tokens to shift before error messages enabled */
int yychar1 = 0; /* lookahead token as an internal (translated) token number */
short yyssa[YYINITDEPTH]; /* the state stack */
YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
short *yyss = yyssa; /* refer to the stacks thru separate pointers */
YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
#ifdef YYLSP_NEEDED
YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
YYLTYPE *yyls = yylsa;
YYLTYPE *yylsp;
#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
#else
#define YYPOPSTACK (yyvsp--, yyssp--) #define YYPOPSTACK (yyvsp--, yyssp--)
#endif
int yystacksize = YYINITDEPTH; YYSIZE_T yystacksize = YYINITDEPTH;
int yyfree_stacks = 0;
#ifdef YYPURE /* The variables used to return semantic value and location from the
int yychar; action routines. */
YYSTYPE yylval; YYSTYPE yyval;
int yynerrs;
#ifdef YYLSP_NEEDED
YYLTYPE yylloc;
#endif
#endif
YYSTYPE yyval; /* the variable used to return */
/* semantic values from the action */
/* routines */
/* When reducing, the number of symbols on the RHS of the reduced
rule. */
int yylen; int yylen;
#if YYDEBUG != 0 YYDPRINTF ((stderr, "Starting parse\n"));
if (yydebug)
fprintf(stderr, "Starting parse\n");
#endif
yystate = 0; yystate = 0;
yyerrstatus = 0; yyerrstatus = 0;
...@@ -741,833 +1175,872 @@ yyparse(YYPARSE_PARAM_ARG) ...@@ -741,833 +1175,872 @@ yyparse(YYPARSE_PARAM_ARG)
so that they stay on the same level as the state stack. so that they stay on the same level as the state stack.
The wasted elements are never initialized. */ The wasted elements are never initialized. */
yyssp = yyss - 1; yyssp = yyss;
yyvsp = yyvs; yyvsp = yyvs;
#ifdef YYLSP_NEEDED
yylsp = yyls;
#endif
/* Push a new state, which is found in yystate . */
/* In all cases, when you get here, the value and location stacks
have just been pushed. so pushing a state here evens the stacks. */
yynewstate:
*++yyssp = yystate; yyvsp[0] = yylval;
if (yyssp >= yyss + yystacksize - 1) goto yysetstate;
{
/* 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;
short *yyss1 = yyss;
#ifdef YYLSP_NEEDED
YYLTYPE *yyls1 = yyls;
#endif
/*------------------------------------------------------------.
| 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. */ /* Get the current used size of the three stacks, in elements. */
int size = yyssp - yyss + 1; YYSIZE_T yysize = yyssp - yyss + 1;
#ifdef yyoverflow #ifdef yyoverflow
/* Each stack pointer address is followed by the size of {
the data in use in that stack, in bytes. */ /* Give user a chance to reallocate the stack. Use copies of
#ifdef YYLSP_NEEDED these so that the &'s don't force the real ones into
/* This used to be a conditional around just the two extra args, memory. */
but that might be undefined if yyoverflow is a macro. */ YYSTYPE *yyvs1 = yyvs;
yyoverflow("parser stack overflow", short int *yyss1 = yyss;
&yyss1, size * sizeof (*yyssp),
&yyvs1, size * sizeof (*yyvsp),
&yyls1, size * sizeof (*yylsp), /* Each stack pointer address is followed by the size of the
&yystacksize); data in use in that stack, in bytes. This used to be a
#else conditional around just the two extra args, but that might
yyoverflow("parser stack overflow", be undefined if yyoverflow is a macro. */
&yyss1, size * sizeof (*yyssp), yyoverflow ("parser stack overflow",
&yyvs1, size * sizeof (*yyvsp), &yyss1, yysize * sizeof (*yyssp),
&yystacksize); &yyvs1, yysize * sizeof (*yyvsp),
#endif
&yystacksize);
yyss = yyss1; yyvs = yyvs1;
#ifdef YYLSP_NEEDED yyss = yyss1;
yyls = yyls1; yyvs = yyvs1;
#endif }
#else /* no yyoverflow */ #else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
goto yyoverflowlab;
# else
/* Extend the stack our own way. */ /* Extend the stack our own way. */
if (yystacksize >= YYMAXDEPTH) if (YYMAXDEPTH <= yystacksize)
{ goto yyoverflowlab;
yyerror("parser stack overflow");
if (yyfree_stacks)
{
free (yyss);
free (yyvs);
#ifdef YYLSP_NEEDED
free (yyls);
#endif
}
return 2;
}
yystacksize *= 2; yystacksize *= 2;
if (yystacksize > YYMAXDEPTH) if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH; yystacksize = YYMAXDEPTH;
#ifndef YYSTACK_USE_ALLOCA
yyfree_stacks = 1; {
#endif short int *yyss1 = yyss;
yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); union yyalloc *yyptr =
__yy_memcpy ((char *)yyss, (char *)yyss1, (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
size * (unsigned int) sizeof (*yyssp)); if (! yyptr)
yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); goto yyoverflowlab;
__yy_memcpy ((char *)yyvs, (char *)yyvs1, YYSTACK_RELOCATE (yyss);
size * (unsigned int) sizeof (*yyvsp)); YYSTACK_RELOCATE (yyvs);
#ifdef YYLSP_NEEDED
yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); # undef YYSTACK_RELOCATE
__yy_memcpy ((char *)yyls, (char *)yyls1, if (yyss1 != yyssa)
size * (unsigned int) sizeof (*yylsp)); YYSTACK_FREE (yyss1);
#endif }
# endif
#endif /* no yyoverflow */ #endif /* no yyoverflow */
yyssp = yyss + size - 1; yyssp = yyss + yysize - 1;
yyvsp = yyvs + size - 1; yyvsp = yyvs + yysize - 1;
#ifdef YYLSP_NEEDED
yylsp = yyls + size - 1;
#endif
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Stack size increased to %d\n", yystacksize);
#endif
if (yyssp >= yyss + yystacksize - 1) YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
if (yyss + yystacksize - 1 <= yyssp)
YYABORT; YYABORT;
} }
#if YYDEBUG != 0 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
if (yydebug)
fprintf(stderr, "Entering state %d\n", yystate);
#endif
goto yybackup; goto yybackup;
yybackup:
/*-----------.
| yybackup. |
`-----------*/
yybackup:
/* Do appropriate processing given the current state. */ /* Do appropriate processing given the current state. */
/* Read a lookahead token if we need one and don't already have one. */ /* Read a look-ahead token if we need one and don't already have one. */
/* yyresume: */ /* yyresume: */
/* First try to decide what to do without reference to lookahead token. */ /* First try to decide what to do without reference to look-ahead token. */
yyn = yypact[yystate]; yyn = yypact[yystate];
if (yyn == YYFLAG) if (yyn == YYPACT_NINF)
goto yydefault; goto yydefault;
/* Not known => get a lookahead token if don't already have one. */ /* Not known => get a look-ahead token if don't already have one. */
/* yychar is either YYEMPTY or YYEOF
or a valid token in external form. */
/* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
if (yychar == YYEMPTY) if (yychar == YYEMPTY)
{ {
#if YYDEBUG != 0 YYDPRINTF ((stderr, "Reading a token: "));
if (yydebug)
fprintf(stderr, "Reading a token: ");
#endif
yychar = YYLEX; yychar = YYLEX;
} }
/* Convert token to internal form (in yychar1) for indexing tables with */ if (yychar <= YYEOF)
if (yychar <= 0) /* This means end of input. */
{ {
yychar1 = 0; yychar = yytoken = YYEOF;
yychar = YYEOF; /* Don't call YYLEX any more */ YYDPRINTF ((stderr, "Now at end of input.\n"));
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Now at end of input.\n");
#endif
} }
else else
{ {
yychar1 = YYTRANSLATE(yychar); yytoken = YYTRANSLATE (yychar);
YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
#if YYDEBUG != 0
if (yydebug)
{
fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
/* Give the individual parser a way to print the precise meaning
of a token, for further debugging info. */
#ifdef YYPRINT
YYPRINT (stderr, yychar, yylval);
#endif
fprintf (stderr, ")\n");
}
#endif
} }
yyn += yychar1; /* If the proper action on seeing token YYTOKEN is to reduce or to
if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) detect an error, take that action. */
yyn += yytoken;
if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
goto yydefault; goto yydefault;
yyn = yytable[yyn]; yyn = yytable[yyn];
if (yyn <= 0)
/* yyn is what to do for this token type in this state.
Negative => reduce, -yyn is rule number.
Positive => shift, yyn is new state.
New state is final state => don't bother to shift,
just return success.
0, or most negative number => error. */
if (yyn < 0)
{ {
if (yyn == YYFLAG) if (yyn == 0 || yyn == YYTABLE_NINF)
goto yyerrlab; goto yyerrlab;
yyn = -yyn; yyn = -yyn;
goto yyreduce; goto yyreduce;
} }
else if (yyn == 0)
goto yyerrlab;
if (yyn == YYFINAL) if (yyn == YYFINAL)
YYACCEPT; YYACCEPT;
/* Shift the lookahead token. */ /* Shift the look-ahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
#endif
/* Discard the token being shifted unless it is eof. */ /* Discard the token being shifted unless it is eof. */
if (yychar != YYEOF) if (yychar != YYEOF)
yychar = YYEMPTY; yychar = YYEMPTY;
*++yyvsp = yylval; *++yyvsp = yylval;
#ifdef YYLSP_NEEDED
*++yylsp = yylloc;
#endif
/* count tokens shifted since error; after three, turn off error status. */
if (yyerrstatus) yyerrstatus--; /* Count tokens shifted since error; after three, turn off error
status. */
if (yyerrstatus)
yyerrstatus--;
yystate = yyn; yystate = yyn;
goto yynewstate; goto yynewstate;
/* Do the default action for the current state. */
yydefault:
/*-----------------------------------------------------------.
| yydefault -- do the default action for the current state. |
`-----------------------------------------------------------*/
yydefault:
yyn = yydefact[yystate]; yyn = yydefact[yystate];
if (yyn == 0) if (yyn == 0)
goto yyerrlab; goto yyerrlab;
goto yyreduce;
/* Do a reduction. yyn is the number of a rule to reduce with. */
/*-----------------------------.
| yyreduce -- Do a reduction. |
`-----------------------------*/
yyreduce: yyreduce:
/* yyn is the number of a rule to reduce with. */
yylen = yyr2[yyn]; yylen = yyr2[yyn];
if (yylen > 0)
yyval = yyvsp[1-yylen]; /* implement default value of the action */
#if YYDEBUG != 0
if (yydebug)
{
int i;
fprintf (stderr, "Reducing via rule %d (line %d), ", /* If YYLEN is nonzero, implement the default value of the action:
yyn, yyrline[yyn]); `$$ = $1'.
/* Print the symbols being reduced, and their result. */
for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
fprintf (stderr, "%s ", yytname[yyrhs[i]]);
fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
}
#endif
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];
switch (yyn) {
case 3: YY_REDUCE_PRINT (yyn);
switch (yyn)
{
case 4:
#line 107 "scripts/genksyms/parse.y" #line 107 "scripts/genksyms/parse.y"
{ is_typedef = 0; is_extern = 0; current_name = NULL; decl_spec = NULL; ; { is_typedef = 0; is_extern = 0; current_name = NULL; decl_spec = NULL; ;}
break;} break;
case 4:
case 5:
#line 109 "scripts/genksyms/parse.y" #line 109 "scripts/genksyms/parse.y"
{ free_list(*yyvsp[0], NULL); *yyvsp[0] = NULL; ; { free_list(*(yyvsp[0]), NULL); *(yyvsp[0]) = NULL; ;}
break;} break;
case 5:
case 6:
#line 113 "scripts/genksyms/parse.y" #line 113 "scripts/genksyms/parse.y"
{ is_typedef = 1; ; { is_typedef = 1; ;}
break;} break;
case 6:
case 7:
#line 114 "scripts/genksyms/parse.y" #line 114 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ; { (yyval) = (yyvsp[0]); ;}
break;} break;
case 11:
case 12:
#line 119 "scripts/genksyms/parse.y" #line 119 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ; { (yyval) = (yyvsp[0]); ;}
break;} break;
case 12:
case 13:
#line 120 "scripts/genksyms/parse.y" #line 120 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ; { (yyval) = (yyvsp[0]); ;}
break;} break;
case 13:
case 14:
#line 125 "scripts/genksyms/parse.y" #line 125 "scripts/genksyms/parse.y"
{ if (current_name) { { if (current_name) {
struct string_list *decl = (*yyvsp[0])->next; struct string_list *decl = (*(yyvsp[0]))->next;
(*yyvsp[0])->next = NULL; (*(yyvsp[0]))->next = NULL;
add_symbol(current_name, add_symbol(current_name,
is_typedef ? SYM_TYPEDEF : SYM_NORMAL, is_typedef ? SYM_TYPEDEF : SYM_NORMAL,
decl, is_extern); decl, is_extern);
current_name = NULL; current_name = NULL;
} }
yyval = yyvsp[0]; (yyval) = (yyvsp[0]);
; ;}
break;} break;
case 14:
case 15:
#line 138 "scripts/genksyms/parse.y" #line 138 "scripts/genksyms/parse.y"
{ yyval = NULL; ; { (yyval) = NULL; ;}
break;} break;
case 16:
case 17:
#line 144 "scripts/genksyms/parse.y" #line 144 "scripts/genksyms/parse.y"
{ struct string_list *decl = *yyvsp[0]; { struct string_list *decl = *(yyvsp[0]);
*yyvsp[0] = NULL; *(yyvsp[0]) = NULL;
add_symbol(current_name, add_symbol(current_name,
is_typedef ? SYM_TYPEDEF : SYM_NORMAL, decl, is_extern); is_typedef ? SYM_TYPEDEF : SYM_NORMAL, decl, is_extern);
current_name = NULL; current_name = NULL;
yyval = yyvsp[0]; (yyval) = (yyvsp[0]);
; ;}
break;} break;
case 17:
case 18:
#line 152 "scripts/genksyms/parse.y" #line 152 "scripts/genksyms/parse.y"
{ struct string_list *decl = *yyvsp[0]; { struct string_list *decl = *(yyvsp[0]);
*yyvsp[0] = NULL; *(yyvsp[0]) = NULL;
free_list(*yyvsp[-1], NULL); free_list(*(yyvsp[-1]), NULL);
*yyvsp[-1] = decl_spec; *(yyvsp[-1]) = decl_spec;
add_symbol(current_name, add_symbol(current_name,
is_typedef ? SYM_TYPEDEF : SYM_NORMAL, decl, is_extern); is_typedef ? SYM_TYPEDEF : SYM_NORMAL, decl, is_extern);
current_name = NULL; current_name = NULL;
yyval = yyvsp[0]; (yyval) = (yyvsp[0]);
; ;}
break;} break;
case 18:
case 19:
#line 165 "scripts/genksyms/parse.y" #line 165 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1] ? yyvsp[-1] : yyvsp[-2] ? yyvsp[-2] : yyvsp[-3]; ; { (yyval) = (yyvsp[0]) ? (yyvsp[0]) : (yyvsp[-1]) ? (yyvsp[-1]) : (yyvsp[-2]) ? (yyvsp[-2]) : (yyvsp[-3]); ;}
break;} break;
case 19:
case 20:
#line 170 "scripts/genksyms/parse.y" #line 170 "scripts/genksyms/parse.y"
{ decl_spec = NULL; ; { decl_spec = NULL; ;}
break;} break;
case 21:
case 22:
#line 175 "scripts/genksyms/parse.y" #line 175 "scripts/genksyms/parse.y"
{ decl_spec = *yyvsp[0]; ; { decl_spec = *(yyvsp[0]); ;}
break;} break;
case 22:
case 23:
#line 176 "scripts/genksyms/parse.y" #line 176 "scripts/genksyms/parse.y"
{ decl_spec = *yyvsp[0]; ; { decl_spec = *(yyvsp[0]); ;}
break;} break;
case 23:
case 24:
#line 181 "scripts/genksyms/parse.y" #line 181 "scripts/genksyms/parse.y"
{ /* Version 2 checksumming ignores storage class, as that { /* Version 2 checksumming ignores storage class, as that
is really irrelevant to the linkage. */ is really irrelevant to the linkage. */
remove_node(yyvsp[0]); remove_node((yyvsp[0]));
yyval = yyvsp[0]; (yyval) = (yyvsp[0]);
; ;}
break;} break;
case 28:
case 29:
#line 193 "scripts/genksyms/parse.y" #line 193 "scripts/genksyms/parse.y"
{ is_extern = 1; yyval = yyvsp[0]; ; { is_extern = 1; (yyval) = (yyvsp[0]); ;}
break;} break;
case 29:
case 30:
#line 194 "scripts/genksyms/parse.y" #line 194 "scripts/genksyms/parse.y"
{ is_extern = 0; yyval = yyvsp[0]; ; { is_extern = 0; (yyval) = (yyvsp[0]); ;}
break;} break;
case 33:
#line 205 "scripts/genksyms/parse.y" case 35:
{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_STRUCT; yyval = yyvsp[0]; ; #line 206 "scripts/genksyms/parse.y"
break;} { remove_node((yyvsp[-1])); (*(yyvsp[0]))->tag = SYM_STRUCT; (yyval) = (yyvsp[0]); ;}
case 34: break;
#line 207 "scripts/genksyms/parse.y"
{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_UNION; yyval = yyvsp[0]; ; case 36:
break;} #line 208 "scripts/genksyms/parse.y"
case 35: { remove_node((yyvsp[-1])); (*(yyvsp[0]))->tag = SYM_UNION; (yyval) = (yyvsp[0]); ;}
#line 209 "scripts/genksyms/parse.y" break;
{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_ENUM; yyval = yyvsp[0]; ;
break;} case 37:
case 36: #line 210 "scripts/genksyms/parse.y"
#line 213 "scripts/genksyms/parse.y" { remove_node((yyvsp[-1])); (*(yyvsp[0]))->tag = SYM_ENUM; (yyval) = (yyvsp[0]); ;}
{ struct string_list *s = *yyvsp[0], *i = *yyvsp[-1], *r; break;
case 38:
#line 214 "scripts/genksyms/parse.y"
{ struct string_list *s = *(yyvsp[0]), *i = *(yyvsp[-1]), *r;
r = copy_node(i); r->tag = SYM_STRUCT; r = copy_node(i); r->tag = SYM_STRUCT;
r->next = (*yyvsp[-2])->next; *yyvsp[0] = r; (*yyvsp[-2])->next = NULL; r->next = (*(yyvsp[-2]))->next; *(yyvsp[0]) = r; (*(yyvsp[-2]))->next = NULL;
add_symbol(i->string, SYM_STRUCT, s, is_extern); add_symbol(i->string, SYM_STRUCT, s, is_extern);
yyval = yyvsp[0]; (yyval) = (yyvsp[0]);
; ;}
break;} break;
case 37:
#line 220 "scripts/genksyms/parse.y" case 39:
{ struct string_list *s = *yyvsp[0], *i = *yyvsp[-1], *r; #line 221 "scripts/genksyms/parse.y"
{ struct string_list *s = *(yyvsp[0]), *i = *(yyvsp[-1]), *r;
r = copy_node(i); r->tag = SYM_UNION; r = copy_node(i); r->tag = SYM_UNION;
r->next = (*yyvsp[-2])->next; *yyvsp[0] = r; (*yyvsp[-2])->next = NULL; r->next = (*(yyvsp[-2]))->next; *(yyvsp[0]) = r; (*(yyvsp[-2]))->next = NULL;
add_symbol(i->string, SYM_UNION, s, is_extern); add_symbol(i->string, SYM_UNION, s, is_extern);
yyval = yyvsp[0]; (yyval) = (yyvsp[0]);
; ;}
break;} break;
case 38:
#line 227 "scripts/genksyms/parse.y" case 40:
{ struct string_list *s = *yyvsp[0], *i = *yyvsp[-1], *r; #line 228 "scripts/genksyms/parse.y"
{ struct string_list *s = *(yyvsp[0]), *i = *(yyvsp[-1]), *r;
r = copy_node(i); r->tag = SYM_ENUM; r = copy_node(i); r->tag = SYM_ENUM;
r->next = (*yyvsp[-2])->next; *yyvsp[0] = r; (*yyvsp[-2])->next = NULL; r->next = (*(yyvsp[-2]))->next; *(yyvsp[0]) = r; (*(yyvsp[-2]))->next = NULL;
add_symbol(i->string, SYM_ENUM, s, is_extern); add_symbol(i->string, SYM_ENUM, s, is_extern);
yyval = yyvsp[0]; (yyval) = (yyvsp[0]);
; ;}
break;} break;
case 39:
#line 235 "scripts/genksyms/parse.y" case 41:
{ yyval = yyvsp[0]; ;
break;}
case 40:
#line 236 "scripts/genksyms/parse.y" #line 236 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ; { (yyval) = (yyvsp[0]); ;}
break;} break;
case 41:
case 42:
#line 237 "scripts/genksyms/parse.y" #line 237 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ; { (yyval) = (yyvsp[0]); ;}
break;} break;
case 52:
#line 251 "scripts/genksyms/parse.y" case 43:
{ (*yyvsp[0])->tag = SYM_TYPEDEF; yyval = yyvsp[0]; ; #line 238 "scripts/genksyms/parse.y"
break;} { (yyval) = (yyvsp[0]); ;}
case 53: break;
#line 256 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ; case 54:
break;} #line 252 "scripts/genksyms/parse.y"
case 54: { (*(yyvsp[0]))->tag = SYM_TYPEDEF; (yyval) = (yyvsp[0]); ;}
#line 260 "scripts/genksyms/parse.y" break;
{ yyval = NULL; ;
break;} case 55:
case 57: #line 257 "scripts/genksyms/parse.y"
#line 266 "scripts/genksyms/parse.y" { (yyval) = (yyvsp[0]) ? (yyvsp[0]) : (yyvsp[-1]); ;}
{ yyval = yyvsp[0]; ; break;
break;}
case 61: case 56:
#line 272 "scripts/genksyms/parse.y" #line 261 "scripts/genksyms/parse.y"
{ /* restrict has no effect in prototypes so ignore it */ { (yyval) = NULL; ;}
remove_node(yyvsp[0]); break;
yyval = yyvsp[0];
; case 59:
break;} #line 267 "scripts/genksyms/parse.y"
case 62: { (yyval) = (yyvsp[0]); ;}
#line 279 "scripts/genksyms/parse.y" break;
{ yyval = yyvsp[0]; ;
break;} case 63:
case 64: #line 273 "scripts/genksyms/parse.y"
#line 285 "scripts/genksyms/parse.y" { /* restrict has no effect in prototypes so ignore it */
{ if (current_name != NULL) { remove_node((yyvsp[0]));
(yyval) = (yyvsp[0]);
;}
break;
case 64:
#line 280 "scripts/genksyms/parse.y"
{ (yyval) = (yyvsp[0]); ;}
break;
case 66:
#line 286 "scripts/genksyms/parse.y"
{ if (current_name != NULL) {
error_with_pos("unexpected second declaration name"); error_with_pos("unexpected second declaration name");
YYERROR; YYERROR;
} else { } else {
current_name = (*yyvsp[0])->string; current_name = (*(yyvsp[0]))->string;
yyval = yyvsp[0]; (yyval) = (yyvsp[0]);
} }
; ;}
break;} break;
case 65:
#line 294 "scripts/genksyms/parse.y" case 67:
{ yyval = yyvsp[0]; ; #line 295 "scripts/genksyms/parse.y"
break;} { (yyval) = (yyvsp[0]); ;}
case 66: break;
#line 296 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ; case 68:
break;} #line 297 "scripts/genksyms/parse.y"
case 67: { (yyval) = (yyvsp[0]); ;}
#line 298 "scripts/genksyms/parse.y" break;
{ yyval = yyvsp[0]; ;
break;} case 69:
case 68: #line 299 "scripts/genksyms/parse.y"
#line 300 "scripts/genksyms/parse.y" { (yyval) = (yyvsp[0]); ;}
{ yyval = yyvsp[0]; ; break;
break;}
case 69: case 70:
#line 302 "scripts/genksyms/parse.y" #line 301 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ; { (yyval) = (yyvsp[0]); ;}
break;} break;
case 70:
#line 308 "scripts/genksyms/parse.y" case 71:
{ yyval = yyvsp[0]; ; #line 303 "scripts/genksyms/parse.y"
break;} { (yyval) = (yyvsp[0]); ;}
case 74: break;
#line 316 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ; case 72:
break;} #line 309 "scripts/genksyms/parse.y"
case 75: { (yyval) = (yyvsp[0]); ;}
#line 318 "scripts/genksyms/parse.y" break;
{ yyval = yyvsp[0]; ;
break;} case 76:
case 76: #line 317 "scripts/genksyms/parse.y"
#line 320 "scripts/genksyms/parse.y" { (yyval) = (yyvsp[0]); ;}
{ yyval = yyvsp[0]; ; break;
break;}
case 77: case 77:
#line 322 "scripts/genksyms/parse.y" #line 319 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ; { (yyval) = (yyvsp[0]); ;}
break;} break;
case 78:
#line 324 "scripts/genksyms/parse.y" case 78:
{ yyval = yyvsp[0]; ; #line 321 "scripts/genksyms/parse.y"
break;} { (yyval) = (yyvsp[0]); ;}
case 79: break;
#line 328 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ; case 79:
break;} #line 323 "scripts/genksyms/parse.y"
case 81: { (yyval) = (yyvsp[0]); ;}
#line 330 "scripts/genksyms/parse.y" break;
{ yyval = yyvsp[0]; ;
break;} case 80:
case 82: #line 325 "scripts/genksyms/parse.y"
#line 334 "scripts/genksyms/parse.y" { (yyval) = (yyvsp[0]); ;}
{ yyval = NULL; ; break;
break;}
case 85: case 81:
#line 341 "scripts/genksyms/parse.y" #line 329 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ; { (yyval) = (yyvsp[0]); ;}
break;} break;
case 86:
#line 346 "scripts/genksyms/parse.y" case 83:
{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ; #line 331 "scripts/genksyms/parse.y"
break;} { (yyval) = (yyvsp[0]); ;}
case 87: break;
#line 351 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ; case 84:
break;} #line 335 "scripts/genksyms/parse.y"
case 89: { (yyval) = NULL; ;}
#line 356 "scripts/genksyms/parse.y" break;
{ yyval = NULL; ;
break;} case 87:
case 90: #line 342 "scripts/genksyms/parse.y"
#line 358 "scripts/genksyms/parse.y" { (yyval) = (yyvsp[0]); ;}
{ /* For version 2 checksums, we don't want to remember break;
case 88:
#line 347 "scripts/genksyms/parse.y"
{ (yyval) = (yyvsp[0]) ? (yyvsp[0]) : (yyvsp[-1]); ;}
break;
case 89:
#line 352 "scripts/genksyms/parse.y"
{ (yyval) = (yyvsp[0]) ? (yyvsp[0]) : (yyvsp[-1]); ;}
break;
case 91:
#line 357 "scripts/genksyms/parse.y"
{ (yyval) = NULL; ;}
break;
case 92:
#line 359 "scripts/genksyms/parse.y"
{ /* For version 2 checksums, we don't want to remember
private parameter names. */ private parameter names. */
remove_node(yyvsp[0]); remove_node((yyvsp[0]));
yyval = yyvsp[0]; (yyval) = (yyvsp[0]);
; ;}
break;} break;
case 91:
#line 366 "scripts/genksyms/parse.y" case 93:
{ remove_node(yyvsp[0]); #line 367 "scripts/genksyms/parse.y"
yyval = yyvsp[0]; { remove_node((yyvsp[0]));
; (yyval) = (yyvsp[0]);
break;} ;}
case 92: break;
#line 370 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ; case 94:
break;} #line 371 "scripts/genksyms/parse.y"
case 93: { (yyval) = (yyvsp[0]); ;}
#line 372 "scripts/genksyms/parse.y" break;
{ yyval = yyvsp[0]; ;
break;} case 95:
case 94: #line 373 "scripts/genksyms/parse.y"
#line 374 "scripts/genksyms/parse.y" { (yyval) = (yyvsp[0]); ;}
{ yyval = yyvsp[0]; ; break;
break;}
case 95: case 96:
#line 376 "scripts/genksyms/parse.y" #line 375 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ; { (yyval) = (yyvsp[0]); ;}
break;} break;
case 96:
#line 378 "scripts/genksyms/parse.y" case 97:
{ yyval = yyvsp[0]; ; #line 377 "scripts/genksyms/parse.y"
break;} { (yyval) = (yyvsp[0]); ;}
case 97: break;
#line 383 "scripts/genksyms/parse.y"
{ struct string_list *decl = *yyvsp[-1]; case 98:
*yyvsp[-1] = NULL; #line 379 "scripts/genksyms/parse.y"
{ (yyval) = (yyvsp[0]); ;}
break;
case 99:
#line 384 "scripts/genksyms/parse.y"
{ struct string_list *decl = *(yyvsp[-1]);
*(yyvsp[-1]) = NULL;
add_symbol(current_name, SYM_NORMAL, decl, is_extern); add_symbol(current_name, SYM_NORMAL, decl, is_extern);
yyval = yyvsp[0]; (yyval) = (yyvsp[0]);
; ;}
break;} break;
case 98:
#line 391 "scripts/genksyms/parse.y" case 100:
{ yyval = NULL; ; #line 392 "scripts/genksyms/parse.y"
break;} { (yyval) = NULL; ;}
case 100: break;
#line 398 "scripts/genksyms/parse.y"
{ remove_list(yyvsp[0], &(*yyvsp[-1])->next); yyval = yyvsp[0]; ; case 102:
break;} #line 399 "scripts/genksyms/parse.y"
case 101: { remove_list((yyvsp[0]), &(*(yyvsp[-1]))->next); (yyval) = (yyvsp[0]); ;}
#line 402 "scripts/genksyms/parse.y" break;
{ yyval = yyvsp[0]; ;
break;} case 103:
case 102:
#line 403 "scripts/genksyms/parse.y" #line 403 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ; { (yyval) = (yyvsp[0]); ;}
break;} break;
case 103:
#line 407 "scripts/genksyms/parse.y" case 104:
{ yyval = NULL; ; #line 404 "scripts/genksyms/parse.y"
break;} { (yyval) = (yyvsp[0]); ;}
case 106: break;
#line 413 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ; case 105:
break;} #line 408 "scripts/genksyms/parse.y"
case 107: { (yyval) = NULL; ;}
#line 418 "scripts/genksyms/parse.y" break;
{ yyval = yyvsp[0]; ;
break;} case 108:
case 108: #line 414 "scripts/genksyms/parse.y"
#line 420 "scripts/genksyms/parse.y" { (yyval) = (yyvsp[0]); ;}
{ yyval = yyvsp[0]; ; break;
break;}
case 109: case 109:
#line 424 "scripts/genksyms/parse.y" #line 419 "scripts/genksyms/parse.y"
{ yyval = NULL; ; { (yyval) = (yyvsp[0]); ;}
break;} break;
case 112:
#line 430 "scripts/genksyms/parse.y" case 110:
{ yyval = yyvsp[0]; ; #line 421 "scripts/genksyms/parse.y"
break;} { (yyval) = (yyvsp[0]); ;}
case 113: break;
#line 434 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ; case 111:
break;} #line 425 "scripts/genksyms/parse.y"
case 114: { (yyval) = NULL; ;}
break;
case 114:
#line 431 "scripts/genksyms/parse.y"
{ (yyval) = (yyvsp[0]); ;}
break;
case 115:
#line 435 "scripts/genksyms/parse.y" #line 435 "scripts/genksyms/parse.y"
{ yyval = yyvsp[0]; ; { (yyval) = (yyvsp[0]) ? (yyvsp[0]) : (yyvsp[-1]); ;}
break;} break;
case 116:
#line 440 "scripts/genksyms/parse.y" case 116:
{ yyval = yyvsp[0]; ; #line 436 "scripts/genksyms/parse.y"
break;} { (yyval) = (yyvsp[0]); ;}
case 117: break;
#line 444 "scripts/genksyms/parse.y"
{ yyval = NULL; ; case 118:
break;} #line 441 "scripts/genksyms/parse.y"
case 119: { (yyval) = (yyvsp[0]); ;}
#line 449 "scripts/genksyms/parse.y" break;
{ yyval = yyvsp[0]; ;
break;} case 119:
case 120: #line 445 "scripts/genksyms/parse.y"
#line 453 "scripts/genksyms/parse.y" { (yyval) = NULL; ;}
{ yyval = NULL; ; break;
break;}
case 122: case 121:
#line 459 "scripts/genksyms/parse.y" #line 450 "scripts/genksyms/parse.y"
{ export_symbol((*yyvsp[-2])->string); yyval = yyvsp[0]; ; { (yyval) = (yyvsp[0]); ;}
break;} break;
}
/* the action file gets copied in in place of this dollarsign */ case 122:
#line 543 "/usr/lib/bison.simple" #line 454 "scripts/genksyms/parse.y"
{ (yyval) = NULL; ;}
break;
case 124:
#line 460 "scripts/genksyms/parse.y"
{ export_symbol((*(yyvsp[-2]))->string); (yyval) = (yyvsp[0]); ;}
break;
}
/* Line 1037 of yacc.c. */
#line 1816 "scripts/genksyms/parse.c"
yyvsp -= yylen; yyvsp -= yylen;
yyssp -= yylen; yyssp -= yylen;
#ifdef YYLSP_NEEDED
yylsp -= yylen;
#endif
#if YYDEBUG != 0
if (yydebug) YY_STACK_PRINT (yyss, yyssp);
{
short *ssp1 = yyss - 1;
fprintf (stderr, "state stack now");
while (ssp1 != yyssp)
fprintf (stderr, " %d", *++ssp1);
fprintf (stderr, "\n");
}
#endif
*++yyvsp = yyval; *++yyvsp = yyval;
#ifdef YYLSP_NEEDED
yylsp++;
if (yylen == 0)
{
yylsp->first_line = yylloc.first_line;
yylsp->first_column = yylloc.first_column;
yylsp->last_line = (yylsp-1)->last_line;
yylsp->last_column = (yylsp-1)->last_column;
yylsp->text = 0;
}
else
{
yylsp->last_line = (yylsp+yylen-1)->last_line;
yylsp->last_column = (yylsp+yylen-1)->last_column;
}
#endif
/* Now "shift" the result of the reduction. /* Now `shift' the result of the reduction. Determine what state
Determine what state that goes to, that goes to, based on the state we popped back to and the rule
based on the state we popped back to number reduced by. */
and the rule number reduced by. */
yyn = yyr1[yyn]; yyn = yyr1[yyn];
yystate = yypgoto[yyn - YYNTBASE] + *yyssp; yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yytable[yystate]; yystate = yytable[yystate];
else else
yystate = yydefgoto[yyn - YYNTBASE]; yystate = yydefgoto[yyn - YYNTOKENS];
goto yynewstate; goto yynewstate;
yyerrlab: /* here on detecting error */
if (! yyerrstatus) /*------------------------------------.
/* If not already recovering from an error, report this error. */ | yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{ {
++yynerrs; ++yynerrs;
#if YYERROR_VERBOSE
#ifdef YYERROR_VERBOSE
yyn = yypact[yystate]; yyn = yypact[yystate];
if (yyn > YYFLAG && yyn < YYLAST) if (YYPACT_NINF < yyn && yyn < YYLAST)
{ {
int size = 0; YYSIZE_T yysize = 0;
char *msg; int yytype = YYTRANSLATE (yychar);
int x, count; const char* yyprefix;
char *yymsg;
count = 0; int yyx;
/* Start X at -yyn if nec to avoid negative indexes in yycheck. */
for (x = (yyn < 0 ? -yyn : 0); /* Start YYX at -YYN if negative to avoid negative indexes in
x < (sizeof(yytname) / sizeof(char *)); x++) YYCHECK. */
if (yycheck[x + yyn] == x) int yyxbegin = yyn < 0 ? -yyn : 0;
size += strlen(yytname[x]) + 15, count++;
msg = (char *) malloc(size + 15); /* Stay within bounds of both yycheck and yytname. */
if (msg != 0) int yychecklim = YYLAST - yyn;
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
int yycount = 0;
yyprefix = ", expecting ";
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{
yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
yycount += 1;
if (yycount == 5)
{
yysize = 0;
break;
}
}
yysize += (sizeof ("syntax error, unexpected ")
+ yystrlen (yytname[yytype]));
yymsg = (char *) YYSTACK_ALLOC (yysize);
if (yymsg != 0)
{ {
strcpy(msg, "parse error"); char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
yyp = yystpcpy (yyp, yytname[yytype]);
if (count < 5) if (yycount < 5)
{ {
count = 0; yyprefix = ", expecting ";
for (x = (yyn < 0 ? -yyn : 0); for (yyx = yyxbegin; yyx < yyxend; ++yyx)
x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
if (yycheck[x + yyn] == x)
{ {
strcat(msg, count == 0 ? ", expecting `" : " or `"); yyp = yystpcpy (yyp, yyprefix);
strcat(msg, yytname[x]); yyp = yystpcpy (yyp, yytname[yyx]);
strcat(msg, "'"); yyprefix = " or ";
count++;
} }
} }
yyerror(msg); yyerror (yymsg);
free(msg); YYSTACK_FREE (yymsg);
} }
else else
yyerror ("parse error; also virtual memory exceeded"); yyerror ("syntax error; also virtual memory exhausted");
} }
else else
#endif /* YYERROR_VERBOSE */ #endif /* YYERROR_VERBOSE */
yyerror("parse error"); yyerror ("syntax error");
} }
goto yyerrlab1;
yyerrlab1: /* here on error raised explicitly by an action */
if (yyerrstatus == 3) if (yyerrstatus == 3)
{ {
/* if just tried and failed to reuse lookahead token after an error, discard it. */ /* If just tried and failed to reuse look-ahead token after an
error, discard it. */
/* return failure if at end of input */
if (yychar == YYEOF) if (yychar <= YYEOF)
YYABORT; {
/* If at end of input, pop the error token,
#if YYDEBUG != 0 then the rest of the stack, then return failure. */
if (yydebug) if (yychar == YYEOF)
fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); for (;;)
#endif {
yychar = YYEMPTY; YYPOPSTACK;
if (yyssp == yyss)
YYABORT;
yydestruct ("Error: popping",
yystos[*yyssp], yyvsp);
}
}
else
{
yydestruct ("Error: discarding", yytoken, &yylval);
yychar = YYEMPTY;
}
} }
/* Else will try to reuse lookahead token /* Else will try to reuse look-ahead token after shifting the error
after shifting the error token. */ token. */
goto yyerrlab1;
yyerrstatus = 3; /* Each real token shifted decrements this */
goto yyerrhandle;
yyerrdefault: /* current state does not do anything special for the error token. */ /*---------------------------------------------------.
| yyerrorlab -- error raised explicitly by YYERROR. |
`---------------------------------------------------*/
yyerrorlab:
#if 0 #ifdef __GNUC__
/* This is wrong; only states that explicitly want error tokens /* Pacify GCC when the user code never invokes YYERROR and the label
should shift them. */ yyerrorlab therefore never appears in user code. */
yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ if (0)
if (yyn) goto yydefault; goto yyerrorlab;
#endif #endif
yyerrpop: /* pop the current state because it cannot handle the error token */ yyvsp -= yylen;
yyssp -= yylen;
yystate = *yyssp;
goto yyerrlab1;
if (yyssp == yyss) YYABORT; /*-------------------------------------------------------------.
yyvsp--; | yyerrlab1 -- common code for both syntax error and YYERROR. |
yystate = *--yyssp; `-------------------------------------------------------------*/
#ifdef YYLSP_NEEDED yyerrlab1:
yylsp--; yyerrstatus = 3; /* Each real token shifted decrements this. */
#endif
#if YYDEBUG != 0 for (;;)
if (yydebug)
{ {
short *ssp1 = yyss - 1; yyn = yypact[yystate];
fprintf (stderr, "Error: state stack now"); if (yyn != YYPACT_NINF)
while (ssp1 != yyssp) {
fprintf (stderr, " %d", *++ssp1); yyn += YYTERROR;
fprintf (stderr, "\n"); if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
} {
#endif yyn = yytable[yyn];
if (0 < yyn)
yyerrhandle: break;
}
}
yyn = yypact[yystate]; /* Pop the current state because it cannot handle the error token. */
if (yyn == YYFLAG) if (yyssp == yyss)
goto yyerrdefault; YYABORT;
yyn += YYTERROR;
if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
goto yyerrdefault;
yyn = yytable[yyn]; yydestruct ("Error: popping", yystos[yystate], yyvsp);
if (yyn < 0) YYPOPSTACK;
{ yystate = *yyssp;
if (yyn == YYFLAG) YY_STACK_PRINT (yyss, yyssp);
goto yyerrpop;
yyn = -yyn;
goto yyreduce;
} }
else if (yyn == 0)
goto yyerrpop;
if (yyn == YYFINAL) if (yyn == YYFINAL)
YYACCEPT; YYACCEPT;
#if YYDEBUG != 0
if (yydebug)
fprintf(stderr, "Shifting error token, ");
#endif
*++yyvsp = yylval; *++yyvsp = yylval;
#ifdef YYLSP_NEEDED
*++yylsp = yylloc;
#endif /* Shift the error token. */
YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
yystate = yyn; yystate = yyn;
goto yynewstate; goto yynewstate;
yyacceptlab:
/* YYACCEPT comes here. */ /*-------------------------------------.
if (yyfree_stacks) | yyacceptlab -- YYACCEPT comes here. |
{ `-------------------------------------*/
free (yyss); yyacceptlab:
free (yyvs); yyresult = 0;
#ifdef YYLSP_NEEDED goto yyreturn;
free (yyls);
/*-----------------------------------.
| yyabortlab -- YYABORT comes here. |
`-----------------------------------*/
yyabortlab:
yydestruct ("Error: discarding lookahead",
yytoken, &yylval);
yychar = YYEMPTY;
yyresult = 1;
goto yyreturn;
#ifndef yyoverflow
/*----------------------------------------------.
| yyoverflowlab -- parser overflow comes here. |
`----------------------------------------------*/
yyoverflowlab:
yyerror ("parser stack overflow");
yyresult = 2;
/* Fall through. */
#endif #endif
}
return 0;
yyabortlab: yyreturn:
/* YYABORT comes here. */ #ifndef yyoverflow
if (yyfree_stacks) if (yyss != yyssa)
{ YYSTACK_FREE (yyss);
free (yyss);
free (yyvs);
#ifdef YYLSP_NEEDED
free (yyls);
#endif #endif
} return yyresult;
return 1;
} }
#line 463 "scripts/genksyms/parse.y"
#line 464 "scripts/genksyms/parse.y"
static void static void
...@@ -1575,3 +2048,4 @@ yyerror(const char *e) ...@@ -1575,3 +2048,4 @@ yyerror(const char *e)
{ {
error_with_pos("%s", e); error_with_pos("%s", e);
} }
#ifndef YYSTYPE /* A Bison parser, made by GNU Bison 2.0. */
#define YYSTYPE int
/* Skeleton parser for Yacc-like parsing with Bison,
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* As a special exception, when this file is copied by Bison into a
Bison output file, you may use that output file without restriction.
This special exception was added by the Free Software Foundation
in version 1.24 of Bison. */
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
/* Put the tokens into the symbol table, so that GDB and other debuggers
know about them. */
enum yytokentype {
ASM_KEYW = 258,
ATTRIBUTE_KEYW = 259,
AUTO_KEYW = 260,
BOOL_KEYW = 261,
CHAR_KEYW = 262,
CONST_KEYW = 263,
DOUBLE_KEYW = 264,
ENUM_KEYW = 265,
EXTERN_KEYW = 266,
FLOAT_KEYW = 267,
INLINE_KEYW = 268,
INT_KEYW = 269,
LONG_KEYW = 270,
REGISTER_KEYW = 271,
RESTRICT_KEYW = 272,
SHORT_KEYW = 273,
SIGNED_KEYW = 274,
STATIC_KEYW = 275,
STRUCT_KEYW = 276,
TYPEDEF_KEYW = 277,
UNION_KEYW = 278,
UNSIGNED_KEYW = 279,
VOID_KEYW = 280,
VOLATILE_KEYW = 281,
TYPEOF_KEYW = 282,
EXPORT_SYMBOL_KEYW = 283,
ASM_PHRASE = 284,
ATTRIBUTE_PHRASE = 285,
BRACE_PHRASE = 286,
BRACKET_PHRASE = 287,
EXPRESSION_PHRASE = 288,
CHAR = 289,
DOTS = 290,
IDENT = 291,
INT = 292,
REAL = 293,
STRING = 294,
TYPE = 295,
OTHER = 296,
FILENAME = 297
};
#endif #endif
#define ASM_KEYW 257 #define ASM_KEYW 258
#define ATTRIBUTE_KEYW 258 #define ATTRIBUTE_KEYW 259
#define AUTO_KEYW 259 #define AUTO_KEYW 260
#define BOOL_KEYW 260 #define BOOL_KEYW 261
#define CHAR_KEYW 261 #define CHAR_KEYW 262
#define CONST_KEYW 262 #define CONST_KEYW 263
#define DOUBLE_KEYW 263 #define DOUBLE_KEYW 264
#define ENUM_KEYW 264 #define ENUM_KEYW 265
#define EXTERN_KEYW 265 #define EXTERN_KEYW 266
#define FLOAT_KEYW 266 #define FLOAT_KEYW 267
#define INLINE_KEYW 267 #define INLINE_KEYW 268
#define INT_KEYW 268 #define INT_KEYW 269
#define LONG_KEYW 269 #define LONG_KEYW 270
#define REGISTER_KEYW 270 #define REGISTER_KEYW 271
#define RESTRICT_KEYW 271 #define RESTRICT_KEYW 272
#define SHORT_KEYW 272 #define SHORT_KEYW 273
#define SIGNED_KEYW 273 #define SIGNED_KEYW 274
#define STATIC_KEYW 274 #define STATIC_KEYW 275
#define STRUCT_KEYW 275 #define STRUCT_KEYW 276
#define TYPEDEF_KEYW 276 #define TYPEDEF_KEYW 277
#define UNION_KEYW 277 #define UNION_KEYW 278
#define UNSIGNED_KEYW 278 #define UNSIGNED_KEYW 279
#define VOID_KEYW 279 #define VOID_KEYW 280
#define VOLATILE_KEYW 280 #define VOLATILE_KEYW 281
#define TYPEOF_KEYW 281 #define TYPEOF_KEYW 282
#define EXPORT_SYMBOL_KEYW 282 #define EXPORT_SYMBOL_KEYW 283
#define ASM_PHRASE 283 #define ASM_PHRASE 284
#define ATTRIBUTE_PHRASE 284 #define ATTRIBUTE_PHRASE 285
#define BRACE_PHRASE 285 #define BRACE_PHRASE 286
#define BRACKET_PHRASE 286 #define BRACKET_PHRASE 287
#define EXPRESSION_PHRASE 287 #define EXPRESSION_PHRASE 288
#define CHAR 288 #define CHAR 289
#define DOTS 289 #define DOTS 290
#define IDENT 290 #define IDENT 291
#define INT 291 #define INT 292
#define REAL 292 #define REAL 293
#define STRING 293 #define STRING 294
#define TYPE 294 #define TYPE 295
#define OTHER 295 #define OTHER 296
#define FILENAME 296 #define FILENAME 297
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
typedef int YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif
extern YYSTYPE yylval; extern YYSTYPE yylval;
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册