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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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