]> granicus.if.org Git - re2c/commit
Don't ever reparse '/*!rules:re2c ... */' block.
authorUlya Trofimovich <skvadrik@gmail.com>
Sun, 5 Mar 2017 10:43:54 +0000 (10:43 +0000)
committerUlya Trofimovich <skvadrik@gmail.com>
Sun, 5 Mar 2017 10:43:54 +0000 (10:43 +0000)
commit7903c55c9cef84a056d5404ed0019054ddaf731a
tree5f25d869147644766496684d21cd0ffe33ed2b09
parent858b1c7b2a62cd69c9abc50994c38ba87ba9e3a7
Don't ever reparse '/*!rules:re2c ... */' block.

AST is immutable and independent of options: encoding expansion and other
option-sensitive transformations are delayed until AST is converted to
intermediate representation. Thus AST can be shared among different blocks
and conditions and reused with any set of options without modifications.

Changes in tests are trivial: warnings from the rules block are no longer
emitted (we don't compile AST to DFA for rules block anymore, since it
will be discarded anyway); skeleton tests no longer emit '.input' and
'.keys' files for rules block.
25 files changed:
re2c/bootstrap/src/ast/lex.cc
re2c/bootstrap/src/ast/parser.cc
re2c/src/ast/lex.re
re2c/src/ast/parser.ypp
re2c/src/ast/scanner.cc
re2c/src/ast/scanner.h
re2c/test/repeat-01.cgir--skeleton.c
re2c/test/repeat-01.cgir.c
re2c/test/repeat-02.cgir--skeleton.c
re2c/test/repeat-02.cgir.c
re2c/test/repeat-03.cgir--skeleton.c
re2c/test/repeat-03.cgir.c
re2c/test/repeat-04.cgir.c
re2c/test/repeat-06.gir--skeleton.c
re2c/test/repeat-06.gir.c
re2c/test/repeat-07.gir.c
re2c/test/repeat-07_default.gir--skeleton.c
re2c/test/repeat-07_error.gir.c
re2c/test/reuse_conds_default_0.cgir--skeleton.c
re2c/test/reuse_conds_default_0.cgir.c
re2c/test/reuse_conds_default_1.cgir--skeleton.c
re2c/test/reuse_conds_default_1.cgir.c
re2c/test/reuse_conds_setup_0.cgir.c
re2c/test/reuse_conds_setup_1.cgir--eager-skip.c
re2c/test/reuse_conds_setup_1.cgir.c