Slide 16
Slide 16 text
lex_state: 13 bit flags
enum lex_state_bits {
EXPR_BEG_bit,
/ *
ignore newline, +/- is a sign.
* /
EXPR_END_bit,
/ *
newline signif
i
cant, +/- is an operator.
* /
EXPR_ENDARG_bit,
/ *
ditto, and unbound braces.
* /
EXPR_ENDFN_bit,
/ *
ditto, and unbound braces.
* /
EXPR_ARG_bit,
/ *
newline signif
i
cant, +/- is an operator.
* /
EXPR_CMDARG_bit,
/ *
newline signif
i
cant, +/- is an operator.
* /
EXPR_MID_bit,
/ *
newline signif
i
cant, +/- is an operator.
* /
EXPR_FNAME_bit,
/ *
ignore newline, no reserved words.
* /
EXPR_DOT_bit,
/ *
right after `.', `&.' or `
: :
', no reserved words.
* /
EXPR_CLASS_bit,
/ *
immediate after `class', no here document.
* /
EXPR_LABEL_bit,
/ *
flag bit, label is allowed.
* /
EXPR_LABELED_bit,
/ *
flag bit, just after a label.
* /
EXPR_FITEM_bit,
/ *
symbol literal as FNAME.
* /
EXPR_MAX_STATE
};