]> git.saurik.com Git - bison.git/blame - src/parse-gram.h
%union: fix the support for named %union
[bison.git] / src / parse-gram.h
CommitLineData
3209eb1c 1/* A Bison parser, made by GNU Bison 3.0.2.13-975bb-dirty. */
1c7b7e1d 2
3c9b20ff 3/* Bison interface for Yacc-like parsers in C
086fd113 4
3209eb1c 5 Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
086fd113 6
f16b0819 7 This program is free software: you can redistribute it and/or modify
04b6e11e 8 it under the terms of the GNU General Public License as published by
f16b0819
PE
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
086fd113 11
04b6e11e
PE
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.
086fd113 16
04b6e11e 17 You should have received a copy of the GNU General Public License
f16b0819 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
04b6e11e 19
04c12cb8
PE
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.
086fd113 29
04c12cb8
PE
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
dda2c1ad 32
bb8e56ff
TR
33#ifndef YY_GRAM_SRC_PARSE_GRAM_H_INCLUDED
34# define YY_GRAM_SRC_PARSE_GRAM_H_INCLUDED
0a9042a6 35/* Debug traces. */
8d9cffff
AD
36#ifndef GRAM_DEBUG
37# if defined YYDEBUG
dda2c1ad 38#if YYDEBUG
8d9cffff
AD
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
dda2c1ad
AD
48extern int gram_debug;
49#endif
b18cdd91 50/* "%code requires" blocks. */
a62a7b01 51#line 21 "src/parse-gram.y" /* yacc.c:1909 */
7dbadca2 52
332019e1
AD
53 #include "symlist.h"
54 #include "symtab.h"
a62a7b01 55#line 221 "src/parse-gram.y" /* yacc.c:1909 */
b18cdd91 56
b18cdd91
AD
57 typedef enum
58 {
dd875058 59 param_none = 0,
b18cdd91
AD
60 param_lex = 1 << 0,
61 param_parse = 1 << 1,
62 param_both = param_lex | param_parse
63 } param_type;
827bc59c 64#line 647 "src/parse-gram.y" /* yacc.c:1909 */
de5fb744 65#include "muscle-tab.h"
b18cdd91 66
a62a7b01 67#line 68 "src/parse-gram.h" /* yacc.c:1909 */
04b6e11e 68
0a9042a6 69/* Token type. */
8d9cffff
AD
70#ifndef GRAM_TOKENTYPE
71# define GRAM_TOKENTYPE
8d9cffff 72 enum gram_tokentype
a9439670
AD
73 {
74 GRAM_EOF = 0,
75 STRING = 258,
8a928349
AD
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,
a9439670 127 PERCENT_PARAM = 310,
8ecac08f
AD
128 PERCENT_UNION = 311,
129 PERCENT_EMPTY = 312
a9439670 130 };
ae7453f2 131#endif
8f7ebfc8 132
0a9042a6 133/* Value type. */
8d9cffff 134#if ! defined GRAM_STYPE && ! defined GRAM_STYPE_IS_DECLARED
827bc59c 135
0a9042a6 136union GRAM_STYPE
136a0f76 137{
a62a7b01 138#line 182 "src/parse-gram.y" /* yacc.c:1909 */
8a928349 139unsigned char character;
a62a7b01 140#line 186 "src/parse-gram.y" /* yacc.c:1909 */
e37054cf 141char *code;
a62a7b01 142#line 191 "src/parse-gram.y" /* yacc.c:1909 */
8a928349 143uniqstr uniqstr;
a62a7b01 144#line 199 "src/parse-gram.y" /* yacc.c:1909 */
8a928349 145int integer;
a62a7b01 146#line 203 "src/parse-gram.y" /* yacc.c:1909 */
e37054cf 147symbol *symbol;
a62a7b01 148#line 208 "src/parse-gram.y" /* yacc.c:1909 */
8a928349 149assoc assoc;
a62a7b01 150#line 211 "src/parse-gram.y" /* yacc.c:1909 */
8a928349 151symbol_list *list;
a62a7b01 152#line 214 "src/parse-gram.y" /* yacc.c:1909 */
8a928349 153named_ref *named_ref;
a62a7b01 154#line 241 "src/parse-gram.y" /* yacc.c:1909 */
8a928349 155param_type param;
a62a7b01 156#line 409 "src/parse-gram.y" /* yacc.c:1909 */
0294b130 157code_props_type code_type;
827bc59c 158#line 649 "src/parse-gram.y" /* yacc.c:1909 */
7ecec4dd 159
de5fb744
AD
160 struct
161 {
162 char const *chars;
163 muscle_kind kind;
164 } value;
165
a62a7b01 166#line 167 "src/parse-gram.h" /* yacc.c:1909 */
0a9042a6 167};
827bc59c
AD
168
169typedef union GRAM_STYPE GRAM_STYPE;
8d9cffff
AD
170# define GRAM_STYPE_IS_TRIVIAL 1
171# define GRAM_STYPE_IS_DECLARED 1
e9955c83
AD
172#endif
173
0a9042a6 174/* Location type. */
8d9cffff 175#if ! defined GRAM_LTYPE && ! defined GRAM_LTYPE_IS_DECLARED
0a9042a6
AD
176typedef struct GRAM_LTYPE GRAM_LTYPE;
177struct GRAM_LTYPE
e9955c83
AD
178{
179 int first_line;
180 int first_column;
181 int last_line;
182 int last_column;
0a9042a6 183};
8d9cffff
AD
184# define GRAM_LTYPE_IS_DECLARED 1
185# define GRAM_LTYPE_IS_TRIVIAL 1
e9955c83
AD
186#endif
187
415b8823 188
0a9042a6 189
dda2c1ad 190int gram_parse (void);
e9955c83 191
bb8e56ff 192#endif /* !YY_GRAM_SRC_PARSE_GRAM_H_INCLUDED */