]> git.saurik.com Git - bison.git/blob - src/parse-gram.h
version 3.0
[bison.git] / src / parse-gram.h
1 /* A Bison parser, made by GNU Bison 3.0. */
2
3 /* Bison interface for Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 #ifndef YY_GRAM_SRC_PARSE_GRAM_H_INCLUDED
34 # define YY_GRAM_SRC_PARSE_GRAM_H_INCLUDED
35 /* Debug traces. */
36 #ifndef GRAM_DEBUG
37 # if defined YYDEBUG
38 #if YYDEBUG
39 # define GRAM_DEBUG 1
40 # else
41 # define GRAM_DEBUG 0
42 # endif
43 # else /* ! defined YYDEBUG */
44 # define GRAM_DEBUG 1
45 # endif /* ! defined YYDEBUG */
46 #endif /* ! defined GRAM_DEBUG */
47 #if GRAM_DEBUG
48 extern int gram_debug;
49 #endif
50 /* "%code requires" blocks. */
51 #line 21 "src/parse-gram.y" /* yacc.c:1909 */
52
53 #include "symlist.h"
54 #include "symtab.h"
55 #line 221 "src/parse-gram.y" /* yacc.c:1909 */
56
57 typedef enum
58 {
59 param_none = 0,
60 param_lex = 1 << 0,
61 param_parse = 1 << 1,
62 param_both = param_lex | param_parse
63 } param_type;
64 #line 645 "src/parse-gram.y" /* yacc.c:1909 */
65 #include "muscle-tab.h"
66
67 #line 68 "src/parse-gram.h" /* yacc.c:1909 */
68
69 /* Token type. */
70 #ifndef GRAM_TOKENTYPE
71 # define GRAM_TOKENTYPE
72 enum gram_tokentype
73 {
74 GRAM_EOF = 0,
75 STRING = 258,
76 PERCENT_TOKEN = 259,
77 PERCENT_NTERM = 260,
78 PERCENT_TYPE = 261,
79 PERCENT_DESTRUCTOR = 262,
80 PERCENT_PRINTER = 263,
81 PERCENT_LEFT = 264,
82 PERCENT_RIGHT = 265,
83 PERCENT_NONASSOC = 266,
84 PERCENT_PRECEDENCE = 267,
85 PERCENT_PREC = 268,
86 PERCENT_DPREC = 269,
87 PERCENT_MERGE = 270,
88 PERCENT_CODE = 271,
89 PERCENT_DEFAULT_PREC = 272,
90 PERCENT_DEFINE = 273,
91 PERCENT_DEFINES = 274,
92 PERCENT_ERROR_VERBOSE = 275,
93 PERCENT_EXPECT = 276,
94 PERCENT_EXPECT_RR = 277,
95 PERCENT_FLAG = 278,
96 PERCENT_FILE_PREFIX = 279,
97 PERCENT_GLR_PARSER = 280,
98 PERCENT_INITIAL_ACTION = 281,
99 PERCENT_LANGUAGE = 282,
100 PERCENT_NAME_PREFIX = 283,
101 PERCENT_NO_DEFAULT_PREC = 284,
102 PERCENT_NO_LINES = 285,
103 PERCENT_NONDETERMINISTIC_PARSER = 286,
104 PERCENT_OUTPUT = 287,
105 PERCENT_REQUIRE = 288,
106 PERCENT_SKELETON = 289,
107 PERCENT_START = 290,
108 PERCENT_TOKEN_TABLE = 291,
109 PERCENT_VERBOSE = 292,
110 PERCENT_YACC = 293,
111 BRACED_CODE = 294,
112 BRACED_PREDICATE = 295,
113 BRACKETED_ID = 296,
114 CHAR = 297,
115 EPILOGUE = 298,
116 EQUAL = 299,
117 ID = 300,
118 ID_COLON = 301,
119 PERCENT_PERCENT = 302,
120 PIPE = 303,
121 PROLOGUE = 304,
122 SEMICOLON = 305,
123 TAG = 306,
124 TAG_ANY = 307,
125 TAG_NONE = 308,
126 INT = 309,
127 PERCENT_PARAM = 310,
128 PERCENT_UNION = 311,
129 PERCENT_EMPTY = 312
130 };
131 #endif
132
133 /* Value type. */
134 #if ! defined GRAM_STYPE && ! defined GRAM_STYPE_IS_DECLARED
135 typedef union GRAM_STYPE GRAM_STYPE;
136 union GRAM_STYPE
137 {
138 #line 182 "src/parse-gram.y" /* yacc.c:1909 */
139 unsigned char character;
140 #line 186 "src/parse-gram.y" /* yacc.c:1909 */
141 char *code;
142 #line 191 "src/parse-gram.y" /* yacc.c:1909 */
143 uniqstr uniqstr;
144 #line 199 "src/parse-gram.y" /* yacc.c:1909 */
145 int integer;
146 #line 203 "src/parse-gram.y" /* yacc.c:1909 */
147 symbol *symbol;
148 #line 208 "src/parse-gram.y" /* yacc.c:1909 */
149 assoc assoc;
150 #line 211 "src/parse-gram.y" /* yacc.c:1909 */
151 symbol_list *list;
152 #line 214 "src/parse-gram.y" /* yacc.c:1909 */
153 named_ref *named_ref;
154 #line 241 "src/parse-gram.y" /* yacc.c:1909 */
155 param_type param;
156 #line 409 "src/parse-gram.y" /* yacc.c:1909 */
157 code_props_type code_type;
158 #line 647 "src/parse-gram.y" /* yacc.c:1909 */
159
160 struct
161 {
162 char const *chars;
163 muscle_kind kind;
164 } value;
165
166 #line 167 "src/parse-gram.h" /* yacc.c:1909 */
167 };
168 # define GRAM_STYPE_IS_TRIVIAL 1
169 # define GRAM_STYPE_IS_DECLARED 1
170 #endif
171
172 /* Location type. */
173 #if ! defined GRAM_LTYPE && ! defined GRAM_LTYPE_IS_DECLARED
174 typedef struct GRAM_LTYPE GRAM_LTYPE;
175 struct GRAM_LTYPE
176 {
177 int first_line;
178 int first_column;
179 int last_line;
180 int last_column;
181 };
182 # define GRAM_LTYPE_IS_DECLARED 1
183 # define GRAM_LTYPE_IS_TRIVIAL 1
184 #endif
185
186
187
188 int gram_parse (void);
189
190 #endif /* !YY_GRAM_SRC_PARSE_GRAM_H_INCLUDED */