diff options
author | Evan Martin <martine@danga.com> | 2011-02-04 00:55:25 (GMT) |
---|---|---|
committer | Evan Martin <martine@danga.com> | 2011-02-04 00:55:25 (GMT) |
commit | fab9170ff9161d7874bf9613e581f1c910a3fead (patch) | |
tree | 5532c2f20e845de45dd5bd49a4d46a4f63dd8c7f /src/parsers.cc | |
parent | aeda4872d35137bdac0b2d7a313ec6f82b993b13 (diff) | |
download | Ninja-fab9170ff9161d7874bf9613e581f1c910a3fead.zip Ninja-fab9170ff9161d7874bf9613e581f1c910a3fead.tar.gz Ninja-fab9170ff9161d7874bf9613e581f1c910a3fead.tar.bz2 |
ignore whitespace in makefiles
Diffstat (limited to 'src/parsers.cc')
-rw-r--r-- | src/parsers.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/parsers.cc b/src/parsers.cc index 532d98e..8e44a38 100644 --- a/src/parsers.cc +++ b/src/parsers.cc @@ -143,7 +143,7 @@ Token::Type Tokenizer::PeekToken() { return token_.type_; token_.pos_ = cur_; - if (cur_indent_ == -1) { + if (whitespace_significant_ && cur_indent_ == -1) { cur_indent_ = cur_ - cur_line_; if (cur_indent_ != last_indent_) { if (cur_indent_ > last_indent_) { @@ -213,9 +213,13 @@ void Tokenizer::ConsumeToken() { token_.Clear(); } +MakefileParser::MakefileParser() : tokenizer_(false) {} + bool MakefileParser::Parse(const string& input, string* err) { tokenizer_.Start(input.data(), input.data() + input.size()); + tokenizer_.SkipWhitespace(true); + if (!tokenizer_.ReadIdent(&out_)) return tokenizer_.ErrorExpected("output filename", err); if (!tokenizer_.ExpectToken(Token::COLON, err)) @@ -234,7 +238,7 @@ bool MakefileParser::Parse(const string& input, string* err) { } ManifestParser::ManifestParser(State* state, FileReader* file_reader) - : state_(state), file_reader_(file_reader) { + : state_(state), file_reader_(file_reader), tokenizer_(true) { env_ = &state->bindings_; } bool ManifestParser::Load(const string& filename, string* err) { |