This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Distinguish C- and perly- literals - PERLY_SNAIL
[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_COMMA = 270,
72     PERLY_DOT = 271,
73     PERLY_EQUAL_SIGN = 272,
74     PERLY_MINUS = 273,
75     PERLY_PLUS = 274,
76     PERLY_SEMICOLON = 275,
77     PERLY_SNAIL = 276,
78     BAREWORD = 277,
79     METHOD = 278,
80     FUNCMETH = 279,
81     THING = 280,
82     PMFUNC = 281,
83     PRIVATEREF = 282,
84     QWLIST = 283,
85     FUNC0OP = 284,
86     FUNC0SUB = 285,
87     UNIOPSUB = 286,
88     LSTOPSUB = 287,
89     PLUGEXPR = 288,
90     PLUGSTMT = 289,
91     LABEL = 290,
92     FORMAT = 291,
93     SUB = 292,
94     SIGSUB = 293,
95     ANONSUB = 294,
96     ANON_SIGSUB = 295,
97     PACKAGE = 296,
98     USE = 297,
99     WHILE = 298,
100     UNTIL = 299,
101     IF = 300,
102     UNLESS = 301,
103     ELSE = 302,
104     ELSIF = 303,
105     CONTINUE = 304,
106     FOR = 305,
107     GIVEN = 306,
108     WHEN = 307,
109     DEFAULT = 308,
110     LOOPEX = 309,
111     DOTDOT = 310,
112     YADAYADA = 311,
113     FUNC0 = 312,
114     FUNC1 = 313,
115     FUNC = 314,
116     UNIOP = 315,
117     LSTOP = 316,
118     MULOP = 317,
119     ADDOP = 318,
120     DOLSHARP = 319,
121     DO = 320,
122     HASHBRACK = 321,
123     NOAMP = 322,
124     LOCAL = 323,
125     MY = 324,
126     REQUIRE = 325,
127     COLONATTR = 326,
128     FORMLBRACK = 327,
129     FORMRBRACK = 328,
130     SUBLEXSTART = 329,
131     SUBLEXEND = 330,
132     PREC_LOW = 331,
133     OROP = 332,
134     DOROP = 333,
135     ANDOP = 334,
136     NOTOP = 335,
137     ASSIGNOP = 336,
138     PERLY_QUESTION_MARK = 337,
139     PERLY_COLON = 338,
140     OROR = 339,
141     DORDOR = 340,
142     ANDAND = 341,
143     BITOROP = 342,
144     BITANDOP = 343,
145     CHEQOP = 344,
146     NCEQOP = 345,
147     CHRELOP = 346,
148     NCRELOP = 347,
149     SHIFTOP = 348,
150     MATCHOP = 349,
151     PERLY_EXCLAMATION_MARK = 350,
152     PERLY_TILDE = 351,
153     UMINUS = 352,
154     REFGEN = 353,
155     POWOP = 354,
156     PREINC = 355,
157     PREDEC = 356,
158     POSTINC = 357,
159     POSTDEC = 358,
160     POSTJOIN = 359,
161     ARROW = 360
162   };
163 #endif
164
165 /* Value type.  */
166 #ifdef PERL_IN_TOKE_C
167 static bool
168 S_is_opval_token(int type) {
169     switch (type) {
170     case BAREWORD:
171     case FUNC0OP:
172     case FUNC0SUB:
173     case FUNCMETH:
174     case LABEL:
175     case LSTOPSUB:
176     case METHOD:
177     case PLUGEXPR:
178     case PLUGSTMT:
179     case PMFUNC:
180     case PRIVATEREF:
181     case QWLIST:
182     case THING:
183     case UNIOPSUB:
184         return 1;
185     }
186     return 0;
187 }
188 #endif /* PERL_IN_TOKE_C */
189 #endif /* PERL_CORE */
190 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
191 union YYSTYPE
192 {
193
194     I32 ival; /* __DEFAULT__ (marker for regen_perly.pl;
195                                 must always be 1st union member) */
196     char *pval;
197     OP *opval;
198     GV *gvval;
199
200
201 };
202 typedef union YYSTYPE YYSTYPE;
203 # define YYSTYPE_IS_TRIVIAL 1
204 # define YYSTYPE_IS_DECLARED 1
205 #endif
206
207
208
209 int yyparse (void);
210
211
212 /* Generated from:
213  * 6987c13ecfd48ba93b1c8e7ab230ecce7e10a59e60fe854504796b6792e1c2cc perly.y
214  * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl
215  * ex: set ro: */