summaryrefslogtreecommitdiff
path: root/parser.h
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2016-08-03 00:17:58 -0700
committerFather Chrysostomos <sprout@cpan.org>2016-08-03 00:40:44 -0700
commit25e092d6d879f20e7550a209ec1899b76162846c (patch)
tree7dd2e671f33be838b8cb0aabc096127ba0cdc20c /parser.h
parent7ef70b3d59ec815fef24083df58e1ce363c63287 (diff)
downloadperl-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.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/parser.h b/parser.h
index 135051d87f..34d85db059 100644
--- a/parser.h
+++ b/parser.h
@@ -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 */