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 {