Mercurial > projects > dang
annotate lexer/Keyword.d @ 37:858b9805843d new_gen
Bug-fixes
Void can now be used and is recognized as a keyword by lexer
Fixed a problem with casting on pointer types
The expression is now optional for a ReturnStmt (only legal in void funcs)
author | Anders Halager <halager@gmail.com> |
---|---|
date | Sun, 20 Apr 2008 23:53:05 +0200 |
parents | ce17bea8e9bd |
children | 4e879f82dd64 |
rev | line source |
---|---|
1 | 1 module lexer.Keyword; |
2 | |
3 import lexer.Token; | |
4 | |
5 Tok[char[]] keywords; | |
6 | |
7 static this () | |
8 { | |
9 keywords = | |
10 [ | |
36
ce17bea8e9bd
Switch statements support
Anders Halager <halager@gmail.com>
parents:
22
diff
changeset
|
11 // types |
1 | 12 "byte"[] : Tok.Byte, |
13 "ubyte" : Tok.Ubyte, | |
14 "short" : Tok.Short, | |
15 "ushort" : Tok.Ushort, | |
16 "int" : Tok.Int, | |
17 "uint" : Tok.Uint, | |
18 "long" : Tok.Long, | |
19 "ulong" : Tok.Ulong, | |
20 | |
12
6282db07115f
Added some ekstra tests, and allowed bool as a type
Anders Halager <halager@gmail.com>
parents:
11
diff
changeset
|
21 "bool" : Tok.Bool, |
6282db07115f
Added some ekstra tests, and allowed bool as a type
Anders Halager <halager@gmail.com>
parents:
11
diff
changeset
|
22 |
1 | 23 "float" : Tok.Float, |
24 "double" : Tok.Double, | |
25 | |
37 | 26 "void" : Tok.Void, |
27 | |
36
ce17bea8e9bd
Switch statements support
Anders Halager <halager@gmail.com>
parents:
22
diff
changeset
|
28 // type related |
ce17bea8e9bd
Switch statements support
Anders Halager <halager@gmail.com>
parents:
22
diff
changeset
|
29 "struct" : Tok.Struct, |
ce17bea8e9bd
Switch statements support
Anders Halager <halager@gmail.com>
parents:
22
diff
changeset
|
30 |
ce17bea8e9bd
Switch statements support
Anders Halager <halager@gmail.com>
parents:
22
diff
changeset
|
31 // control flow |
5
2c5a8f4c254a
Added very simple if support.
Anders Halager <halager@gmail.com>
parents:
1
diff
changeset
|
32 "if" : Tok.If, |
11
642c6a998fd9
Support for while statements and fixed scope for if
Anders Halager <halager@gmail.com>
parents:
5
diff
changeset
|
33 "else" : Tok.Else, |
642c6a998fd9
Support for while statements and fixed scope for if
Anders Halager <halager@gmail.com>
parents:
5
diff
changeset
|
34 "while" : Tok.While, |
36
ce17bea8e9bd
Switch statements support
Anders Halager <halager@gmail.com>
parents:
22
diff
changeset
|
35 "switch" : Tok.Switch, |
ce17bea8e9bd
Switch statements support
Anders Halager <halager@gmail.com>
parents:
22
diff
changeset
|
36 "case" : Tok.Case, |
ce17bea8e9bd
Switch statements support
Anders Halager <halager@gmail.com>
parents:
22
diff
changeset
|
37 "default" : Tok.Default, |
ce17bea8e9bd
Switch statements support
Anders Halager <halager@gmail.com>
parents:
22
diff
changeset
|
38 "return" : Tok.Return |
1 | 39 ]; |
40 } |