summaryrefslogtreecommitdiffstats
path: root/src/parsers.cc
diff options
context:
space:
mode:
authorEvan Martin <martine@danga.com>2011-05-23 16:17:39 (GMT)
committerEvan Martin <martine@danga.com>2011-05-23 16:17:39 (GMT)
commit2bdd317515b574582467c8c284e4fdfa6c161f15 (patch)
treed7120928e692f4c6ba49c88f7d58bf08ad6ebf9d /src/parsers.cc
parent91e0f9ff96cc688c48973696d7d1dd2f4e356e3e (diff)
downloadNinja-2bdd317515b574582467c8c284e4fdfa6c161f15.zip
Ninja-2bdd317515b574582467c8c284e4fdfa6c161f15.tar.gz
Ninja-2bdd317515b574582467c8c284e4fdfa6c161f15.tar.bz2
refactor parser, check in some failing tests
Diffstat (limited to 'src/parsers.cc')
-rw-r--r--src/parsers.cc16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/parsers.cc b/src/parsers.cc
index bbcc56b..78d6164 100644
--- a/src/parsers.cc
+++ b/src/parsers.cc
@@ -41,19 +41,21 @@ string Token::AsString() const {
return "";
}
+bool SourceLocation::Error(const string& message, string* err) {
+ char buf[1024];
+ snprintf(buf, sizeof(buf), "line %d, col %d: %s", line_, column_,
+ message.c_str());
+ err->assign(buf);
+ return false;
+}
+
void Tokenizer::Start(const char* start, const char* end) {
cur_line_ = cur_ = start;
end_ = end;
}
bool Tokenizer::Error(const string& message, string* err) {
- char buf[1024];
- snprintf(buf, sizeof(buf), "line %d, col %d: %s",
- line_number_,
- (int)(token_.pos_ - cur_line_) + 1,
- message.c_str());
- err->assign(buf);
- return false;
+ return Location().Error(message, err);
}
bool Tokenizer::ErrorExpected(const string& expected, string* err) {