comparison trunk/src/main.d @ 28:3a9daccf7d96

- Added table for identifiers to Lexer. - Added keywords table. - Added keywords to TOK.
author aziz
date Sun, 24 Jun 2007 17:19:03 +0000
parents b05fff8e2ce4
children 426767b94635
comparison
equal deleted inserted replaced
27:43b6bf56f0e9 28:3a9daccf7d96
35 <sourcetext>`); 35 <sourcetext>`);
36 foreach(ref token; tokens) 36 foreach(ref token; tokens)
37 { 37 {
38 if (end != token.start) 38 if (end != token.start)
39 writef("%s", xmlescape(end[0 .. token.start - end])); 39 writef("%s", xmlescape(end[0 .. token.start - end]));
40 char[] span = xmlescape(token.start[0 .. token.end-token.start]); 40 string span = xmlescape(token.span);
41 switch(token.type) 41 switch(token.type)
42 { 42 {
43 case TOK.Identifier: 43 case TOK.Identifier:
44 writef("<i>%s</i>", span); 44 writef("<i>%s</i>", span);
45 break; 45 break;
62 TOK.RBracket, TOK.LBrace, TOK.RBrace: 62 TOK.RBracket, TOK.LBrace, TOK.RBrace:
63 writef("<br>%s</br>", span); 63 writef("<br>%s</br>", span);
64 break; 64 break;
65 case TOK.EOF: break; 65 case TOK.EOF: break;
66 default: 66 default:
67 writef("%s", span); 67 if (token.isKeyword())
68 writef("<k>%s</k>", span);
69 else
70 writef("%s", span);
68 } 71 }
69 end = token.end; 72 end = token.end;
70 } 73 }
71 writef("\n</sourcetext>"); 74 writef("\n</sourcetext>");
72 } 75 }