Ruby  3.1.4p223 (2023-03-30 revision HEAD)
parse.h
1 /* A Bison parser, made by GNU Bison 3.8.2. */
2 
3 /* Bison interface for Yacc-like parsers in C
4 
5  Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6  Inc.
7 
8  This program is free software: you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation, either version 3 of the License, or
11  (at your option) any later version.
12 
13  This program is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with this program. If not, see <https://www.gnu.org/licenses/>. */
20 
21 /* As a special exception, you may create a larger work that contains
22  part or all of the Bison parser skeleton and distribute that work
23  under terms of your choice, so long as that work isn't itself a
24  parser generator using the skeleton or a modified version thereof
25  as a parser skeleton. Alternatively, if you modify or redistribute
26  the parser skeleton itself, you may (at your option) remove this
27  special exception, which will cause the skeleton and the resulting
28  Bison output files to be licensed under the GNU General Public
29  License without this special exception.
30 
31  This special exception was added by the Free Software Foundation in
32  version 2.2 of Bison. */
33 
34 /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
35  especially those whose name start with YY_ or yy_. They are
36  private implementation details that can be changed or removed. */
37 
38 #ifndef YY_YY_Y_TAB_H_INCLUDED
39 # define YY_YY_Y_TAB_H_INCLUDED
40 /* Debug traces. */
41 #ifndef YYDEBUG
42 # define YYDEBUG 0
43 #endif
44 #if YYDEBUG
45 extern int yydebug;
46 #endif
47 
48 /* Token kinds. */
49 #ifndef YYTOKENTYPE
50 # define YYTOKENTYPE
51  enum yytokentype
52  {
53  YYEMPTY = -2,
54  END_OF_INPUT = 0, /* "end-of-input" */
55  YYerror = 256, /* error */
56  YYUNDEF = 257, /* "invalid token" */
57  keyword_class = 258, /* "`class'" */
58  keyword_module = 259, /* "`module'" */
59  keyword_def = 260, /* "`def'" */
60  keyword_undef = 261, /* "`undef'" */
61  keyword_begin = 262, /* "`begin'" */
62  keyword_rescue = 263, /* "`rescue'" */
63  keyword_ensure = 264, /* "`ensure'" */
64  keyword_end = 265, /* "`end'" */
65  keyword_if = 266, /* "`if'" */
66  keyword_unless = 267, /* "`unless'" */
67  keyword_then = 268, /* "`then'" */
68  keyword_elsif = 269, /* "`elsif'" */
69  keyword_else = 270, /* "`else'" */
70  keyword_case = 271, /* "`case'" */
71  keyword_when = 272, /* "`when'" */
72  keyword_while = 273, /* "`while'" */
73  keyword_until = 274, /* "`until'" */
74  keyword_for = 275, /* "`for'" */
75  keyword_break = 276, /* "`break'" */
76  keyword_next = 277, /* "`next'" */
77  keyword_redo = 278, /* "`redo'" */
78  keyword_retry = 279, /* "`retry'" */
79  keyword_in = 280, /* "`in'" */
80  keyword_do = 281, /* "`do'" */
81  keyword_do_cond = 282, /* "`do' for condition" */
82  keyword_do_block = 283, /* "`do' for block" */
83  keyword_do_LAMBDA = 284, /* "`do' for lambda" */
84  keyword_return = 285, /* "`return'" */
85  keyword_yield = 286, /* "`yield'" */
86  keyword_super = 287, /* "`super'" */
87  keyword_self = 288, /* "`self'" */
88  keyword_nil = 289, /* "`nil'" */
89  keyword_true = 290, /* "`true'" */
90  keyword_false = 291, /* "`false'" */
91  keyword_and = 292, /* "`and'" */
92  keyword_or = 293, /* "`or'" */
93  keyword_not = 294, /* "`not'" */
94  modifier_if = 295, /* "`if' modifier" */
95  modifier_unless = 296, /* "`unless' modifier" */
96  modifier_while = 297, /* "`while' modifier" */
97  modifier_until = 298, /* "`until' modifier" */
98  modifier_rescue = 299, /* "`rescue' modifier" */
99  keyword_alias = 300, /* "`alias'" */
100  keyword_defined = 301, /* "`defined?'" */
101  keyword_BEGIN = 302, /* "`BEGIN'" */
102  keyword_END = 303, /* "`END'" */
103  keyword__LINE__ = 304, /* "`__LINE__'" */
104  keyword__FILE__ = 305, /* "`__FILE__'" */
105  keyword__ENCODING__ = 306, /* "`__ENCODING__'" */
106  tIDENTIFIER = 307, /* "local variable or method" */
107  tFID = 308, /* "method" */
108  tGVAR = 309, /* "global variable" */
109  tIVAR = 310, /* "instance variable" */
110  tCONSTANT = 311, /* "constant" */
111  tCVAR = 312, /* "class variable" */
112  tLABEL = 313, /* "label" */
113  tINTEGER = 314, /* "integer literal" */
114  tFLOAT = 315, /* "float literal" */
115  tRATIONAL = 316, /* "rational literal" */
116  tIMAGINARY = 317, /* "imaginary literal" */
117  tCHAR = 318, /* "char literal" */
118  tNTH_REF = 319, /* "numbered reference" */
119  tBACK_REF = 320, /* "back reference" */
120  tSTRING_CONTENT = 321, /* "literal content" */
121  tREGEXP_END = 322, /* tREGEXP_END */
122  tSP = 323, /* "escaped space" */
123  tUPLUS = 132, /* "unary+" */
124  tUMINUS = 133, /* "unary-" */
125  tPOW = 134, /* "**" */
126  tCMP = 135, /* "<=>" */
127  tEQ = 140, /* "==" */
128  tEQQ = 141, /* "===" */
129  tNEQ = 142, /* "!=" */
130  tGEQ = 139, /* ">=" */
131  tLEQ = 138, /* "<=" */
132  tANDOP = 148, /* "&&" */
133  tOROP = 149, /* "||" */
134  tMATCH = 143, /* "=~" */
135  tNMATCH = 144, /* "!~" */
136  tDOT2 = 128, /* ".." */
137  tDOT3 = 129, /* "..." */
138  tBDOT2 = 130, /* "(.." */
139  tBDOT3 = 131, /* "(..." */
140  tAREF = 145, /* "[]" */
141  tASET = 146, /* "[]=" */
142  tLSHFT = 136, /* "<<" */
143  tRSHFT = 137, /* ">>" */
144  tANDDOT = 150, /* "&." */
145  tCOLON2 = 147, /* "::" */
146  tCOLON3 = 324, /* ":: at EXPR_BEG" */
147  tOP_ASGN = 325, /* "operator-assignment" */
148  tASSOC = 326, /* "=>" */
149  tLPAREN = 327, /* "(" */
150  tLPAREN_ARG = 328, /* "( arg" */
151  tRPAREN = 329, /* ")" */
152  tLBRACK = 330, /* "[" */
153  tLBRACE = 331, /* "{" */
154  tLBRACE_ARG = 332, /* "{ arg" */
155  tSTAR = 333, /* "*" */
156  tDSTAR = 334, /* "**arg" */
157  tAMPER = 335, /* "&" */
158  tLAMBDA = 336, /* "->" */
159  tSYMBEG = 337, /* "symbol literal" */
160  tSTRING_BEG = 338, /* "string literal" */
161  tXSTRING_BEG = 339, /* "backtick literal" */
162  tREGEXP_BEG = 340, /* "regexp literal" */
163  tWORDS_BEG = 341, /* "word list" */
164  tQWORDS_BEG = 342, /* "verbatim word list" */
165  tSYMBOLS_BEG = 343, /* "symbol list" */
166  tQSYMBOLS_BEG = 344, /* "verbatim symbol list" */
167  tSTRING_END = 345, /* "terminator" */
168  tSTRING_DEND = 346, /* "'}'" */
169  tSTRING_DBEG = 347, /* tSTRING_DBEG */
170  tSTRING_DVAR = 348, /* tSTRING_DVAR */
171  tLAMBEG = 349, /* tLAMBEG */
172  tLABEL_END = 350, /* tLABEL_END */
173  tLOWEST = 351, /* tLOWEST */
174  tUMINUS_NUM = 352, /* tUMINUS_NUM */
175  tLAST_TOKEN = 353 /* tLAST_TOKEN */
176  };
177  typedef enum yytokentype yytoken_kind_t;
178 #endif
179 
180 /* Value type. */
181 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
182 union YYSTYPE
183 {
184 
185  VALUE val;
186  NODE *node;
187  ID id;
188  int num;
189  st_table *tbl;
190  const struct vtable *vars;
191  struct rb_strterm_struct *strterm;
192  struct lex_context ctxt;
193 
194 
195 };
196 typedef union YYSTYPE YYSTYPE;
197 # define YYSTYPE_IS_TRIVIAL 1
198 # define YYSTYPE_IS_DECLARED 1
199 #endif
200 
201 /* Location type. */
202 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
203 typedef struct YYLTYPE YYLTYPE;
204 struct YYLTYPE
205 {
206  int first_line;
207  int first_column;
208  int last_line;
209  int last_column;
210 };
211 # define YYLTYPE_IS_DECLARED 1
212 # define YYLTYPE_IS_TRIVIAL 1
213 #endif
214 
215 
216 
217 
218 int yyparse (struct parser_params *p);
219 
220 
221 #endif /* !YY_YY_Y_TAB_H_INCLUDED */
Definition: node.h:155
Definition: parse.h:205
Definition: st.h:79
Definition: parse.c:255
Definition: parse.h:183
uintptr_t ID
Type that represents a Ruby identifier such as a variable name.
Definition: value.h:52
uintptr_t VALUE
Type that represents a Ruby object.
Definition: value.h:40