23
23
% define parse.error detailed
24
24
% define parse.trace
25
25
% define api.push- pull push
26
+ % define api.token.constructor
26
27
27
28
% locations
28
29
@@ -122,7 +123,7 @@ if (isInputRange!R && is(ElementType!R : dchar))
122
123
location.step();
123
124
124
125
if (input.empty)
125
- return Symbol (TokenKind .YYEOF , location);
126
+ return Symbol.YYEOF ( location);
126
127
127
128
// Numbers.
128
129
if (input.front.isNumber)
@@ -149,7 +150,7 @@ if (isInputRange!R && is(ElementType!R : dchar))
149
150
copy.popFront;
150
151
}
151
152
}
152
- return Symbol (TokenKind .NUM , ival, location);
153
+ return Symbol.NUM ( ival, location);
153
154
}
154
155
155
156
// Individual characters
@@ -158,17 +159,17 @@ if (isInputRange!R && is(ElementType!R : dchar))
158
159
location.end.column++ ;
159
160
switch (ch)
160
161
{
161
- case ' +' : return Symbol(TokenKind .PLUS , location);
162
- case ' -' : return Symbol(TokenKind .MINUS , location);
163
- case ' *' : return Symbol(TokenKind .STAR , location);
164
- case ' /' : return Symbol(TokenKind .SLASH , location);
165
- case ' (' : return Symbol(TokenKind .LPAR , location);
166
- case ' )' : return Symbol(TokenKind .RPAR , location);
162
+ case ' +' : return Symbol.PLUS ( location);
163
+ case ' -' : return Symbol.MINUS ( location);
164
+ case ' *' : return Symbol.STAR ( location);
165
+ case ' /' : return Symbol.SLASH ( location);
166
+ case ' (' : return Symbol.LPAR ( location);
167
+ case ' )' : return Symbol.RPAR ( location);
167
168
case ' \n ' :
168
169
{
169
170
location.end.line++ ;
170
171
location.end.column = 1 ;
171
- return Symbol (TokenKind .EOL , location);
172
+ return Symbol.EOL ( location);
172
173
}
173
174
default : assert (0 );
174
175
}
0 commit comments