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 #ifndef TOOLS_GN_TOKEN_H_ | 5 #ifndef TOOLS_GN_TOKEN_H_ |
6 #define TOOLS_GN_TOKEN_H_ | 6 #define TOOLS_GN_TOKEN_H_ |
7 | 7 |
8 #include "base/strings/string_piece.h" | 8 #include "base/strings/string_piece.h" |
9 #include "tools/gn/location.h" | 9 #include "tools/gn/location.h" |
10 | 10 |
(...skipping 27 matching lines...) Expand all Loading... |
38 RIGHT_PAREN, | 38 RIGHT_PAREN, |
39 LEFT_BRACKET, | 39 LEFT_BRACKET, |
40 RIGHT_BRACKET, | 40 RIGHT_BRACKET, |
41 LEFT_BRACE, | 41 LEFT_BRACE, |
42 RIGHT_BRACE, | 42 RIGHT_BRACE, |
43 | 43 |
44 IF, | 44 IF, |
45 ELSE, | 45 ELSE, |
46 IDENTIFIER, // foo | 46 IDENTIFIER, // foo |
47 COMMA, // , | 47 COMMA, // , |
48 COMMENT, // #...\n | 48 UNCLASSIFIED_COMMENT, // #...\n, of unknown style (will be converted |
| 49 // to one below) |
| 50 LINE_COMMENT, // #...\n on a line alone. |
| 51 SUFFIX_COMMENT, // #...\n on a line following other code. |
49 | 52 |
50 UNCLASSIFIED_OPERATOR, // TODO(scottmg): This shouldn't be necessary. | 53 UNCLASSIFIED_OPERATOR, |
51 | 54 |
52 NUM_TYPES | 55 NUM_TYPES |
53 }; | 56 }; |
54 | 57 |
55 Token(); | 58 Token(); |
56 Token(const Location& location, Type t, const base::StringPiece& v); | 59 Token(const Location& location, Type t, const base::StringPiece& v); |
57 | 60 |
58 Type type() const { return type_; } | 61 Type type() const { return type_; } |
59 const base::StringPiece& value() const { return value_; } | 62 const base::StringPiece& value() const { return value_; } |
60 const Location& location() const { return location_; } | 63 const Location& location() const { return location_; } |
61 LocationRange range() const { | 64 LocationRange range() const { |
62 return LocationRange(location_, | 65 return LocationRange( |
63 Location(location_.file(), location_.line_number(), | 66 location_, |
64 location_.char_offset() + | 67 Location(location_.file(), |
65 static_cast<int>(value_.size()))); | 68 location_.line_number(), |
| 69 location_.char_offset() + static_cast<int>(value_.size()), |
| 70 location_.byte() + static_cast<int>(value_.size()))); |
66 } | 71 } |
67 | 72 |
68 // Helper functions for comparing this token to something. | 73 // Helper functions for comparing this token to something. |
69 bool IsIdentifierEqualTo(const char* v) const; | 74 bool IsIdentifierEqualTo(const char* v) const; |
70 bool IsStringEqualTo(const char* v) const; | 75 bool IsStringEqualTo(const char* v) const; |
71 | 76 |
72 private: | 77 private: |
73 Type type_; | 78 Type type_; |
74 base::StringPiece value_; | 79 base::StringPiece value_; |
75 Location location_; | 80 Location location_; |
76 }; | 81 }; |
77 | 82 |
78 #endif // TOOLS_GN_TOKEN_H_ | 83 #endif // TOOLS_GN_TOKEN_H_ |
OLD | NEW |