summaryrefslogtreecommitdiff
path: root/perly.h
diff options
context:
space:
mode:
authorDavid Mitchell <davem@iabyn.com>2016-08-18 09:53:11 +0100
committerDavid Mitchell <davem@iabyn.com>2016-08-18 18:55:09 +0100
commit49fb862041f1f74fafbc91afa553624c43078261 (patch)
tree8cd973987dc238b0111a66e1232286ebde339f5e /perly.h
parent0cf18b74ec1005ca929e64dd9158674d5163ff0a (diff)
downloadperl-49fb862041f1f74fafbc91afa553624c43078261.tar.gz
signatures: eliminate XSIGVAR, add KEY_sigvar
When I moved subroutine signature processing into perly.y with v5.25.3-101-gd3d9da4, I added a new lexer PL_expect state, XSIGVAR. This indicated, when about to parse a variable, that it was a signature element rather than a my variable; in particular, it makes ($,...) be toked as the lone sigil '$' rather than the punctuation variable '$,'. However this is a bit heavy-handled; so instead this commit adds a new allowed pseudo-keyword value to PL_in_my: as well as KEY_my, KEY_our and KEY_state, it can now be KEY_sigvar. This is a less intrusive change to the lexer.
Diffstat (limited to 'perly.h')
-rw-r--r--perly.h297
1 files changed, 110 insertions, 187 deletions
diff --git a/perly.h b/perly.h
index 9e08cb5a95..b6d3a3d28c 100644
--- a/perly.h
+++ b/perly.h
@@ -4,20 +4,19 @@
Any changes made here will be lost!
*/
-#define PERL_BISON_VERSION 20003
+#define PERL_BISON_VERSION 30000
#ifdef PERL_CORE
-/* A Bison parser, made by GNU Bison 2.3. */
+/* A Bison parser, made by GNU Bison 3.0.2. */
-/* Skeleton interface for Bison's Yacc-like parsers in C
+/* Bison interface for Yacc-like parsers in C
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
- This program is free software; you can redistribute it and/or modify
+ 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 2, or (at your option)
- any later version.
+ 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
@@ -25,9 +24,7 @@
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, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA. */
+ 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
@@ -42,179 +39,103 @@
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
-/* Tokens. */
+/* Debug traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int yydebug;
+#endif
+
+/* Token type. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- 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,
- LABEL = 277,
- FORMAT = 278,
- SUB = 279,
- ANONSUB = 280,
- PACKAGE = 281,
- USE = 282,
- WHILE = 283,
- UNTIL = 284,
- IF = 285,
- UNLESS = 286,
- ELSE = 287,
- ELSIF = 288,
- CONTINUE = 289,
- FOR = 290,
- GIVEN = 291,
- WHEN = 292,
- DEFAULT = 293,
- LOOPEX = 294,
- DOTDOT = 295,
- YADAYADA = 296,
- FUNC0 = 297,
- FUNC1 = 298,
- FUNC = 299,
- UNIOP = 300,
- LSTOP = 301,
- RELOP = 302,
- EQOP = 303,
- MULOP = 304,
- ADDOP = 305,
- DOLSHARP = 306,
- DO = 307,
- HASHBRACK = 308,
- NOAMP = 309,
- LOCAL = 310,
- MY = 311,
- REQUIRE = 312,
- COLONATTR = 313,
- FORMLBRACK = 314,
- FORMRBRACK = 315,
- PREC_LOW = 316,
- DOROP = 317,
- OROP = 318,
- ANDOP = 319,
- NOTOP = 320,
- ASSIGNOP = 321,
- DORDOR = 322,
- OROR = 323,
- ANDAND = 324,
- BITOROP = 325,
- BITANDOP = 326,
- SHIFTOP = 327,
- MATCHOP = 328,
- REFGEN = 329,
- UMINUS = 330,
- POWOP = 331,
- POSTJOIN = 332,
- POSTDEC = 333,
- POSTINC = 334,
- PREDEC = 335,
- PREINC = 336,
- ARROW = 337
- };
+ 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,
+ LABEL = 277,
+ FORMAT = 278,
+ SUB = 279,
+ ANONSUB = 280,
+ PACKAGE = 281,
+ USE = 282,
+ WHILE = 283,
+ UNTIL = 284,
+ IF = 285,
+ UNLESS = 286,
+ ELSE = 287,
+ ELSIF = 288,
+ CONTINUE = 289,
+ FOR = 290,
+ GIVEN = 291,
+ WHEN = 292,
+ DEFAULT = 293,
+ LOOPEX = 294,
+ DOTDOT = 295,
+ YADAYADA = 296,
+ FUNC0 = 297,
+ FUNC1 = 298,
+ FUNC = 299,
+ UNIOP = 300,
+ LSTOP = 301,
+ RELOP = 302,
+ EQOP = 303,
+ MULOP = 304,
+ ADDOP = 305,
+ DOLSHARP = 306,
+ DO = 307,
+ HASHBRACK = 308,
+ NOAMP = 309,
+ LOCAL = 310,
+ MY = 311,
+ REQUIRE = 312,
+ COLONATTR = 313,
+ FORMLBRACK = 314,
+ FORMRBRACK = 315,
+ PREC_LOW = 316,
+ OROP = 317,
+ DOROP = 318,
+ ANDOP = 319,
+ NOTOP = 320,
+ ASSIGNOP = 321,
+ OROR = 322,
+ DORDOR = 323,
+ ANDAND = 324,
+ BITOROP = 325,
+ BITANDOP = 326,
+ SHIFTOP = 327,
+ MATCHOP = 328,
+ UMINUS = 329,
+ REFGEN = 330,
+ POWOP = 331,
+ PREINC = 332,
+ PREDEC = 333,
+ POSTINC = 334,
+ POSTDEC = 335,
+ POSTJOIN = 336,
+ ARROW = 337
+ };
#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 LABEL 277
-#define FORMAT 278
-#define SUB 279
-#define ANONSUB 280
-#define PACKAGE 281
-#define USE 282
-#define WHILE 283
-#define UNTIL 284
-#define IF 285
-#define UNLESS 286
-#define ELSE 287
-#define ELSIF 288
-#define CONTINUE 289
-#define FOR 290
-#define GIVEN 291
-#define WHEN 292
-#define DEFAULT 293
-#define LOOPEX 294
-#define DOTDOT 295
-#define YADAYADA 296
-#define FUNC0 297
-#define FUNC1 298
-#define FUNC 299
-#define UNIOP 300
-#define LSTOP 301
-#define RELOP 302
-#define EQOP 303
-#define MULOP 304
-#define ADDOP 305
-#define DOLSHARP 306
-#define DO 307
-#define HASHBRACK 308
-#define NOAMP 309
-#define LOCAL 310
-#define MY 311
-#define REQUIRE 312
-#define COLONATTR 313
-#define FORMLBRACK 314
-#define FORMRBRACK 315
-#define PREC_LOW 316
-#define DOROP 317
-#define OROP 318
-#define ANDOP 319
-#define NOTOP 320
-#define ASSIGNOP 321
-#define DORDOR 322
-#define OROR 323
-#define ANDAND 324
-#define BITOROP 325
-#define BITANDOP 326
-#define SHIFTOP 327
-#define MATCHOP 328
-#define REFGEN 329
-#define UMINUS 330
-#define POWOP 331
-#define POSTJOIN 332
-#define POSTDEC 333
-#define POSTINC 334
-#define PREDEC 335
-#define PREINC 336
-#define ARROW 337
-
-
-
+/* Value type. */
#ifdef PERL_IN_TOKE_C
static bool
S_is_opval_token(int type) {
@@ -239,25 +160,27 @@ S_is_opval_token(int type) {
#endif /* PERL_IN_TOKE_C */
#endif /* PERL_CORE */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
+typedef union YYSTYPE YYSTYPE;
+union YYSTYPE
{
+
I32 ival; /* __DEFAULT__ (marker for regen_perly.pl;
must always be 1st union member) */
char *pval;
OP *opval;
GV *gvval;
-}
-/* Line 1529 of yacc.c. */
- YYSTYPE;
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
+
+};
# define YYSTYPE_IS_TRIVIAL 1
+# define YYSTYPE_IS_DECLARED 1
#endif
+int yyparse (void);
+
/* Generated from:
- * a9693ac90aafd6114d4c5413f46dba1d4488b62feb193e6d1cf11e77e9b25088 perly.y
+ * 1a8fc0f841dee6e563463a6b91bf9c410b47437c760f485a16d87ade3d66bf1d perly.y
* 3e1dff60f26df8933d7aed0c0e87177a0f022c14800c0707eb62a7db4196ac98 regen_perly.pl
* ex: set ro: */