summaryrefslogtreecommitdiffstats
path: root/src/lexer.cc
diff options
context:
space:
mode:
authorEvan Martin <martine@danga.com>2011-12-30 23:15:17 (GMT)
committerEvan Martin <martine@danga.com>2011-12-30 23:15:47 (GMT)
commitbc3eb871320566f6a22e07e85c96e03e68f8918b (patch)
tree2096bdd16033651815b0871233ca8d3ddc0c4f59 /src/lexer.cc
parentd44db63aea41f9965b9caa8f311d14ab65b1ad31 (diff)
downloadNinja-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.cc40
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;
+ }
}
}
{