summaryrefslogtreecommitdiffstats
path: root/src/depfile_parser.in.cc
diff options
context:
space:
mode:
authorEvan Martin <martine@danga.com>2011-12-29 20:48:25 (GMT)
committerEvan Martin <martine@danga.com>2011-12-29 20:48:25 (GMT)
commitad7d9f43f1bd8e04321d8fdb07ebf7b96ab525a1 (patch)
tree35bfce6a5a437fc08ec322ea056790f1fefcdc35 /src/depfile_parser.in.cc
parent47ba90bd530cfd269f40e61e5d41e87298812ddb (diff)
downloadNinja-ad7d9f43f1bd8e04321d8fdb07ebf7b96ab525a1.zip
Ninja-ad7d9f43f1bd8e04321d8fdb07ebf7b96ab525a1.tar.gz
Ninja-ad7d9f43f1bd8e04321d8fdb07ebf7b96ab525a1.tar.bz2
minor re2c cleanups
Diffstat (limited to 'src/depfile_parser.in.cc')
-rw-r--r--src/depfile_parser.in.cc8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/depfile_parser.in.cc b/src/depfile_parser.in.cc
index b310c58..de1c38f 100644
--- a/src/depfile_parser.in.cc
+++ b/src/depfile_parser.in.cc
@@ -42,7 +42,6 @@ bool DepfileParser::Parse(string* content, string* err) {
for (;;) {
// start: beginning of the current parsed span.
const char* start = in;
- char yych;
/*!re2c
re2c:define:YYCTYPE = "char";
re2c:define:YYCURSOR = in;
@@ -53,8 +52,6 @@ bool DepfileParser::Parse(string* content, string* err) {
re2c:indent:top = 2;
re2c:indent:string = " ";
- re2c:yych:emit = 0;
-
nul = "\000";
escape = [ \\#*$[|];
@@ -63,15 +60,16 @@ bool DepfileParser::Parse(string* content, string* err) {
*out++ = yych;
continue;
}
- '\\'[^\000\n] {
+ '\\' [^\000\n] {
// Let backslash before other characters through verbatim.
*out++ = '\\';
*out++ = yych;
continue;
}
[a-zA-Z0-9+,/_:.-]+ {
- // Got a span of plain text. Copy it to out if necessary.
+ // Got a span of plain text.
int len = in - start;
+ // Need to shift it over if we're overwriting backslashes.
if (out < start)
memmove(out, start, len);
out += len;