OSDN Git Service

Increment the version number.
[android-x86/external-swiftshader.git] / src / Radiance / compiler / preprocessor / Token.cpp
1 //\r
2 // Copyright (c) 2011 The ANGLE Project Authors. All rights reserved.\r
3 // Use of this source code is governed by a BSD-style license that can be\r
4 // found in the LICENSE file.\r
5 //\r
6 \r
7 #include "Token.h"\r
8 \r
9 #include <cassert>\r
10 \r
11 #include "numeric_lex.h"\r
12 \r
13 namespace pp\r
14 {\r
15 \r
16 void Token::reset()\r
17 {\r
18     type = 0;\r
19     flags = 0;\r
20     location = SourceLocation();\r
21     text.clear();\r
22 }\r
23 \r
24 bool Token::equals(const Token& other) const\r
25 {\r
26     return (type == other.type) &&\r
27            (flags == other.flags) &&\r
28            (location == other.location) &&\r
29            (text == other.text);\r
30 }\r
31 \r
32 void Token::setAtStartOfLine(bool start)\r
33 {\r
34     if (start)\r
35         flags |= AT_START_OF_LINE;\r
36     else\r
37         flags &= ~AT_START_OF_LINE;\r
38 }\r
39 \r
40 void Token::setHasLeadingSpace(bool space)\r
41 {\r
42     if (space)\r
43         flags |= HAS_LEADING_SPACE;\r
44     else\r
45         flags &= ~HAS_LEADING_SPACE;\r
46 }\r
47 \r
48 void Token::setExpansionDisabled(bool disable)\r
49 {\r
50     if (disable)\r
51         flags |= EXPANSION_DISABLED;\r
52     else\r
53         flags &= ~EXPANSION_DISABLED;\r
54 }\r
55 \r
56 bool Token::iValue(int* value) const\r
57 {\r
58     assert(type == CONST_INT);\r
59     return numeric_lex_int(text, value);\r
60 }\r
61 \r
62 bool Token::uValue(unsigned int* value) const\r
63 {\r
64     assert(type == CONST_INT);\r
65     return numeric_lex_int(text, value);\r
66 }\r
67 \r
68 bool Token::fValue(float* value) const\r
69 {\r
70     assert(type == CONST_FLOAT);\r
71     return numeric_lex_float(text, value);\r
72 }\r
73 \r
74 std::ostream& operator<<(std::ostream& out, const Token& token)\r
75 {\r
76     if (token.hasLeadingSpace())\r
77         out << " ";\r
78 \r
79     out << token.text;\r
80     return out;\r
81 }\r
82 \r
83 }  // namespace pp\r