diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2016-10-22 11:59:20 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-11-04 09:26:34 +0200 |
commit | 31e16a7413813293e3cccb6799eaa08b7af5af4e (patch) | |
tree | 45f06abbcf44652b58c3a2ad7485f64108994abd /build2/test/script/lexer.cxx | |
parent | 8e3a8ffa6579a51f5a9351e1b99c07d3e1fbd234 (diff) |
Implement support for compound tests
Diffstat (limited to 'build2/test/script/lexer.cxx')
-rw-r--r-- | build2/test/script/lexer.cxx | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/build2/test/script/lexer.cxx b/build2/test/script/lexer.cxx index 5061a1d..2192f35 100644 --- a/build2/test/script/lexer.cxx +++ b/build2/test/script/lexer.cxx @@ -26,24 +26,24 @@ namespace build2 { case lexer_mode::script_line: { - s1 = "=!|&<> $(#\t\n"; - s2 = "== "; + s1 = ";=!|&<> $(#\t\n"; + s2 = " == "; break; } case lexer_mode::assign_line: { // As script_line but with variable assignments. // - s1 = "=+!|&<> $(#\t\n"; - s2 = " == "; + s1 = ";=+!|&<> $(#\t\n"; + s2 = " == "; break; } case lexer_mode::variable_line: { - // Like value except we don't recognize {. + // Like value except we recognize ';' and don't recognize '{'. // - s1 = " $([]#\t\n"; - s2 = " "; + s1 = "; $([]#\t\n"; + s2 = " "; break; } @@ -159,6 +159,18 @@ namespace build2 } } + // Line separators. + // + if (m == lexer_mode::script_line || + m == lexer_mode::assign_line || + m == lexer_mode::variable_line) + { + switch (c) + { + case ';': return make_token (type::semi); + } + } + // Command line operator/separators. // if (m == lexer_mode::script_line || m == lexer_mode::assign_line) |