Mercurial > projects > dil
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 } |