Mercurial > projects > dang
annotate src/parser/Action.d @ 209:42e663451371
Renamed some of the actions. Declarations now have it's own action.
author | Anders Johnsen <skabet@gmail.com> |
---|---|
date | Tue, 12 Aug 2008 19:05:17 +0200 |
parents | e0551773a005 |
children |
rev | line source |
---|---|
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
1 module parser.Action; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
2 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
3 import lexer.Token; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
4 |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
5 import basic.Attribute; |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
6 |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
7 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
8 Used to indicate what type of operator is used in a given binary expression |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
9 (and unary expressions?) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
10 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
11 public enum Operator |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
12 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
13 Assign, |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
14 AddAssign, |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
15 SubAssign, |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
16 MulAssign, |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
17 DivAssign, |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
18 ModAssign, |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
19 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
20 Eq, Ne, |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
21 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
22 Lt, Le, |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
23 Gt, Ge, |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
24 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
25 Add, Sub, |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
26 Mul, Div, Mod, |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
27 |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
28 LeftShift, RightShift, UnsignedRightShift, |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
29 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
30 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
31 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
32 class Id |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
33 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
34 public static Id opCall(Token tok) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
35 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
36 auto id = new Id(); |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
37 id.tok = tok; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
38 return id; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
39 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
40 Token tok; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
41 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
42 |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
43 class PointerTypeId : Id |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
44 { |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
45 public static PointerTypeId opCall(Id id) |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
46 { |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
47 auto p = new PointerTypeId(); |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
48 p.id = id; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
49 return p; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
50 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
51 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
52 Id id; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
53 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
54 |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
55 class StaticArrayTypeId : Id |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
56 { |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
57 public static StaticArrayTypeId opCall(Id id, Object number) |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
58 { |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
59 auto a = new StaticArrayTypeId(); |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
60 a.id = id; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
61 a.number = number; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
62 return a; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
63 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
64 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
65 Id id; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
66 Object number; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
67 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
68 |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
69 class FunctionTypeId : Id |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
70 { |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
71 public static FunctionTypeId opCall(Id id, DeclT[] decls) |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
72 { |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
73 auto f = new FunctionTypeId(); |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
74 f.id = id; |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
75 f.decls = decls; |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
76 return f; |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
77 } |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
78 |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
79 Id id; |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
80 DeclT[] decls; |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
81 } |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
82 |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
83 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
84 Represents a fully qualified name, with some packages and a final identifier. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
85 The identifier should always be set, but packages may have length 0. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
86 **/ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
87 struct ModuleName |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
88 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
89 Id id; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
90 Id[] packages; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
91 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
92 /// Get the full ranged spanned by packages and identifier |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
93 SourceRange asRange() |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
94 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
95 SourceRange r = id.tok.asRange(); |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
96 foreach (identifier; packages) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
97 r = r + identifier.tok.asRange(); |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
98 return r; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
99 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
100 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
101 |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
102 /** |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
103 A few aliases to indicate what methods should be dealing with the same |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
104 types. |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
105 Not typesafe, and not using typedef because users would need a lot of |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
106 casts (and base type would be void*, so no possibility to synchronize, |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
107 print etc.) |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
108 */ |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
109 alias Object ExprT; |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
110 alias Object StmtT; /// ditto |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
111 alias Object DeclT; /// ditto |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
112 alias Object ModuleT; /// ditto |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
113 |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
114 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
115 All methods are optional. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
116 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
117 Warning: Interface is not stable yet. Use the `override` keyword in all classes |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
118 inheriting from this to get warning if the interface changes. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
119 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
120 abstract class Action |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
121 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
122 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
123 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
124 // -- Modules -- |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
125 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
126 ModuleT actOnModule(ref Token _module, char[] name) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
127 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
128 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
129 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
130 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
131 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
132 This action is called when a file does not start with a module |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
133 declaration - in which case there is no Token available. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
134 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
135 Instead a SLoc to the start of the file is given. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
136 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
137 ModuleT actOnImplicitModule(SourceLocation fileStart, char[] name) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
138 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
139 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
140 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
141 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
142 void actOnModuleDecl(ModuleT m, DeclT d) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
143 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
144 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
145 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
146 // -- Declarations -- |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
147 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
148 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
149 Called for an import statement, that may be renamed. Id name is null, |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
150 there is no rename. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
151 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
152 If there are selective imports, its handled in add |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
153 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
154 DeclT actOnImport(ref Token _import, ref ModuleName target, Id* name) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
155 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
156 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
157 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
158 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
159 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
160 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
161 void addSelectiveImport(DeclT _import, ref Id target, Id* name) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
162 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
163 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
164 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
165 /** |
209
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
166 Called when an simple variable had been parsed. |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
167 */ |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
168 DeclT actOnVarDecl(ref Id type, ref Id name, |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
169 ExprT initializer, Attribute att) |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
170 { |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
171 return null; |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
172 } |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
173 |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
174 /** |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
175 Called when a struct has been parsed. |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
176 |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
177 actOnStructMember will be called for all members |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
178 */ |
209
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
179 DeclT actOnStructDecl(ref Id name, Attribute att) |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
180 { |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
181 return null; |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
182 } |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
183 |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
184 /** |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
185 Called when a class has been parsed. |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
186 |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
187 actOnClassMember will be called for all members |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
188 actOnClassBaseClass will be called for all base classes |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
189 */ |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
190 DeclT actOnClassDecl(ref Id name, Attribute att) |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
191 { |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
192 return null; |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
193 } |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
194 |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
195 /** |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
196 Called when a interface has been parsed. |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
197 |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
198 actOnInterfaceMember will be called for all members |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
199 actOnInterfaceBaseClass will be called for all base classes |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
200 */ |
42e663451371
Renamed some of the actions. Declarations now have it's own action.
Anders Johnsen <skabet@gmail.com>
parents:
207
diff
changeset
|
201 DeclT actOnInterfaceDecl(ref Id name, Attribute att) |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
202 { |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
203 return null; |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
204 } |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
205 |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
206 DeclT actOnAliasDecl(DeclT decl, Attribute att) |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
207 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
208 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
209 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
210 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
211 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
212 Add a struct member to a struct. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
213 */ |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
214 void actOnStructMember(DeclT st_decl, DeclT m_decl) |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
215 { |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
216 return null; |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
217 } |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
218 |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
219 /** |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
220 Add a class member to a struct. |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
221 */ |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
222 void actOnClassMember(DeclT cl_decl, DeclT m_decl) |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
223 { |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
224 return null; |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
225 } |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
226 |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
227 /** |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
228 Add a class member to a struct. |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
229 */ |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
230 void actOnClassBaseClass(DeclT cl_decl, ref Id name) |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
231 { |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
232 return null; |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
233 } |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
234 |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
235 /** |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
236 Add a class member to a struct. |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
237 */ |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
238 void actOnInterfaceMember(DeclT if_decl, DeclT m_decl) |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
239 { |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
240 return null; |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
241 } |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
242 |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
243 /** |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
244 Add a class member to a struct. |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
245 */ |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
246 void actOnInterfaceBaseClass(DeclT if_decl, ref Id name) |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
247 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
248 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
249 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
250 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
251 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
252 Add an initialization expression to a previously created decl. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
253 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
254 Used for default values on function params and for values to local |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
255 variables. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
256 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
257 void addInitToDeclarator(DeclT decl, ExprT exp) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
258 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
259 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
260 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
261 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
262 Called at the start of a function, doesn't get a lot of info - that is |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
263 added later on, through addFuncArg and actOnEndOfFunction. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
264 */ |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
265 DeclT actOnStartOfFunctionDef(ref Id type, ref Id name, Attribute att) |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
266 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
267 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
268 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
269 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
270 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
271 Add a new parameter to the function func. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
272 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
273 void addFuncArg(DeclT func, Id type, Id name) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
274 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
275 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
276 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
277 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
278 Finish off the function, by giving it the body (a single statement, so |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
279 you probably want some sort of compound statement) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
280 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
281 DeclT actOnEndOfFunction(DeclT func, StmtT stmts) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
282 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
283 return func; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
284 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
285 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
286 // -- Statements -- |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
287 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
288 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
289 Called after parsing a function/while/for/whatever body. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
290 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
291 Note that stmts is to be considered temporary, it might point into the |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
292 stack and needs to be copied before saving. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
293 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
294 StmtT actOnCompoundStmt(ref Token left, ref Token right, StmtT[] stmts) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
295 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
296 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
297 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
298 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
299 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
300 An expression was used as a statement - this includes assignments, |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
301 function calls. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
302 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
303 Additionally the D spec dictates that expressions with no effect are not |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
304 legal as statements, but the parser can't test for this so it has to be |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
305 done in the later stages. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
306 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
307 StmtT actOnExprStmt(ExprT exp) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
308 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
309 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
310 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
311 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
312 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
313 Called after parsing return statements. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
314 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
315 loc is the return token. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
316 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
317 StmtT actOnReturnStmt(ref Token loc, ExprT exp) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
318 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
319 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
320 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
321 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
322 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
323 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
324 StmtT actOnIfStmt(ref Token ifTok, ExprT cond, StmtT thenBody, |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
325 ref Token elseTok, StmtT elseBody) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
326 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
327 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
328 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
329 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
330 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
331 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
332 StmtT actOnWhileStmt(ref Token whileTok, ExprT cond, StmtT whileBody) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
333 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
334 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
335 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
336 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
337 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
338 */ |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
339 StmtT actOnForStmt(ref Token forTok, StmtT init, ExprT cond, ExprT incre, StmtT forBody) |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
340 { |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
341 return null; |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
342 } |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
343 |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
344 /** |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
345 */ |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
346 StmtT actOnDeclStmt(DeclT decl) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
347 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
348 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
349 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
350 |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
351 StmtT actOnStartOfSwitchStmt(Token _switch, ExprT exp) |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
352 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
353 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
354 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
355 |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
356 void actOnCaseStmt(StmtT stmt, Token _case, ExprT[] exps, StmtT[] stmts) |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
357 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
358 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
359 |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
360 void actOnDefaultStmt(StmtT stmt, Token _default, StmtT[] stmts) |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
361 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
362 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
363 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
364 StmtT actOnFinishSwitchStmt(StmtT sw) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
365 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
366 return sw; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
367 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
368 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
369 // -- Expressions -- |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
370 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
371 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
372 A single numerical constant -- this can be absolutely any kind of number. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
373 Integers, floats, hex, octal, binary, imaginary and so on. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
374 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
375 ExprT actOnNumericConstant(Token op) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
376 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
377 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
378 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
379 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
380 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
381 This is called when identifiers are used in expressions. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
382 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
383 ExprT actOnIdentifierExp(Id id) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
384 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
385 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
386 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
387 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
388 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
389 This is called when strings are used in expression |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
390 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
391 ExprT actOnStringExp(Token t) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
392 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
393 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
394 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
395 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
396 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
397 Unary operator. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
398 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
399 ExprT actOnUnaryOp(Token op, ExprT operand) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
400 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
401 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
402 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
403 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
404 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
405 Binary operator. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
406 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
407 ExprT actOnBinaryOp(SLoc op_loc, Operator op, ExprT l, ExprT r) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
408 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
409 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
410 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
411 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
412 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
413 Called when using the 'dot' operator. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
414 The left hand side can be any expression, but its only possible to look |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
415 up an identifier. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
416 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
417 ExprT actOnMemberReference(ExprT lhs, SourceLocation op, Id member) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
418 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
419 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
420 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
421 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
422 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
423 Called when function calls are encountered. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
424 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
425 Note that args is temporary and might point into the stack. Remember to |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
426 copy before saving a reference to it. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
427 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
428 ExprT actOnCallExpr(ExprT func, ref Token left_paren, ExprT[] args, |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
429 ref Token right_paren) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
430 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
431 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
432 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
433 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
434 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
435 Called when function calls are encountered. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
436 */ |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
437 ExprT actOnIndexExpr(ExprT array, ref Token left_bracket, ExprT index, |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
438 ref Token right_bracket) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
439 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
440 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
441 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
442 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
443 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
444 Cast expression. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
445 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
446 ExprT actOnCastExpr(ref Token _cast, Id type, ExprT exp) |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
447 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
448 return null; |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
449 } |
207
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
450 |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
451 /** |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
452 New expression. |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
453 */ |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
454 ExprT actOnNewExpr(ref Id type, ExprT[] a_args, ExprT[] c_args) |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
455 { |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
456 return null; |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
457 } |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
458 |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
459 /** |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
460 Array Literal expression. |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
461 */ |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
462 ExprT actOnArrayLiteralExpr(ExprT[] exps, SLoc start, SLoc end) |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
463 { |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
464 return null; |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
465 } |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
466 |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
467 /** |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
468 Null expression. |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
469 */ |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
470 ExprT actOnNullExpr(SLoc pos) |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
471 { |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
472 return null; |
e0551773a005
Added the correct version.
Anders Johnsen <skabet@gmail.com>
parents:
206
diff
changeset
|
473 } |
206
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
474 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
475 |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
476 /** |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
477 Doesn't do anything at all - can be used for benchmarking the parser. |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
478 */ |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
479 class NullAction : Action |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
480 { |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
481 } |
d3c148ca429b
Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff
changeset
|
482 |