aboutsummaryrefslogtreecommitdiff
path: root/build2/lexer.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-11-11 10:01:16 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-11-11 10:01:16 +0200
commit8ad3ca4563b9a1c3daac37a86173789af03f68ba (patch)
tree3a9d8ce49e948720e1e1f847500f5ab5a66ae326 /build2/lexer.cxx
parenta084c6650036db9f2a8cd69e31492c5dae237793 (diff)
Get rid of lexer modes overriding pair separators
Diffstat (limited to 'build2/lexer.cxx')
-rw-r--r--build2/lexer.cxx8
1 files changed, 2 insertions, 6 deletions
diff --git a/build2/lexer.cxx b/build2/lexer.cxx
index 0ce9770..2c728d6 100644
--- a/build2/lexer.cxx
+++ b/build2/lexer.cxx
@@ -34,7 +34,6 @@ namespace build2
{
const char* s1 (nullptr);
const char* s2 (nullptr);
- char p ('\0');
bool s (true);
bool q (true);
@@ -44,28 +43,24 @@ namespace build2
{
s1 = ":=+ $(){}[]#\t\n";
s2 = " = ";
- p = ps;
break;
}
case lexer_mode::value:
{
s1 = " $(){}[]#\t\n";
s2 = " ";
- p = ps;
break;
}
case lexer_mode::attribute:
{
s1 = " $(]#\t\n";
s2 = " ";
- p = ps;
break;
}
case lexer_mode::eval:
{
s1 = ":<>=! $(){}[]#\t\n";
s2 = " == ";
- p = ps;
break;
}
case lexer_mode::single_quoted:
@@ -75,12 +70,13 @@ namespace build2
case lexer_mode::variable:
{
// These are handled in an ad hoc way in word().
+ assert (ps == '\0');
break;
}
default: assert (false); // Unhandled custom mode.
}
- state_.push (state {m, p, s, q, s1, s2});
+ state_.push (state {m, ps, s, q, s1, s2});
}
token lexer::