X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/df13534a362db9ee6def13689ce040e48c73a29a..9d9b1dc8244316e9c017c8694e94d467e7d41c21:/parser.h diff --git a/parser.h b/parser.h index ad148c2..4fa490a 100644 --- a/parser.h +++ b/parser.h @@ -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 */ + UV sig_elems; /* number of signature elements seen so far */ + UV 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 */