This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Distinguish C- and perly- literals - PERLY_AMPERSAND
[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 #define PERL_BISON_VERSION  30005
8
9 #ifdef PERL_CORE
10 /* A Bison parser, made by GNU Bison 3.5.1.  */
11
12 /* Bison interface for Yacc-like parsers in C
13
14    Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
15    Inc.
16
17    This program is free software: you can redistribute it and/or modify
18    it under the terms of the GNU General Public License as published by
19    the Free Software Foundation, either version 3 of the License, or
20    (at your option) any later version.
21
22    This program is distributed in the hope that it will be useful,
23    but WITHOUT ANY WARRANTY; without even the implied warranty of
24    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
25    GNU General Public License for more details.
26
27    You should have received a copy of the GNU General Public License
28    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
29
30 /* As a special exception, you may create a larger work that contains
31    part or all of the Bison parser skeleton and distribute that work
32    under terms of your choice, so long as that work isn't itself a
33    parser generator using the skeleton or a modified version thereof
34    as a parser skeleton.  Alternatively, if you modify or redistribute
35    the parser skeleton itself, you may (at your option) remove this
36    special exception, which will cause the skeleton and the resulting
37    Bison output files to be licensed under the GNU General Public
38    License without this special exception.
39
40    This special exception was added by the Free Software Foundation in
41    version 2.2 of Bison.  */
42
43 /* Undocumented macros, especially those whose name start with YY_,
44    are private implementation details.  Do not rely on them.  */
45
46 /* Debug traces.  */
47 #ifndef YYDEBUG
48 # define YYDEBUG 0
49 #endif
50 #if YYDEBUG
51 extern int yydebug;
52 #endif
53
54 /* Token type.  */
55 #ifndef YYTOKENTYPE
56 # define YYTOKENTYPE
57   enum yytokentype
58   {
59     GRAMPROG = 258,
60     GRAMEXPR = 259,
61     GRAMBLOCK = 260,
62     GRAMBARESTMT = 261,
63     GRAMFULLSTMT = 262,
64     GRAMSTMTSEQ = 263,
65     GRAMSUBSIGNATURE = 264,
66     PERLY_AMPERSAND = 265,
67     PERLY_BRACE_OPEN = 266,
68     PERLY_BRACE_CLOSE = 267,
69     PERLY_BRACKET_OPEN = 268,
70     PERLY_BRACKET_CLOSE = 269,
71     PERLY_DOT = 270,
72     PERLY_EQUAL_SIGN = 271,
73     PERLY_SEMICOLON = 272,
74     BAREWORD = 273,
75     METHOD = 274,
76     FUNCMETH = 275,
77     THING = 276,
78     PMFUNC = 277,
79     PRIVATEREF = 278,
80     QWLIST = 279,
81     FUNC0OP = 280,
82     FUNC0SUB = 281,
83     UNIOPSUB = 282,
84     LSTOPSUB = 283,
85     PLUGEXPR = 284,
86     PLUGSTMT = 285,
87     LABEL = 286,
88     FORMAT = 287,
89     SUB = 288,
90     SIGSUB = 289,
91     ANONSUB = 290,
92     ANON_SIGSUB = 291,
93     PACKAGE = 292,
94     USE = 293,
95     WHILE = 294,
96     UNTIL = 295,
97     IF = 296,
98     UNLESS = 297,
99     ELSE = 298,
100     ELSIF = 299,
101     CONTINUE = 300,
102     FOR = 301,
103     GIVEN = 302,
104     WHEN = 303,
105     DEFAULT = 304,
106     LOOPEX = 305,
107     DOTDOT = 306,
108     YADAYADA = 307,
109     FUNC0 = 308,
110     FUNC1 = 309,
111     FUNC = 310,
112     UNIOP = 311,
113     LSTOP = 312,
114     MULOP = 313,
115     ADDOP = 314,
116     DOLSHARP = 315,
117     DO = 316,
118     HASHBRACK = 317,
119     NOAMP = 318,
120     LOCAL = 319,
121     MY = 320,
122     REQUIRE = 321,
123     COLONATTR = 322,
124     FORMLBRACK = 323,
125     FORMRBRACK = 324,
126     SUBLEXSTART = 325,
127     SUBLEXEND = 326,
128     PREC_LOW = 327,
129     OROP = 328,
130     DOROP = 329,
131     ANDOP = 330,
132     NOTOP = 331,
133     ASSIGNOP = 332,
134     OROR = 333,
135     DORDOR = 334,
136     ANDAND = 335,
137     BITOROP = 336,
138     BITANDOP = 337,
139     CHEQOP = 338,
140     NCEQOP = 339,
141     CHRELOP = 340,
142     NCRELOP = 341,
143     SHIFTOP = 342,
144     MATCHOP = 343,
145     UMINUS = 344,
146     REFGEN = 345,
147     POWOP = 346,
148     PREINC = 347,
149     PREDEC = 348,
150     POSTINC = 349,
151     POSTDEC = 350,
152     POSTJOIN = 351,
153     ARROW = 352
154   };
155 #endif
156
157 /* Value type.  */
158 #ifdef PERL_IN_TOKE_C
159 static bool
160 S_is_opval_token(int type) {
161     switch (type) {
162     case BAREWORD:
163     case FUNC0OP:
164     case FUNC0SUB:
165     case FUNCMETH:
166     case LABEL:
167     case LSTOPSUB:
168     case METHOD:
169     case PLUGEXPR:
170     case PLUGSTMT:
171     case PMFUNC:
172     case PRIVATEREF:
173     case QWLIST:
174     case THING:
175     case UNIOPSUB:
176         return 1;
177     }
178     return 0;
179 }
180 #endif /* PERL_IN_TOKE_C */
181 #endif /* PERL_CORE */
182 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
183 union YYSTYPE
184 {
185
186     I32 ival; /* __DEFAULT__ (marker for regen_perly.pl;
187                                 must always be 1st union member) */
188     char *pval;
189     OP *opval;
190     GV *gvval;
191
192
193 };
194 typedef union YYSTYPE YYSTYPE;
195 # define YYSTYPE_IS_TRIVIAL 1
196 # define YYSTYPE_IS_DECLARED 1
197 #endif
198
199
200
201 int yyparse (void);
202
203
204 /* Generated from:
205  * 2e61cf01f0e14707d220536eb9865fe226c153c967f8aa51eea0786f6a56feb9 perly.y
206  * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl
207  * ex: set ro: */