This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
fix type in Perl_list()
[perl5.git] / parser.h
index 9c22094..19c5c63 100644 (file)
--- a/parser.h
+++ b/parser.h
@@ -42,9 +42,9 @@ typedef struct yy_parser {
     /* Number of tokens to shift before error messages enabled.  */
     int                    yyerrstatus;
 
-    int                    stack_size;
     int                    yylen;      /* length of active reduction */
     yy_stack_frame  *stack;    /* base of stack */
+    yy_stack_frame  *stack_max1;/* (top-1)th element of allocated stack */
     yy_stack_frame  *ps;       /* current stack frame */
 
     /* lexer state */
@@ -58,6 +58,7 @@ typedef struct yy_parser {
                                   1 = @{...}  2 = ->@ */
     U8         expect;         /* how to interpret ambiguous tokens */
     bool       preambled;
+    bool        sub_no_recover; /* can't recover from a sublex error */
     I32                lex_formbrack;  /* bracket count at outer format level */
     OP         *lex_inpat;     /* in pattern $) and $| are special */
     OP         *lex_op;        /* extra info to pass back on op */
@@ -95,6 +96,7 @@ typedef struct yy_parser {
     U16                in_my;          /* we're compiling a "my"/"our" declaration */
     U8         lex_state;      /* next token is determined */
     U8         error_count;    /* how many compile errors so far, max 10 */
+    U8         sub_error_count; /* the number of errors before sublexing */
     HV         *in_my_stash;   /* declared class of this "my" declaration */
     PerlIO     *rsfp;          /* current source file pointer */
     AV         *rsfp_filters;  /* holds chain of active source filters */
@@ -110,11 +112,14 @@ typedef struct yy_parser {
     line_t     herelines;      /* number of lines in here-doc */
     line_t     preambling;     /* line # when processing $ENV{PERL5DB} */
 
+    bool        sig_seen;       /* the currently parsing sub has a signature */
     /* these are valid while parsing a subroutine signature */
     IV          sig_elems;      /* number of signature elements seen so far */
     IV          sig_optelems;   /* number of optional signature elems seen */
     char        sig_slurpy;     /* the sigil of the slurpy var (or null) */
 
+    bool        recheck_utf8_validity;
+
     PERL_BITFIELD16    in_pod:1;      /* lexer is within a =pod section */
     PERL_BITFIELD16    filtered:1;    /* source filters in evalbytes */
     PERL_BITFIELD16    saw_infix_sigil:1; /* saw & or * or % operator */