Mercurial > projects > dang
comparison lexer/Lexer.d @ 126:c3b24e7e8cf8
Carius changes to the parser. Parsing attributes, lexing many keywords(not all yet).
author | Anders Johnsen <skabet@gmail.com> |
---|---|
date | Tue, 27 May 2008 10:32:31 +0200 |
parents | 6a5f745d351c |
children | 2be29b296081 |
comparison
equal
deleted
inserted
replaced
125:d604152de1eb | 126:c3b24e7e8cf8 |
---|---|
206 return Token(Tok.RightShift, Loc(position++ - 1), 2); | 206 return Token(Tok.RightShift, Loc(position++ - 1), 2); |
207 return Token(Tok.Gt, Loc(position - 1), 1); | 207 return Token(Tok.Gt, Loc(position - 1), 1); |
208 } | 208 } |
209 Token plus() | 209 Token plus() |
210 { | 210 { |
211 if(source[position] == '=') | |
212 return Token(Tok.PlusAssign, Loc(position++ - 1), 2); | |
211 return Token(Tok.Plus, Loc(position - 1), 1); | 213 return Token(Tok.Plus, Loc(position - 1), 1); |
212 } | 214 } |
213 Token minus() | 215 Token minus() |
214 { | 216 { |
217 if(source[position] == '=') | |
218 return Token(Tok.MinusAssign, Loc(position++ - 1), 2); | |
215 return Token(Tok.Minus, Loc(position - 1), 1); | 219 return Token(Tok.Minus, Loc(position - 1), 1); |
216 } | 220 } |
217 Token star() | 221 Token star() |
218 { | 222 { |
223 if(source[position] == '=') | |
224 return Token(Tok.StarAssign, Loc(position++ - 1), 2); | |
219 return Token(Tok.Star, Loc(position - 1), 1); | 225 return Token(Tok.Star, Loc(position - 1), 1); |
220 } | 226 } |
221 Token slash() | 227 Token slash() |
222 { | 228 { |
223 switch(source[position]) | 229 switch(source[position]) |
224 { | 230 { |
231 case '=': | |
232 return Token(Tok.SlashAssign, Loc(position++ - 1), 2); | |
225 case '/': | 233 case '/': |
226 while(getNextChar != CharType.EOF) | 234 while(getNextChar != CharType.EOF) |
227 { | 235 { |
228 if(source[position++] == '\n') | 236 if(source[position++] == '\n') |
229 return this.next; | 237 return this.next; |
273 } | 281 } |
274 } | 282 } |
275 | 283 |
276 Token percent() | 284 Token percent() |
277 { | 285 { |
286 if(source[position] == '=') | |
287 return Token(Tok.PercentAssign, Loc(position++ - 1), 2); | |
278 return Token(Tok.Percent, Loc(position - 1), 1); | 288 return Token(Tok.Percent, Loc(position - 1), 1); |
279 } | 289 } |
280 | 290 |
281 Token string() | 291 Token string() |
282 { | 292 { |