1
- import {
2
- ExpressionOperators ,
3
- LogicalOperators ,
4
- OperationTypes ,
5
- Operators ,
6
- } from "./operators" ;
7
- import { getTokenLoc , getTokenValue , Token } from "./token-types" ;
1
+ import { ExpressionOperators , LogicalOperators } from './operators' ;
2
+ import { getTokenLoc , getTokenValue , Token } from './token-types' ;
8
3
9
4
export type AstNodeType =
10
- | " assign"
11
- | " binOp"
12
- | " const"
13
- | " logicalOp"
14
- | " getSingleVar"
15
- | " setSingleVar"
16
- | " dotObjectAccess"
17
- | " bracketObjectAccess"
18
- | " funcCall"
19
- | " funcDef"
20
- | " arrowFuncDef"
21
- | " createObject"
22
- | " createArray"
23
- | "if"
24
- | " for"
25
- | " while"
26
- | " tryExcept"
27
- | " raise"
28
- | " import"
29
- | " comment"
30
- | " return"
31
- | " continue"
32
- | " break" ;
5
+ | ' assign'
6
+ | ' binOp'
7
+ | ' const'
8
+ | ' logicalOp'
9
+ | ' getSingleVar'
10
+ | ' setSingleVar'
11
+ | ' dotObjectAccess'
12
+ | ' bracketObjectAccess'
13
+ | ' funcCall'
14
+ | ' funcDef'
15
+ | ' arrowFuncDef'
16
+ | ' createObject'
17
+ | ' createArray'
18
+ | 'if'
19
+ | ' for'
20
+ | ' while'
21
+ | ' tryExcept'
22
+ | ' raise'
23
+ | ' import'
24
+ | ' comment'
25
+ | ' return'
26
+ | ' continue'
27
+ | ' break' ;
33
28
34
29
export interface NameAlias {
35
30
name : string ;
@@ -61,12 +56,8 @@ export abstract class AstNode {
61
56
}
62
57
63
58
export class AssignNode extends AstNode {
64
- constructor (
65
- public target : AstNode ,
66
- public source : AstNode ,
67
- public loc : Uint16Array
68
- ) {
69
- super ( "assign" ) ;
59
+ constructor ( public target : AstNode , public source : AstNode , public loc : Uint16Array ) {
60
+ super ( 'assign' ) ;
70
61
this . loc = loc ;
71
62
}
72
63
}
@@ -75,56 +66,49 @@ export class ConstNode extends AstNode {
75
66
public value : number | string | boolean | null ;
76
67
77
68
constructor ( token : Token ) {
78
- super ( " const" ) ;
69
+ super ( ' const' ) ;
79
70
this . value = getTokenValue ( token ) ;
80
71
this . loc = getTokenLoc ( token ) ;
81
72
}
82
73
}
83
74
84
75
export class CommentNode extends AstNode {
85
76
constructor ( public comment : string , public loc : Uint16Array ) {
86
- super ( " comment" ) ;
77
+ super ( ' comment' ) ;
87
78
this . loc = loc ;
88
79
}
89
80
}
90
81
91
82
export class ReturnNode extends AstNode {
92
- constructor (
93
- public returnValue : AstNode | undefined = undefined ,
94
- public loc : Uint16Array
95
- ) {
96
- super ( "return" ) ;
83
+ constructor ( public returnValue : AstNode | undefined = undefined , public loc : Uint16Array ) {
84
+ super ( 'return' ) ;
97
85
this . loc = loc ;
98
86
}
99
87
}
100
88
101
89
export class RaiseNode extends AstNode {
102
- constructor (
103
- public errorName : string ,
104
- public errorMessageAst : AstNode ,
105
- public loc : Uint16Array
106
- ) {
107
- super ( "raise" ) ;
90
+ constructor ( public errorName : string , public errorMessageAst : AstNode , public loc : Uint16Array ) {
91
+ super ( 'raise' ) ;
108
92
this . loc = loc ;
109
93
}
110
94
}
111
95
112
96
export class ContinueNode extends AstNode {
113
97
constructor ( ) {
114
- super ( " continue" ) ;
98
+ super ( ' continue' ) ;
115
99
}
116
100
}
117
101
118
102
export class BreakNode extends AstNode {
119
103
constructor ( ) {
120
- super ( " break" ) ;
104
+ super ( ' break' ) ;
121
105
}
122
106
}
123
107
124
108
export class SetSingleVarNode extends AstNode {
125
109
public name : string ;
126
110
constructor ( token : Token ) {
127
- super ( " setSingleVar" ) ;
111
+ super ( ' setSingleVar' ) ;
128
112
this . name = token [ 0 ] as string ;
129
113
this . loc = getTokenLoc ( token ) ;
130
114
}
@@ -133,12 +117,8 @@ export class SetSingleVarNode extends AstNode {
133
117
export class FunctionCallNode extends AstNode implements IsNullCoelsing {
134
118
public nullCoelsing : boolean | undefined = undefined ;
135
119
136
- constructor (
137
- public name : string ,
138
- public paramNodes : AstNode [ ] | null ,
139
- public loc : Uint16Array
140
- ) {
141
- super ( "funcCall" ) ;
120
+ constructor ( public name : string , public paramNodes : AstNode [ ] | null , public loc : Uint16Array ) {
121
+ super ( 'funcCall' ) ;
142
122
this . loc = loc ;
143
123
}
144
124
}
@@ -150,18 +130,14 @@ export class FunctionDefNode extends AstNode implements FuncDefNode {
150
130
public isAsync : boolean ,
151
131
public loc : Uint16Array
152
132
) {
153
- super ( " funcDef" ) ;
133
+ super ( ' funcDef' ) ;
154
134
this . loc = loc ;
155
135
}
156
136
}
157
137
158
138
export class ArrowFuncDefNode extends AstNode implements FuncDefNode {
159
- constructor (
160
- public funcAst : AstBlock ,
161
- public params : string [ ] ,
162
- public loc : Uint16Array
163
- ) {
164
- super ( "arrowFuncDef" ) ;
139
+ constructor ( public funcAst : AstBlock , public params : string [ ] , public loc : Uint16Array ) {
140
+ super ( 'arrowFuncDef' ) ;
165
141
this . loc = loc ;
166
142
}
167
143
}
@@ -173,7 +149,7 @@ export class IfNode extends AstNode {
173
149
public elseBody : AstNode [ ] | undefined = undefined ,
174
150
public loc : Uint16Array
175
151
) {
176
- super ( "if" ) ;
152
+ super ( 'if' ) ;
177
153
this . loc = loc ;
178
154
}
179
155
}
@@ -187,7 +163,7 @@ export class TryExceptNode extends AstNode {
187
163
188
164
public loc : Uint16Array
189
165
) {
190
- super ( " tryExcept" ) ;
166
+ super ( ' tryExcept' ) ;
191
167
this . loc = loc ;
192
168
}
193
169
}
@@ -199,18 +175,14 @@ export class ForNode extends AstNode {
199
175
public body : AstNode [ ] ,
200
176
public loc : Uint16Array
201
177
) {
202
- super ( " for" ) ;
178
+ super ( ' for' ) ;
203
179
this . loc = loc ;
204
180
}
205
181
}
206
182
207
183
export class WhileNode extends AstNode {
208
- constructor (
209
- public condition : AstNode ,
210
- public body : AstNode [ ] ,
211
- public loc : Uint16Array
212
- ) {
213
- super ( "while" ) ;
184
+ constructor ( public condition : AstNode , public body : AstNode [ ] , public loc : Uint16Array ) {
185
+ super ( 'while' ) ;
214
186
this . loc = loc ;
215
187
}
216
188
}
@@ -222,7 +194,7 @@ export class ImportNode extends AstNode {
222
194
public parts : NameAlias [ ] | undefined = undefined ,
223
195
public loc : Uint16Array
224
196
) {
225
- super ( " import" ) ;
197
+ super ( ' import' ) ;
226
198
this . loc = loc ;
227
199
}
228
200
}
@@ -232,7 +204,7 @@ export class GetSingleVarNode extends AstNode implements IsNullCoelsing {
232
204
nullCoelsing : boolean | undefined = undefined ;
233
205
234
206
constructor ( token : Token , nullCoelsing : boolean | undefined = undefined ) {
235
- super ( " getSingleVar" ) ;
207
+ super ( ' getSingleVar' ) ;
236
208
this . name = token [ 0 ] as string ;
237
209
this . nullCoelsing = nullCoelsing ;
238
210
this . loc = getTokenLoc ( token ) ;
@@ -241,21 +213,21 @@ export class GetSingleVarNode extends AstNode implements IsNullCoelsing {
241
213
242
214
export class DotObjectAccessNode extends AstNode {
243
215
constructor ( public nestedProps : AstNode [ ] , public loc : Uint16Array ) {
244
- super ( " dotObjectAccess" ) ;
216
+ super ( ' dotObjectAccess' ) ;
245
217
this . loc = loc ;
246
218
}
247
219
}
248
220
249
221
export class CreateObjectNode extends AstNode {
250
222
constructor ( public props : ObjectPropertyInfo [ ] , public loc : Uint16Array ) {
251
- super ( " createObject" ) ;
223
+ super ( ' createObject' ) ;
252
224
this . loc = loc ;
253
225
}
254
226
}
255
227
256
228
export class CreateArrayNode extends AstNode {
257
229
constructor ( public items : AstNode [ ] , public loc : Uint16Array ) {
258
- super ( " createArray" ) ;
230
+ super ( ' createArray' ) ;
259
231
this . loc = loc ;
260
232
}
261
233
}
@@ -267,7 +239,7 @@ export class BracketObjectAccessNode extends AstNode {
267
239
public nullCoalescing : boolean | undefined = undefined ,
268
240
public loc : Uint16Array
269
241
) {
270
- super ( " bracketObjectAccess" ) ;
242
+ super ( ' bracketObjectAccess' ) ;
271
243
this . loc = loc ;
272
244
}
273
245
}
@@ -279,7 +251,7 @@ export interface LogicalNodeItem {
279
251
280
252
export class LogicalOpNode extends AstNode {
281
253
constructor ( public items : LogicalNodeItem [ ] , public loc : Uint16Array ) {
282
- super ( " logicalOp" ) ;
254
+ super ( ' logicalOp' ) ;
283
255
this . loc = loc ;
284
256
}
285
257
}
@@ -291,14 +263,14 @@ export class BinOpNode extends AstNode {
291
263
public right : AstNode ,
292
264
public loc : Uint16Array
293
265
) {
294
- super ( " binOp" ) ;
266
+ super ( ' binOp' ) ;
295
267
this . loc = loc ;
296
268
}
297
269
}
298
270
299
271
export interface AstBlock {
300
272
name : string ;
301
- type : " module" | " func" | "if" | " for" | " while" | " trycatch" ;
273
+ type : ' module' | ' func' | 'if' | ' for' | ' while' | ' trycatch' ;
302
274
funcs : FunctionDefNode [ ] ;
303
275
body : AstNode [ ] ;
304
276
}
0 commit comments