annotate lexer/Keyword.d @ 36:ce17bea8e9bd new_gen

Switch statements support Can only switch on IntegerLit's but multiple values per case and the default are supported. An error is emitted if a value is used multiple times or if theres is more than one default block
author Anders Halager <halager@gmail.com>
date Sun, 20 Apr 2008 22:39:07 +0200
parents e331e4e816e4
children 858b9805843d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
1 module lexer.Keyword;
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
2
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
3 import lexer.Token;
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
4
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
5 Tok[char[]] keywords;
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
6
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
7 static this ()
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
8 {
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
9 keywords =
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
10 [
36
ce17bea8e9bd Switch statements support
Anders Halager <halager@gmail.com>
parents: 22
diff changeset
11 // types
1
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
12 "byte"[] : Tok.Byte,
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
13 "ubyte" : Tok.Ubyte,
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
14 "short" : Tok.Short,
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
15 "ushort" : Tok.Ushort,
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
16 "int" : Tok.Int,
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
17 "uint" : Tok.Uint,
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
18 "long" : Tok.Long,
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
19 "ulong" : Tok.Ulong,
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
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
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
23 "float" : Tok.Float,
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
24 "double" : Tok.Double,
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
25
36
ce17bea8e9bd Switch statements support
Anders Halager <halager@gmail.com>
parents: 22
diff changeset
26 // type related
ce17bea8e9bd Switch statements support
Anders Halager <halager@gmail.com>
parents: 22
diff changeset
27 "struct" : Tok.Struct,
ce17bea8e9bd Switch statements support
Anders Halager <halager@gmail.com>
parents: 22
diff changeset
28
ce17bea8e9bd Switch statements support
Anders Halager <halager@gmail.com>
parents: 22
diff changeset
29 // control flow
5
2c5a8f4c254a Added very simple if support.
Anders Halager <halager@gmail.com>
parents: 1
diff changeset
30 "if" : Tok.If,
11
642c6a998fd9 Support for while statements and fixed scope for if
Anders Halager <halager@gmail.com>
parents: 5
diff changeset
31 "else" : Tok.Else,
642c6a998fd9 Support for while statements and fixed scope for if
Anders Halager <halager@gmail.com>
parents: 5
diff changeset
32 "while" : Tok.While,
36
ce17bea8e9bd Switch statements support
Anders Halager <halager@gmail.com>
parents: 22
diff changeset
33 "switch" : Tok.Switch,
ce17bea8e9bd Switch statements support
Anders Halager <halager@gmail.com>
parents: 22
diff changeset
34 "case" : Tok.Case,
ce17bea8e9bd Switch statements support
Anders Halager <halager@gmail.com>
parents: 22
diff changeset
35 "default" : Tok.Default,
ce17bea8e9bd Switch statements support
Anders Halager <halager@gmail.com>
parents: 22
diff changeset
36 "return" : Tok.Return
1
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
37 ];
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
38 }