diff options
author | Evan Martin <martine@danga.com> | 2011-12-30 23:15:17 (GMT) |
---|---|---|
committer | Evan Martin <martine@danga.com> | 2011-12-30 23:15:47 (GMT) |
commit | bc3eb871320566f6a22e07e85c96e03e68f8918b (patch) | |
tree | 2096bdd16033651815b0871233ca8d3ddc0c4f59 /src/lexer.cc | |
parent | d44db63aea41f9965b9caa8f311d14ab65b1ad31 (diff) | |
download | Ninja-bc3eb871320566f6a22e07e85c96e03e68f8918b.zip Ninja-bc3eb871320566f6a22e07e85c96e03e68f8918b.tar.gz Ninja-bc3eb871320566f6a22e07e85c96e03e68f8918b.tar.bz2 |
allow hyphen in variable names
Diffstat (limited to 'src/lexer.cc')
-rw-r--r-- | src/lexer.cc | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/src/lexer.cc b/src/lexer.cc index 40d7def..d3ef43f 100644 --- a/src/lexer.cc +++ b/src/lexer.cc @@ -109,7 +109,7 @@ Lexer::Token Lexer::ReadToken() { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 192, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 160, 128, + 128, 128, 128, 128, 128, 160, 160, 128, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 128, 128, 128, 128, 128, 128, 128, 160, 160, 160, 160, 160, 160, 160, @@ -140,7 +140,7 @@ Lexer::Token Lexer::ReadToken() { yych = *p; if (yych <= 'Z') { - if (yych <= '-') { + if (yych <= ',') { if (yych <= 0x1F) { if (yych <= 0x00) goto yy21; if (yych == '\n') goto yy4; @@ -455,7 +455,7 @@ bool Lexer::ReadIdent(string* out) { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 128, 0, + 0, 0, 0, 0, 0, 128, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 128, 128, @@ -486,7 +486,7 @@ bool Lexer::ReadIdent(string* out) { yych = *p; if (yych <= '@') { if (yych <= '.') { - if (yych <= '-') goto yy83; + if (yych <= ',') goto yy83; } else { if (yych <= '/') goto yy83; if (yych >= ':') goto yy83; @@ -543,7 +543,7 @@ bool Lexer::ReadEvalString(EvalString* eval, bool path, string* err) { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 16, 128, 128, 128, 0, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 160, 128, + 128, 128, 128, 128, 128, 224, 160, 128, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 0, 128, 128, 128, 128, 128, 128, 224, 224, 224, 224, 224, 224, 224, @@ -610,27 +610,35 @@ yy91: } yy93: ++p; - if ((yych = *p) <= '9') { + if ((yych = *p) <= '/') { if (yych <= ' ') { if (yych == '\n') goto yy106; if (yych <= 0x1F) goto yy97; goto yy99; } else { - if (yych == '$') goto yy101; - if (yych <= '/') goto yy97; - goto yy103; + if (yych <= '$') { + if (yych <= '#') goto yy97; + goto yy101; + } else { + if (yych == '-') goto yy103; + goto yy97; + } } } else { - if (yych <= '_') { + if (yych <= '^') { + if (yych <= '9') goto yy103; if (yych <= '@') goto yy97; if (yych <= 'Z') goto yy103; - if (yych <= '^') goto yy97; - goto yy103; - } else { - if (yych <= '`') goto yy97; - if (yych <= 'z') goto yy103; - if (yych <= '{') goto yy105; goto yy97; + } else { + if (yych <= '`') { + if (yych <= '_') goto yy103; + goto yy97; + } else { + if (yych <= 'z') goto yy103; + if (yych <= '{') goto yy105; + goto yy97; + } } } { |