annotate gcc/d/dmd/tokens.h @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2 /* Compiler implementation of the D programming language
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
3 * Copyright (C) 1999-2019 by The D Language Foundation, All Rights Reserved
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
4 * written by Walter Bright
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
5 * http://www.digitalmars.com
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
6 * Distributed under the Boost Software License, Version 1.0.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
7 * http://www.boost.org/LICENSE_1_0.txt
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
8 * https://github.com/dlang/dmd/blob/master/src/dmd/tokens.h
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
9 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
10
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
11 #pragma once
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
12
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
13 #include "root/port.h"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
14 #include "globals.h"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
15
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
16 class Identifier;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
17
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
18 /* Tokens:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
19 ( )
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
20 [ ]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
21 { }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
22 < > <= >= == != === !==
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
23 << >> <<= >>= >>> >>>=
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
24 + - += -=
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
25 * / % *= /= %=
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
26 & | ^ &= |= ^=
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
27 = ! ~ @
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
28 ^^ ^^=
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
29 ++ --
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
30 . -> : , =>
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
31 ? && ||
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
32 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
33
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
34 enum TOK
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
35 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
36 TOKreserved,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
37
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
38 // Other
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
39 TOKlparen, TOKrparen,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
40 TOKlbracket, TOKrbracket,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
41 TOKlcurly, TOKrcurly,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
42 TOKcolon, TOKneg,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
43 TOKsemicolon, TOKdotdotdot,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
44 TOKeof, TOKcast,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
45 TOKnull, TOKassert,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
46 TOKtrue, TOKfalse,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
47 TOKarray, TOKcall,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
48 TOKaddress,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
49 TOKtype, TOKthrow,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
50 TOKnew, TOKdelete,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
51 TOKstar, TOKsymoff,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
52 TOKvar, TOKdotvar,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
53 TOKdotid, TOKdotti,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
54 TOKdottype, TOKslice,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
55 TOKarraylength, TOKversion,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
56 TOKmodule, TOKdollar,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
57 TOKtemplate, TOKdottd,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
58 TOKdeclaration, TOKtypeof,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
59 TOKpragma, TOKdsymbol,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
60 TOKtypeid, TOKuadd,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
61 TOKremove,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
62 TOKnewanonclass, TOKcomment,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
63 TOKarrayliteral, TOKassocarrayliteral,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
64 TOKstructliteral,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
65 TOKclassreference,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
66 TOKthrownexception,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
67 TOKdelegateptr,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
68 TOKdelegatefuncptr,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
69
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
70 // 54
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
71 // Operators
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
72 TOKlt, TOKgt,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
73 TOKle, TOKge,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
74 TOKequal, TOKnotequal,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
75 TOKidentity, TOKnotidentity,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
76 TOKindex, TOKis,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
77
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
78 // 64
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
79 // NCEG floating point compares
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
80 // !<>= <> <>= !> !>= !< !<= !<>
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
81 TOKunord,TOKlg,TOKleg,TOKule,TOKul,TOKuge,TOKug,TOKue,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
82
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
83 // 72
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
84 TOKshl, TOKshr,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
85 TOKshlass, TOKshrass,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
86 TOKushr, TOKushrass,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
87 TOKcat, TOKcatass, // ~ ~=
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
88 TOKadd, TOKmin, TOKaddass, TOKminass,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
89 TOKmul, TOKdiv, TOKmod,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
90 TOKmulass, TOKdivass, TOKmodass,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
91 TOKand, TOKor, TOKxor,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
92 TOKandass, TOKorass, TOKxorass,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
93 TOKassign, TOKnot, TOKtilde,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
94 TOKplusplus, TOKminusminus, TOKconstruct, TOKblit,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
95 TOKdot, TOKarrow, TOKcomma,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
96 TOKquestion, TOKandand, TOKoror,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
97 TOKpreplusplus, TOKpreminusminus,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
98
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
99 // 111
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
100 // Numeric literals
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
101 TOKint32v, TOKuns32v,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
102 TOKint64v, TOKuns64v,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
103 TOKint128v, TOKuns128v,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
104 TOKfloat32v, TOKfloat64v, TOKfloat80v,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
105 TOKimaginary32v, TOKimaginary64v, TOKimaginary80v,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
106
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
107 // Char constants
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
108 TOKcharv, TOKwcharv, TOKdcharv,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
109
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
110 // Leaf operators
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
111 TOKidentifier, TOKstring, TOKxstring,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
112 TOKthis, TOKsuper,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
113 TOKhalt, TOKtuple,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
114 TOKerror,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
115
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
116 // Basic types
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
117 TOKvoid,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
118 TOKint8, TOKuns8,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
119 TOKint16, TOKuns16,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
120 TOKint32, TOKuns32,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
121 TOKint64, TOKuns64,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
122 TOKint128, TOKuns128,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
123 TOKfloat32, TOKfloat64, TOKfloat80,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
124 TOKimaginary32, TOKimaginary64, TOKimaginary80,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
125 TOKcomplex32, TOKcomplex64, TOKcomplex80,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
126 TOKchar, TOKwchar, TOKdchar, TOKbool,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
127
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
128 // 158
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
129 // Aggregates
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
130 TOKstruct, TOKclass, TOKinterface, TOKunion, TOKenum, TOKimport,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
131 TOKalias, TOKoverride, TOKdelegate, TOKfunction,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
132 TOKmixin,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
133
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
134 TOKalign, TOKextern, TOKprivate, TOKprotected, TOKpublic, TOKexport,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
135 TOKstatic, TOKfinal, TOKconst, TOKabstract,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
136 TOKdebug, TOKdeprecated, TOKin, TOKout, TOKinout, TOKlazy,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
137 TOKauto, TOKpackage, TOKmanifest, TOKimmutable,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
138
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
139 // Statements
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
140 TOKif, TOKelse, TOKwhile, TOKfor, TOKdo, TOKswitch,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
141 TOKcase, TOKdefault, TOKbreak, TOKcontinue, TOKwith,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
142 TOKsynchronized, TOKreturn, TOKgoto, TOKtry, TOKcatch, TOKfinally,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
143 TOKasm, TOKforeach, TOKforeach_reverse,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
144 TOKscope,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
145 TOKon_scope_exit, TOKon_scope_failure, TOKon_scope_success,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
146
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
147 // Contracts
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
148 TOKinvariant,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
149
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
150 // Testing
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
151 TOKunittest,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
152
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
153 // Added after 1.0
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
154 TOKargTypes,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
155 TOKref,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
156 TOKmacro,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
157
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
158 TOKparameters,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
159 TOKtraits,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
160 TOKoverloadset,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
161 TOKpure,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
162 TOKnothrow,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
163 TOKgshared,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
164 TOKline,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
165 TOKfile,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
166 TOKfilefullpath,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
167 TOKmodulestring,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
168 TOKfuncstring,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
169 TOKprettyfunc,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
170 TOKshared,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
171 TOKat,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
172 TOKpow,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
173 TOKpowass,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
174 TOKgoesto,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
175 TOKvector,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
176 TOKpound,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
177
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
178 TOKinterval,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
179 TOKvoidexp,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
180 TOKcantexp,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
181
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
182 TOKvectorarray,
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
183
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
184 TOKMAX
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
185 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
186
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
187 #define TOKwild TOKinout
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
188
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
189 // Token has an anonymous struct, which is not strict ISO C++.
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
190 #if defined(__GNUC__)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
191 #pragma GCC diagnostic push
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
192 #pragma GCC diagnostic ignored "-Wpedantic"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
193 #endif
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
194
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
195 struct Token
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
196 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
197 Token *next;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
198 Loc loc;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
199 const utf8_t *ptr; // pointer to first character of this token within buffer
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
200 TOK value;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
201 const utf8_t *blockComment; // doc comment string prior to this token
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
202 const utf8_t *lineComment; // doc comment for previous token
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
203 union
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
204 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
205 // Integers
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
206 d_int64 int64value;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
207 d_uns64 uns64value;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
208
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
209 // Floats
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
210 real_t floatvalue;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
211
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
212 struct
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
213 { utf8_t *ustring; // UTF8 string
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
214 unsigned len;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
215 unsigned char postfix; // 'c', 'w', 'd'
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
216 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
217
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
218 Identifier *ident;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
219 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
220
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
221 static const char *tochars[TOKMAX];
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
222
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
223 static Token *freelist;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
224 static Token *alloc();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
225 void free();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
226
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
227 Token() : next(NULL) {}
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
228 int isKeyword();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
229 const char *toChars() const;
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
230 static const char *toChars(TOK);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
231 };
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
232
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
233 #if defined(__GNUC__)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
234 #pragma GCC diagnostic pop
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
235 #endif