]> granicus.if.org Git - re2c/commit
Split options into constant and mutable; restricted access to mutable ones.
authorUlya Trofimovich <skvadrik@gmail.com>
Tue, 7 Mar 2017 21:29:17 +0000 (21:29 +0000)
committerUlya Trofimovich <skvadrik@gmail.com>
Tue, 7 Mar 2017 21:57:05 +0000 (21:57 +0000)
commitf9fd740f3b95483afcbd34c20ac7749a2b9a50d5
tree77003a29d32ea0a3c85567b094284f0106e48144
parent93e30f340739966da3beca811f0203ca7414ce89
Split options into constant and mutable; restricted access to mutable ones.

Some options are immutable (target, output files; global switches like
conditions, reuse mode, storable states; support of flex syntax, etc.).
These options are passed as command-line arguments and never change.
It is safe to read them from any program point after parsing command-line
arguments.

Other options are configurable; they have block scope (may be specified
anywhere inside of the block and still affect the whole block).
Reading mutable options of yet unparsed block is not allowed because
they may affect the way RE2C parses current block (RE2C would be tempted
to base decisions on the latest option value, which may not be the final
one).
15 files changed:
re2c/bootstrap/src/ast/lex.cc
re2c/bootstrap/src/ast/lex_conf.cc
re2c/bootstrap/src/ast/parser.cc
re2c/bootstrap/src/conf/parse_opts.cc
re2c/src/ast/lex.re
re2c/src/ast/lex_conf.re
re2c/src/ast/parser.h
re2c/src/ast/parser.ypp
re2c/src/ast/scanner.cc
re2c/src/ast/scanner.h
re2c/src/code/output.cc
re2c/src/conf/opt.cc
re2c/src/conf/opt.h
re2c/src/conf/parse_opts.re
re2c/src/main.cc