diff options
author | Father Chrysostomos <sprout@cpan.org> | 2016-08-03 00:17:58 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2016-08-03 00:40:44 -0700 |
commit | 25e092d6d879f20e7550a209ec1899b76162846c (patch) | |
tree | 7dd2e671f33be838b8cb0aabc096127ba0cdc20c /parser.h | |
parent | 7ef70b3d59ec815fef24083df58e1ce363c63287 (diff) | |
download | perl-25e092d6d879f20e7550a209ec1899b76162846c.tar.gz |
Reorder parser struct for alignment
We still have a 16-bit hole, which I have noted. There’s no point in
moving the two U8s near the end of the struct (lex_fakeeof and lex_flags)
to fill that hole, as we would just have a bigger hole at the end.
Diffstat (limited to 'parser.h')
-rw-r--r-- | parser.h | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -57,6 +57,7 @@ typedef struct yy_parser { U8 lex_dojoin; /* doing an array interpolation 1 = @{...} 2 = ->@ */ U8 expect; /* how to interpret ambiguous tokens */ + bool preambled; 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 */ @@ -69,11 +70,10 @@ typedef struct yy_parser { I32 multi_end; /* last line of multi-line string */ UV multi_open; /* delimiter of said string */ UV multi_close; /* delimiter of said string */ - bool preambled; bool lex_re_reparsing; /* we're doing G_RE_REPARSING */ - I32 lex_allbrackets;/* (), [], {}, ?: bracket count */ U8 lex_super_state;/* lexer state to save */ U16 lex_sub_inwhat; /* "lex_inwhat" to use in sublex_push */ + I32 lex_allbrackets;/* (), [], {}, ?: bracket count */ OP *lex_sub_op; /* current op in y/// or pattern */ SV *lex_sub_repl; /* repl of s/// used in sublex_push */ LEXSHARED *lex_shared; @@ -95,6 +95,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 */ + /* 16-BIT HOLE */ 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 */ |