| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "tools/gn/tokenizer.h" | 5 #include "tools/gn/tokenizer.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
| 9 #include "tools/gn/input_file.h" | 9 #include "tools/gn/input_file.h" |
| 10 | 10 |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 } else if (type == Token::IDENTIFIER) { | 113 } else if (type == Token::IDENTIFIER) { |
| 114 if (token_value == "if") | 114 if (token_value == "if") |
| 115 type = Token::IF; | 115 type = Token::IF; |
| 116 else if (token_value == "else") | 116 else if (token_value == "else") |
| 117 type = Token::ELSE; | 117 type = Token::ELSE; |
| 118 else if (token_value == "true") | 118 else if (token_value == "true") |
| 119 type = Token::TRUE_TOKEN; | 119 type = Token::TRUE_TOKEN; |
| 120 else if (token_value == "false") | 120 else if (token_value == "false") |
| 121 type = Token::FALSE_TOKEN; | 121 type = Token::FALSE_TOKEN; |
| 122 } else if (type == Token::UNCLASSIFIED_COMMENT) { | 122 } else if (type == Token::UNCLASSIFIED_COMMENT) { |
| 123 if (AtStartOfLine(token_begin)) | 123 if (AtStartOfLine(token_begin) && |
| 124 // If it's a standalone comment, but is a continuation of a comment on |
| 125 // a previous line, then instead make it a continued suffix comment. |
| 126 (tokens_.empty() || tokens_.back().type() != Token::SUFFIX_COMMENT || |
| 127 tokens_.back().location().line_number() + 1 != |
| 128 location.line_number() || |
| 129 tokens_.back().location().char_offset() != location.char_offset())) { |
| 124 type = Token::LINE_COMMENT; | 130 type = Token::LINE_COMMENT; |
| 125 else | 131 } else { |
| 126 type = Token::SUFFIX_COMMENT; | 132 type = Token::SUFFIX_COMMENT; |
| 133 } |
| 127 } | 134 } |
| 128 | 135 |
| 129 tokens_.push_back(Token(location, type, token_value)); | 136 tokens_.push_back(Token(location, type, token_value)); |
| 130 } | 137 } |
| 131 if (err_->has_error()) | 138 if (err_->has_error()) |
| 132 tokens_.clear(); | 139 tokens_.clear(); |
| 133 return tokens_; | 140 return tokens_; |
| 134 } | 141 } |
| 135 | 142 |
| 136 // static | 143 // static |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 367 } else if (cur_char() == '/' && cur_ + 1 < input_.size() && | 374 } else if (cur_char() == '/' && cur_ + 1 < input_.size() && |
| 368 (input_[cur_ + 1] == '/' || input_[cur_ + 1] == '*')) { | 375 (input_[cur_ + 1] == '/' || input_[cur_ + 1] == '*')) { |
| 369 // Different types of comments. | 376 // Different types of comments. |
| 370 help = "Comments should start with # instead"; | 377 help = "Comments should start with # instead"; |
| 371 } else { | 378 } else { |
| 372 help = "I have no idea what this is."; | 379 help = "I have no idea what this is."; |
| 373 } | 380 } |
| 374 | 381 |
| 375 return Err(location, "Invalid token.", help); | 382 return Err(location, "Invalid token.", help); |
| 376 } | 383 } |
| OLD | NEW |