Mercurial > projects > dil
annotate trunk/src/dil/ast/NodesEnum.d @ 797:cf2ad5df025c
Added documentation comments.
Removed Lexer.loadKeywords() and revised Lexer.isReservedIdentifier().
Also removed Lexer.getTokens().
Renamed keywords to g_reservedIds.
Renamed classNames to g_classNames.
Added PRE and DMDBUG macros.
author | Aziz K?ksal <aziz.koeksal@gmail.com> |
---|---|
date | Fri, 29 Feb 2008 22:51:24 +0100 |
parents | 3b34f6a95a27 |
children |
rev | line source |
---|---|
635 | 1 /++ |
2 Author: Aziz Köksal | |
3 License: GPL3 | |
4 +/ | |
5 module dil.ast.NodesEnum; | |
6 | |
769
5e3ef1b2011c
Added and improved documentation.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
695
diff
changeset
|
7 /// Enumerates the categories of a node. |
640
05645f5613c1
Added an error message.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
635
diff
changeset
|
8 enum NodeCategory : ushort |
635 | 9 { |
670
d8c32113afde
Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
668
diff
changeset
|
10 Undefined, |
635 | 11 Declaration, |
12 Statement, | |
13 Expression, | |
14 Type, | |
15 Other | |
16 } | |
17 | |
769
5e3ef1b2011c
Added and improved documentation.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
695
diff
changeset
|
18 /// A list of all class names that inherit from Node. |
797
cf2ad5df025c
Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
786
diff
changeset
|
19 static const char[][] g_classNames = [ |
635 | 20 // Declarations: |
680
6b3e397229c5
Renamed Statements, Declarations and EnumMember.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
673
diff
changeset
|
21 "CompoundDeclaration", |
635 | 22 "EmptyDeclaration", |
23 "IllegalDeclaration", | |
24 "ModuleDeclaration", | |
25 "ImportDeclaration", | |
26 "AliasDeclaration", | |
27 "TypedefDeclaration", | |
28 "EnumDeclaration", | |
680
6b3e397229c5
Renamed Statements, Declarations and EnumMember.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
673
diff
changeset
|
29 "EnumMemberDeclaration", |
635 | 30 "ClassDeclaration", |
31 "InterfaceDeclaration", | |
32 "StructDeclaration", | |
33 "UnionDeclaration", | |
34 "ConstructorDeclaration", | |
35 "StaticConstructorDeclaration", | |
36 "DestructorDeclaration", | |
37 "StaticDestructorDeclaration", | |
38 "FunctionDeclaration", | |
673
64fec49651cf
Renamed VariableDeclaration to VariablesDeclaration.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
671
diff
changeset
|
39 "VariablesDeclaration", |
635 | 40 "InvariantDeclaration", |
41 "UnittestDeclaration", | |
42 "DebugDeclaration", | |
43 "VersionDeclaration", | |
44 "StaticIfDeclaration", | |
45 "StaticAssertDeclaration", | |
46 "TemplateDeclaration", | |
47 "NewDeclaration", | |
48 "DeleteDeclaration", | |
49 "ProtectionDeclaration", | |
50 "StorageClassDeclaration", | |
51 "LinkageDeclaration", | |
52 "AlignDeclaration", | |
53 "PragmaDeclaration", | |
54 "MixinDeclaration", | |
55 | |
56 // Statements: | |
680
6b3e397229c5
Renamed Statements, Declarations and EnumMember.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
673
diff
changeset
|
57 "CompoundStatement", |
635 | 58 "IllegalStatement", |
59 "EmptyStatement", | |
682
7541c64fc423
Renamed FunctionBody, CatchBody and FinallyBody.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
681
diff
changeset
|
60 "FuncBodyStatement", |
635 | 61 "ScopeStatement", |
62 "LabeledStatement", | |
63 "ExpressionStatement", | |
64 "DeclarationStatement", | |
65 "IfStatement", | |
66 "WhileStatement", | |
67 "DoWhileStatement", | |
68 "ForStatement", | |
69 "ForeachStatement", | |
70 "ForeachRangeStatement", // D2.0 | |
71 "SwitchStatement", | |
72 "CaseStatement", | |
73 "DefaultStatement", | |
74 "ContinueStatement", | |
75 "BreakStatement", | |
76 "ReturnStatement", | |
77 "GotoStatement", | |
78 "WithStatement", | |
79 "SynchronizedStatement", | |
80 "TryStatement", | |
682
7541c64fc423
Renamed FunctionBody, CatchBody and FinallyBody.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
681
diff
changeset
|
81 "CatchStatement", |
7541c64fc423
Renamed FunctionBody, CatchBody and FinallyBody.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
681
diff
changeset
|
82 "FinallyStatement", |
635 | 83 "ScopeGuardStatement", |
84 "ThrowStatement", | |
85 "VolatileStatement", | |
681
95a3c28c0f64
Renamed AsmStatement->AsmBlockStatement and AsnInstruction->AsmStatement.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
680
diff
changeset
|
86 "AsmBlockStatement", |
635 | 87 "AsmStatement", |
88 "AsmAlignStatement", | |
681
95a3c28c0f64
Renamed AsmStatement->AsmBlockStatement and AsnInstruction->AsmStatement.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
680
diff
changeset
|
89 "IllegalAsmStatement", |
635 | 90 "PragmaStatement", |
91 "MixinStatement", | |
92 "StaticIfStatement", | |
93 "StaticAssertStatement", | |
94 "DebugStatement", | |
95 "VersionStatement", | |
96 | |
97 // Expressions: | |
659
304331ca2f95
Renamed EmptyExpression to IllegalExpression.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
658
diff
changeset
|
98 "IllegalExpression", |
635 | 99 "CondExpression", |
100 "CommaExpression", | |
101 "OrOrExpression", | |
102 "AndAndExpression", | |
103 "OrExpression", | |
104 "XorExpression", | |
105 "AndExpression", | |
106 "EqualExpression", | |
107 "IdentityExpression", | |
108 "RelExpression", | |
109 "InExpression", | |
110 "LShiftExpression", | |
111 "RShiftExpression", | |
112 "URShiftExpression", | |
113 "PlusExpression", | |
114 "MinusExpression", | |
115 "CatExpression", | |
116 "MulExpression", | |
117 "DivExpression", | |
118 "ModExpression", | |
119 "AssignExpression", | |
120 "LShiftAssignExpression", | |
121 "RShiftAssignExpression", | |
122 "URShiftAssignExpression", | |
123 "OrAssignExpression", | |
124 "AndAssignExpression", | |
125 "PlusAssignExpression", | |
126 "MinusAssignExpression", | |
127 "DivAssignExpression", | |
128 "MulAssignExpression", | |
129 "ModAssignExpression", | |
130 "XorAssignExpression", | |
131 "CatAssignExpression", | |
132 "AddressExpression", | |
133 "PreIncrExpression", | |
134 "PreDecrExpression", | |
135 "PostIncrExpression", | |
136 "PostDecrExpression", | |
137 "DerefExpression", | |
138 "SignExpression", | |
139 "NotExpression", | |
140 "CompExpression", | |
141 "CallExpression", | |
142 "NewExpression", | |
143 "NewAnonClassExpression", | |
144 "DeleteExpression", | |
145 "CastExpression", | |
146 "IndexExpression", | |
147 "SliceExpression", | |
148 "ModuleScopeExpression", | |
149 "IdentifierExpression", | |
150 "SpecialTokenExpression", | |
151 "DotExpression", | |
152 "TemplateInstanceExpression", | |
153 "ThisExpression", | |
154 "SuperExpression", | |
155 "NullExpression", | |
156 "DollarExpression", | |
157 "BoolExpression", | |
158 "IntExpression", | |
159 "RealExpression", | |
160 "ComplexExpression", | |
161 "CharExpression", | |
162 "StringExpression", | |
163 "ArrayLiteralExpression", | |
164 "AArrayLiteralExpression", | |
165 "AssertExpression", | |
166 "MixinExpression", | |
167 "ImportExpression", | |
168 "TypeofExpression", | |
169 "TypeDotIdExpression", | |
170 "TypeidExpression", | |
171 "IsExpression", | |
646
68953760d569
Added class ParenExpression.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
640
diff
changeset
|
172 "ParenExpression", |
635 | 173 "FunctionLiteralExpression", |
174 "TraitsExpression", // D2.0 | |
695
170ddcdc9711
Renamed VoidInitializer, ArrayInitializer and StructInitializer.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
682
diff
changeset
|
175 "VoidInitExpression", |
170ddcdc9711
Renamed VoidInitializer, ArrayInitializer and StructInitializer.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
682
diff
changeset
|
176 "ArrayInitExpression", |
170ddcdc9711
Renamed VoidInitializer, ArrayInitializer and StructInitializer.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
682
diff
changeset
|
177 "StructInitExpression", |
635 | 178 "AsmTypeExpression", |
179 "AsmOffsetExpression", | |
180 "AsmSegExpression", | |
181 "AsmPostBracketExpression", | |
182 "AsmBracketExpression", | |
183 "AsmLocalSizeExpression", | |
184 "AsmRegisterExpression", | |
185 | |
186 // Types: | |
671
f1325a4506de
Removed enum TID from dil.ast.Types.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
670
diff
changeset
|
187 "IllegalType", |
635 | 188 "IntegralType", |
189 "QualifiedType", | |
190 "ModuleScopeType", | |
191 "IdentifierType", | |
192 "TypeofType", | |
193 "TemplateInstanceType", | |
194 "PointerType", | |
195 "ArrayType", | |
196 "FunctionType", | |
197 "DelegateType", | |
198 "CFuncPointerType", | |
668
a1f8d8f2db38
Renamed some identifiers.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
664
diff
changeset
|
199 "BaseClassType", |
635 | 200 "ConstType", // D2.0 |
201 "InvariantType", // D2.0 | |
202 | |
203 // Other: | |
204 "Parameter", | |
205 "Parameters", | |
206 "TemplateAliasParameter", | |
207 "TemplateTypeParameter", | |
208 "TemplateThisParameter", // D2.0 | |
209 "TemplateValueParameter", | |
210 "TemplateTupleParameter", | |
211 "TemplateParameters", | |
212 "TemplateArguments", | |
213 ]; | |
214 | |
769
5e3ef1b2011c
Added and improved documentation.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
695
diff
changeset
|
215 /// Generates the members of enum NodeKind. |
635 | 216 char[] generateNodeKindMembers() |
217 { | |
218 char[] text; | |
797
cf2ad5df025c
Added documentation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
786
diff
changeset
|
219 foreach (className; g_classNames) |
635 | 220 text ~= className ~ ","; |
221 return text; | |
222 } | |
223 // pragma(msg, generateNodeKindMembers()); | |
224 | |
786
3b34f6a95a27
Added and revised documenation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
769
diff
changeset
|
225 version(DDoc) |
3b34f6a95a27
Added and revised documenation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
769
diff
changeset
|
226 /// The node kind identifies every class that inherits from Node. |
3b34f6a95a27
Added and revised documenation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
769
diff
changeset
|
227 enum NodeKind : ushort; |
3b34f6a95a27
Added and revised documenation comments.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
769
diff
changeset
|
228 else |
635 | 229 mixin( |
640
05645f5613c1
Added an error message.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
635
diff
changeset
|
230 "enum NodeKind : ushort" |
635 | 231 "{" |
232 ~ generateNodeKindMembers ~ | |
233 "}" | |
234 ); |