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