annotate dmd/Id.d @ 99:903b95002d4e

Id and Macro are quite experimental currently
author Trass3r
date Tue, 31 Aug 2010 04:04:33 +0200
parents ef02e2e203c2
children e6090d1aea7c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
1 module dmd.Id;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
2
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
3 import dmd.Identifier;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
4 import dmd.Lexer;
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
5
99
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
6 struct Msgtable
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
7 {
99
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
8 string ident; // name to use in DMD source
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
9 string name_; // name in D executable
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
10 }
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
11
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
12 immutable Msgtable[100] msgtable =
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
13 [
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
14 { "IUnknown" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
15 { "Object_", "Object" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
16 { "object" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
17 { "max" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
18 { "min" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
19 { "This", "this" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
20 { "ctor", "__ctor" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
21 { "dtor", "__dtor" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
22 { "cpctor", "__cpctor" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
23 { "_postblit", "__postblit" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
24 { "classInvariant", "__invariant" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
25 { "unitTest", "__unitTest" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
26 { "require", "__require" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
27 { "ensure", "__ensure" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
28 { "init_", "init" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
29 { "size" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
30 { "__sizeof", "sizeof" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
31 { "alignof_", "alignof" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
32 { "mangleof_", "mangleof" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
33 { "stringof_", "stringof" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
34 { "tupleof_", "tupleof" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
35 { "length" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
36 { "remove" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
37 { "ptr" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
38 { "funcptr" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
39 { "dollar", "__dollar" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
40 { "offset" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
41 { "offsetof" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
42 { "ModuleInfo" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
43 { "ClassInfo" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
44 { "classinfo_", "classinfo" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
45 { "typeinfo_", "typeinfo" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
46 { "outer" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
47 { "Exception" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
48 { "AssociativeArray" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
49 { "Throwable" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
50 { "withSym", "__withSym" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
51 { "result", "__result" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
52 { "returnLabel", "__returnLabel" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
53 { "delegate_", "delegate" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
54 { "line" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
55 { "empty", "" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
56 { "p" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
57 { "coverage", "__coverage" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
58 { "__vptr" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
59 { "__monitor" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
60 { "system" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
61
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
62 { "TypeInfo" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
63 { "TypeInfo_Class" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
64 { "TypeInfo_Interface" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
65 { "TypeInfo_Struct" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
66 { "TypeInfo_Enum" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
67 { "TypeInfo_Typedef" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
68 { "TypeInfo_Pointer" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
69 { "TypeInfo_Array" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
70 { "TypeInfo_StaticArray" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
71 { "TypeInfo_AssociativeArray" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
72 { "TypeInfo_Function" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
73 { "TypeInfo_Delegate" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
74 { "TypeInfo_Tuple" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
75 { "TypeInfo_Const" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
76 { "TypeInfo_Invariant" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
77 { "TypeInfo_Shared" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
78 { "elements" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
79 { "_arguments_typeinfo" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
80 { "_arguments" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
81 { "_argptr" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
82 { "_match" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
83 { "destroy" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
84 { "_postblit", "__postblit" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
85
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
86 { "LINE", "__LINE__" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
87 { "FILE", "__FILE__" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
88 { "DATE", "__DATE__" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
89 { "TIME", "__TIME__" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
90 { "TIMESTAMP", "__TIMESTAMP__" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
91 { "VENDOR", "__VENDOR__" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
92 { "VERSIONX", "__VERSION__" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
93 { "EOFX", "__EOF__" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
94
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
95 { "nan" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
96 { "infinity" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
97 { "dig" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
98 { "epsilon" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
99 { "mant_dig" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
100 { "max_10_exp" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
101 { "max_exp" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
102 { "min_10_exp" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
103 { "min_exp" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
104 { "min_normal" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
105 { "re" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
106 { "im" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
107
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
108 { "C" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
109 { "D" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
110 { "Windows" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
111 { "Pascal" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
112 { "System" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
113
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
114 { "exit" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
115 { "success" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
116 { "failure" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
117
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
118 { "keys" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
119 { "values" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
120 { "rehash" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
121
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
122 { "sort" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
123 { "reverse" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
124 { "dup" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
125 { "idup" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
126
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
127 { "property" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
128
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
129 // For inline assembler
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
130 { "___out", "out" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
131 { "___in", "in" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
132 { "__int", "int" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
133 { "__dollar", "$" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
134 { "__LOCAL_SIZE" },
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
135
99
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
136 // For operator overloads
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
137 { "uadd", "opPos" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
138 { "neg", "opNeg" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
139 { "com", "opCom" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
140 { "add", "opAdd" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
141 { "add_r", "opAdd_r" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
142 { "sub", "opSub" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
143 { "sub_r", "opSub_r" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
144 { "mul", "opMul" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
145 { "mul_r", "opMul_r" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
146 { "div", "opDiv" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
147 { "div_r", "opDiv_r" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
148 { "mod", "opMod" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
149 { "mod_r", "opMod_r" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
150 { "eq", "opEquals" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
151 { "cmp", "opCmp" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
152 { "iand", "opAnd" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
153 { "iand_r", "opAnd_r" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
154 { "ior", "opOr" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
155 { "ior_r", "opOr_r" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
156 { "ixor", "opXor" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
157 { "ixor_r", "opXor_r" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
158 { "shl", "opShl" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
159 { "shl_r", "opShl_r" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
160 { "shr", "opShr" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
161 { "shr_r", "opShr_r" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
162 { "ushr", "opUShr" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
163 { "ushr_r", "opUShr_r" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
164 { "cat", "opCat" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
165 { "cat_r", "opCat_r" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
166 { "assign", "opAssign" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
167 { "addass", "opAddAssign" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
168 { "subass", "opSubAssign" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
169 { "mulass", "opMulAssign" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
170 { "divass", "opDivAssign" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
171 { "modass", "opModAssign" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
172 { "andass", "opAndAssign" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
173 { "orass", "opOrAssign" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
174 { "xorass", "opXorAssign" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
175 { "shlass", "opShlAssign" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
176 { "shrass", "opShrAssign" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
177 { "ushrass", "opUShrAssign" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
178 { "catass", "opCatAssign" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
179 { "postinc", "opPostInc" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
180 { "postdec", "opPostDec" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
181 { "index", "opIndex" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
182 { "indexass", "opIndexAssign" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
183 { "slice", "opSlice" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
184 { "sliceass", "opSliceAssign" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
185 { "call", "opCall" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
186 { "cast", "opCast" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
187 { "match", "opMatch" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
188 { "next", "opNext" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
189 { "opIn" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
190 { "opIn_r" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
191 { "opStar" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
192 { "opDot" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
193 { "opImplicitCast" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
194
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
195 { "classNew", "new" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
196 { "classDelete", "delete" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
197
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
198 // For foreach
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
199 { "apply", "opApply" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
200 { "applyReverse", "opApplyReverse" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
201
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
202 // #if 1
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
203 { "Fempty", "empty" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
204 { "Fhead", "front" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
205 { "Ftoe", "back" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
206 { "Fnext", "popFront" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
207 { "Fretreat", "popBack" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
208 /*#else
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
209 { "Fempty", "empty" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
210 { "Fhead", "head" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
211 { "Ftoe", "toe" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
212 { "Fnext", "next" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
213 { "Fretreat", "retreat" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
214 #endif*/
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
215
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
216 { "adDup", "_adDupT" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
217 { "adReverse", "_adReverse" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
218
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
219 // For internal functions
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
220 { "aaLen", "_aaLen" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
221 { "aaKeys", "_aaKeys" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
222 { "aaValues", "_aaValues" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
223 { "aaRehash", "_aaRehash" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
224 { "monitorenter", "_d_monitorenter" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
225 { "monitorexit", "_d_monitorexit" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
226 { "criticalenter", "_d_criticalenter" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
227 { "criticalexit", "_d_criticalexit" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
228
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
229 // For pragma's
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
230 { "GNU_asm" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
231 { "lib" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
232 { "msg" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
233 { "startaddress" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
234
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
235 // For special functions
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
236 { "tohash", "toHash" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
237 { "tostring", "toString" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
238 { "getmembers", "getMembers" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
239
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
240 // Special functions
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
241 { "alloca" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
242 { "main" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
243 { "WinMain" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
244 { "DllMain" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
245 { "tls_get_addr", "___tls_get_addr" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
246
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
247 // Builtin functions
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
248 { "std" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
249 { "math" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
250 { "sin" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
251 { "cos" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
252 { "tan" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
253 { "_sqrt", "sqrt" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
254 { "fabs" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
255
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
256 // Traits
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
257 { "isAbstractClass" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
258 { "isArithmetic" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
259 { "isAssociativeArray" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
260 { "isFinalClass" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
261 { "isFloating" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
262 { "isIntegral" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
263 { "isScalar" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
264 { "isStaticArray" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
265 { "isUnsigned" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
266 { "isVirtualFunction" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
267 { "isAbstractFunction" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
268 { "isFinalFunction" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
269 { "hasMember" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
270 { "getMember" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
271 { "getVirtualFunctions" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
272 { "classInstanceSize" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
273 { "allMembers" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
274 { "derivedMembers" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
275 { "isSame" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
276 { "compiles" },
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
277 ];
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
278 private string idgen()
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
279 {
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
280 string res = "struct Id\n{";
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
281
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
282 foreach(entry; msgtable)
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
283 res ~= "\tstatic Identifier " ~ entry.ident ~ ";\n";
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
284
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
285 res ~= "\tstatic void initialize()\n\t{\n";
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
286 string tmp;
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
287 foreach (entry; msgtable)
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
288 {
99
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
289 if (entry.name_ is null)
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
290 tmp = entry.ident;
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
291 else
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
292 tmp = entry.name_;
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
293 res ~= "\t\t" ~ entry.ident ~ ` = Lexer.idPool("` ~ tmp ~ "\");\n";
0
10317f0c89a5 Initial commit
korDen
parents:
diff changeset
294 }
99
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
295
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
296 res ~= "\t}\n}";
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
297 return res;
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
298 }
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
299
903b95002d4e Id and Macro are quite experimental currently
Trass3r
parents: 73
diff changeset
300 mixin(idgen());