This repository has been archived by the owner on Jun 1, 2023. It is now read-only.
/
perly.h
285 lines (262 loc) · 6.07 KB
/
perly.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
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
/* ex: set ro ft=c: -*- mode: c; buffer-read-only: t -*-
!!!!!!! DO NOT EDIT THIS FILE !!!!!!!
This file is built by regen_perly.pl from perly.y.
Any changes made here will be lost!
*/
#define PERL_BISON_VERSION 30000
#ifdef PERL_CORE
/* A Bison parser, made by GNU Bison 3.0.4. */
/* Bison interface for Yacc-like parsers in C
Copyright (C) 1984, 1989-1990, 2000-2015 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 3 of the License, 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, see <http://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
under terms of your choice, so long as that work isn't itself a
parser generator using the skeleton or a modified version thereof
as a parser skeleton. Alternatively, if you modify or redistribute
the parser skeleton itself, you may (at your option) remove this
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int yydebug;
#endif
/* Token type. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
enum yytokentype
{
GRAMPROG = 258,
GRAMEXPR = 259,
GRAMBLOCK = 260,
GRAMBARESTMT = 261,
GRAMFULLSTMT = 262,
GRAMSTMTSEQ = 263,
BAREWORD = 264,
METHOD = 265,
FUNCMETH = 266,
THING = 267,
PMFUNC = 268,
PRIVATEREF = 269,
QWLIST = 270,
FUNC0OP = 271,
FUNC0SUB = 272,
UNIOPSUB = 273,
LSTOPSUB = 274,
PLUGEXPR = 275,
PLUGSTMT = 276,
CLASSDECL = 277,
LABEL = 278,
FORMAT = 279,
SUB = 280,
METHDECL = 281,
MULTIDECL = 282,
ANONSUB = 283,
PACKAGE = 284,
USE = 285,
WHILE = 286,
UNTIL = 287,
IF = 288,
UNLESS = 289,
ELSE = 290,
ELSIF = 291,
CONTINUE = 292,
FOR = 293,
GIVEN = 294,
WHEN = 295,
DEFAULT = 296,
LOOPEX = 297,
DOTDOT = 298,
YADAYADA = 299,
FUNC0 = 300,
FUNC1 = 301,
FUNC = 302,
UNIOP = 303,
LSTOP = 304,
RELOP = 305,
EQOP = 306,
MULOP = 307,
ADDOP = 308,
DOLSHARP = 309,
DO = 310,
HASHBRACK = 311,
NOAMP = 312,
LOCAL = 313,
MY = 314,
HAS = 315,
REQUIRE = 316,
COLONATTR = 317,
FORMLBRACK = 318,
FORMRBRACK = 319,
PREC_LOW = 320,
OROP = 321,
DOROP = 322,
ANDOP = 323,
NOTOP = 324,
ASSIGNOP = 325,
OROR = 326,
DORDOR = 327,
ANDAND = 328,
BITOROP = 329,
BITANDOP = 330,
SHIFTOP = 331,
MATCHOP = 332,
UMINUS = 333,
REFGEN = 334,
POWOP = 335,
POWCOP = 336,
PREINC = 337,
PREDEC = 338,
POSTINC = 339,
POSTDEC = 340,
POSTJOIN = 341,
ARROW = 342
};
#endif
/* Tokens. */
#define GRAMPROG 258
#define GRAMEXPR 259
#define GRAMBLOCK 260
#define GRAMBARESTMT 261
#define GRAMFULLSTMT 262
#define GRAMSTMTSEQ 263
#define BAREWORD 264
#define METHOD 265
#define FUNCMETH 266
#define THING 267
#define PMFUNC 268
#define PRIVATEREF 269
#define QWLIST 270
#define FUNC0OP 271
#define FUNC0SUB 272
#define UNIOPSUB 273
#define LSTOPSUB 274
#define PLUGEXPR 275
#define PLUGSTMT 276
#define CLASSDECL 277
#define LABEL 278
#define FORMAT 279
#define SUB 280
#define METHDECL 281
#define MULTIDECL 282
#define ANONSUB 283
#define PACKAGE 284
#define USE 285
#define WHILE 286
#define UNTIL 287
#define IF 288
#define UNLESS 289
#define ELSE 290
#define ELSIF 291
#define CONTINUE 292
#define FOR 293
#define GIVEN 294
#define WHEN 295
#define DEFAULT 296
#define LOOPEX 297
#define DOTDOT 298
#define YADAYADA 299
#define FUNC0 300
#define FUNC1 301
#define FUNC 302
#define UNIOP 303
#define LSTOP 304
#define RELOP 305
#define EQOP 306
#define MULOP 307
#define ADDOP 308
#define DOLSHARP 309
#define DO 310
#define HASHBRACK 311
#define NOAMP 312
#define LOCAL 313
#define MY 314
#define HAS 315
#define REQUIRE 316
#define COLONATTR 317
#define FORMLBRACK 318
#define FORMRBRACK 319
#define PREC_LOW 320
#define OROP 321
#define DOROP 322
#define ANDOP 323
#define NOTOP 324
#define ASSIGNOP 325
#define OROR 326
#define DORDOR 327
#define ANDAND 328
#define BITOROP 329
#define BITANDOP 330
#define SHIFTOP 331
#define MATCHOP 332
#define UMINUS 333
#define REFGEN 334
#define POWOP 335
#define POWCOP 336
#define PREINC 337
#define PREDEC 338
#define POSTINC 339
#define POSTDEC 340
#define POSTJOIN 341
#define ARROW 342
/* Value type. */
#ifdef PERL_IN_TOKE_C
static bool
S_is_opval_token(int type) {
switch (type) {
case BAREWORD:
case CLASSDECL:
case FUNC0OP:
case FUNC0SUB:
case FUNCMETH:
case LSTOPSUB:
case METHOD:
case PLUGEXPR:
case PLUGSTMT:
case PMFUNC:
case PRIVATEREF:
case QWLIST:
case THING:
case UNIOPSUB:
return 1;
}
return 0;
}
#endif /* PERL_IN_TOKE_C */
#endif /* PERL_CORE */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
union YYSTYPE
{
I32 ival; /* __DEFAULT__ (marker for regen_perly.pl;
must always be 1st union member) */
char *pval;
OP *opval;
GV *gvval;
};
typedef union YYSTYPE YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
#endif
int yyparse (void);
#if YYDEBUG
#define YYPRINT
#endif
/* Generated from:
* c02cbf3ed3b7e00baa6692892f43ad290efbd9c28564a644db9d40dffd97edbd perly.y
* 34c0653ef7c691f2b4ac71336f4ea94e2bd925344002392f88ceeb0b435555fa regen_perly.pl
* ex: set ro: */