@auscope/angular2parse 22.0.0 → 22.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -18
- package/auscope-angular2parse-22.0.2.tgz +0 -0
- package/fesm2022/auscope-angular2parse.mjs +2055 -0
- package/fesm2022/auscope-angular2parse.mjs.map +1 -0
- package/package.json +34 -41
- package/types/auscope-angular2parse.d.ts +32 -0
- package/.editorconfig +0 -13
- package/LICENSE +0 -21
- package/angular.json +0 -56
- package/projects/angular2parse/README.md +0 -49
- package/projects/angular2parse/ng-package.json +0 -7
- package/projects/angular2parse/package.json +0 -19
- package/projects/angular2parse/src/lib/angular/compiler/assertions.d.ts +0 -10
- package/projects/angular2parse/src/lib/angular/compiler/assertions.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/assertions.js +0 -45
- package/projects/angular2parse/src/lib/angular/compiler/assertions.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/assertions.ts +0 -49
- package/projects/angular2parse/src/lib/angular/compiler/ast.d.ts +0 -243
- package/projects/angular2parse/src/lib/angular/compiler/ast.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/ast.js +0 -393
- package/projects/angular2parse/src/lib/angular/compiler/ast.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/ast.ts +0 -393
- package/projects/angular2parse/src/lib/angular/compiler/chars.d.ts +0 -70
- package/projects/angular2parse/src/lib/angular/compiler/chars.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/chars.js +0 -78
- package/projects/angular2parse/src/lib/angular/compiler/chars.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/chars.ts +0 -89
- package/projects/angular2parse/src/lib/angular/compiler/interpolation-config.d.ts +0 -15
- package/projects/angular2parse/src/lib/angular/compiler/interpolation-config.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/interpolation-config.js +0 -24
- package/projects/angular2parse/src/lib/angular/compiler/interpolation-config.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/interpolation-config.ts +0 -25
- package/projects/angular2parse/src/lib/angular/compiler/lexer.d.ts +0 -45
- package/projects/angular2parse/src/lib/angular/compiler/lexer.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/lexer.js +0 -344
- package/projects/angular2parse/src/lib/angular/compiler/lexer.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/lexer.ts +0 -383
- package/projects/angular2parse/src/lib/angular/compiler/parser.d.ts +0 -93
- package/projects/angular2parse/src/lib/angular/compiler/parser.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/parser.js +0 -735
- package/projects/angular2parse/src/lib/angular/compiler/parser.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler/parser.ts +0 -825
- package/projects/angular2parse/src/lib/angular/compiler.d.ts +0 -7
- package/projects/angular2parse/src/lib/angular/compiler.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler.js +0 -7
- package/projects/angular2parse/src/lib/angular/compiler.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/compiler.ts +0 -6
- package/projects/angular2parse/src/lib/angular/facade/lang.d.ts +0 -45
- package/projects/angular2parse/src/lib/angular/facade/lang.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/facade/lang.js +0 -85
- package/projects/angular2parse/src/lib/angular/facade/lang.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/facade/lang.ts +0 -124
- package/projects/angular2parse/src/lib/angular/facade.d.ts +0 -2
- package/projects/angular2parse/src/lib/angular/facade.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular/facade.js +0 -2
- package/projects/angular2parse/src/lib/angular/facade.js.map +0 -1
- package/projects/angular2parse/src/lib/angular/facade.ts +0 -1
- package/projects/angular2parse/src/lib/angular.d.ts +0 -3
- package/projects/angular2parse/src/lib/angular.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/angular.js +0 -3
- package/projects/angular2parse/src/lib/angular.js.map +0 -1
- package/projects/angular2parse/src/lib/angular.ts +0 -2
- package/projects/angular2parse/src/lib/module.d.ts +0 -6
- package/projects/angular2parse/src/lib/module.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/module.js +0 -17
- package/projects/angular2parse/src/lib/module.js.map +0 -1
- package/projects/angular2parse/src/lib/module.ts +0 -12
- package/projects/angular2parse/src/lib/parse.d.ts +0 -19
- package/projects/angular2parse/src/lib/parse.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/parse.js +0 -61
- package/projects/angular2parse/src/lib/parse.js.map +0 -1
- package/projects/angular2parse/src/lib/parse.ts +0 -78
- package/projects/angular2parse/src/lib/util/binary-operations.d.ts +0 -2
- package/projects/angular2parse/src/lib/util/binary-operations.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/util/binary-operations.js +0 -18
- package/projects/angular2parse/src/lib/util/binary-operations.js.map +0 -1
- package/projects/angular2parse/src/lib/util/binary-operations.ts +0 -17
- package/projects/angular2parse/src/lib/util/lang.d.ts +0 -5
- package/projects/angular2parse/src/lib/util/lang.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/util/lang.js +0 -13
- package/projects/angular2parse/src/lib/util/lang.js.map +0 -1
- package/projects/angular2parse/src/lib/util/lang.ts +0 -15
- package/projects/angular2parse/src/lib/util.d.ts +0 -3
- package/projects/angular2parse/src/lib/util.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/util.js +0 -3
- package/projects/angular2parse/src/lib/util.js.map +0 -1
- package/projects/angular2parse/src/lib/util.ts +0 -2
- package/projects/angular2parse/src/lib/visitors/parse-visitor-compiler.d.ts +0 -24
- package/projects/angular2parse/src/lib/visitors/parse-visitor-compiler.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/visitors/parse-visitor-compiler.js +0 -96
- package/projects/angular2parse/src/lib/visitors/parse-visitor-compiler.js.map +0 -1
- package/projects/angular2parse/src/lib/visitors/parse-visitor-compiler.ts +0 -149
- package/projects/angular2parse/src/lib/visitors/parse-visitor-resolver.d.ts +0 -26
- package/projects/angular2parse/src/lib/visitors/parse-visitor-resolver.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/visitors/parse-visitor-resolver.js +0 -141
- package/projects/angular2parse/src/lib/visitors/parse-visitor-resolver.js.map +0 -1
- package/projects/angular2parse/src/lib/visitors/parse-visitor-resolver.ts +0 -208
- package/projects/angular2parse/src/lib/visitors.d.ts +0 -3
- package/projects/angular2parse/src/lib/visitors.d.ts.map +0 -1
- package/projects/angular2parse/src/lib/visitors.js +0 -3
- package/projects/angular2parse/src/lib/visitors.js.map +0 -1
- package/projects/angular2parse/src/lib/visitors.ts +0 -2
- package/projects/angular2parse/src/public-api.d.ts +0 -3
- package/projects/angular2parse/src/public-api.d.ts.map +0 -1
- package/projects/angular2parse/src/public-api.js +0 -6
- package/projects/angular2parse/src/public-api.js.map +0 -1
- package/projects/angular2parse/src/public-api.ts +0 -5
- package/projects/angular2parse/tsconfig.lib.json +0 -22
- package/projects/angular2parse/tsconfig.lib.prod.json +0 -15
- package/tsconfig.json +0 -21
|
@@ -1,393 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google Inc. All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { isBlank } from '../facade/lang';
|
|
9
|
-
export class ParserError {
|
|
10
|
-
constructor(message, input, errLocation, ctxLocation) {
|
|
11
|
-
this.input = input;
|
|
12
|
-
this.errLocation = errLocation;
|
|
13
|
-
this.ctxLocation = ctxLocation;
|
|
14
|
-
this.message = `Parser Error: ${message} ${errLocation} [${input}] in ${ctxLocation}`;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
export class ParseSpan {
|
|
18
|
-
constructor(start, end) {
|
|
19
|
-
this.start = start;
|
|
20
|
-
this.end = end;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
export class AST {
|
|
24
|
-
constructor(span) {
|
|
25
|
-
this.span = span;
|
|
26
|
-
}
|
|
27
|
-
visit(visitor, context = null) { return null; }
|
|
28
|
-
toString() { return 'AST'; }
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Represents a quoted expression of the form:
|
|
32
|
-
*
|
|
33
|
-
* quote = prefix `:` uninterpretedExpression
|
|
34
|
-
* prefix = identifier
|
|
35
|
-
* uninterpretedExpression = arbitrary string
|
|
36
|
-
*
|
|
37
|
-
* A quoted expression is meant to be pre-processed by an AST transformer that
|
|
38
|
-
* converts it into another AST that no longer contains quoted expressions.
|
|
39
|
-
* It is meant to allow third-party developers to extend Angular template
|
|
40
|
-
* expression language. The `uninterpretedExpression` part of the quote is
|
|
41
|
-
* therefore not interpreted by the Angular's own expression parser.
|
|
42
|
-
*/
|
|
43
|
-
export class Quote extends AST {
|
|
44
|
-
constructor(span, prefix, uninterpretedExpression, location) {
|
|
45
|
-
super(span);
|
|
46
|
-
this.prefix = prefix;
|
|
47
|
-
this.uninterpretedExpression = uninterpretedExpression;
|
|
48
|
-
this.location = location;
|
|
49
|
-
}
|
|
50
|
-
visit(visitor, context = null) { return visitor.visitQuote(this, context); }
|
|
51
|
-
toString() { return 'Quote'; }
|
|
52
|
-
}
|
|
53
|
-
export class EmptyExpr extends AST {
|
|
54
|
-
visit(visitor, context = null) {
|
|
55
|
-
// do nothing
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
export class ImplicitReceiver extends AST {
|
|
59
|
-
visit(visitor, context = null) {
|
|
60
|
-
return visitor.visitImplicitReceiver(this, context);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Multiple expressions separated by a semicolon.
|
|
65
|
-
*/
|
|
66
|
-
export class Chain extends AST {
|
|
67
|
-
constructor(span, expressions) {
|
|
68
|
-
super(span);
|
|
69
|
-
this.expressions = expressions;
|
|
70
|
-
}
|
|
71
|
-
visit(visitor, context = null) { return visitor.visitChain(this, context); }
|
|
72
|
-
}
|
|
73
|
-
export class Conditional extends AST {
|
|
74
|
-
constructor(span, condition, trueExp, falseExp) {
|
|
75
|
-
super(span);
|
|
76
|
-
this.condition = condition;
|
|
77
|
-
this.trueExp = trueExp;
|
|
78
|
-
this.falseExp = falseExp;
|
|
79
|
-
}
|
|
80
|
-
visit(visitor, context = null) {
|
|
81
|
-
return visitor.visitConditional(this, context);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
export class PropertyRead extends AST {
|
|
85
|
-
constructor(span, receiver, name) {
|
|
86
|
-
super(span);
|
|
87
|
-
this.receiver = receiver;
|
|
88
|
-
this.name = name;
|
|
89
|
-
}
|
|
90
|
-
visit(visitor, context = null) {
|
|
91
|
-
return visitor.visitPropertyRead(this, context);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
export class PropertyWrite extends AST {
|
|
95
|
-
constructor(span, receiver, name, value) {
|
|
96
|
-
super(span);
|
|
97
|
-
this.receiver = receiver;
|
|
98
|
-
this.name = name;
|
|
99
|
-
this.value = value;
|
|
100
|
-
}
|
|
101
|
-
visit(visitor, context = null) {
|
|
102
|
-
return visitor.visitPropertyWrite(this, context);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
export class SafePropertyRead extends AST {
|
|
106
|
-
constructor(span, receiver, name) {
|
|
107
|
-
super(span);
|
|
108
|
-
this.receiver = receiver;
|
|
109
|
-
this.name = name;
|
|
110
|
-
}
|
|
111
|
-
visit(visitor, context = null) {
|
|
112
|
-
return visitor.visitSafePropertyRead(this, context);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
export class KeyedRead extends AST {
|
|
116
|
-
constructor(span, obj, key) {
|
|
117
|
-
super(span);
|
|
118
|
-
this.obj = obj;
|
|
119
|
-
this.key = key;
|
|
120
|
-
}
|
|
121
|
-
visit(visitor, context = null) {
|
|
122
|
-
return visitor.visitKeyedRead(this, context);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
export class KeyedWrite extends AST {
|
|
126
|
-
constructor(span, obj, key, value) {
|
|
127
|
-
super(span);
|
|
128
|
-
this.obj = obj;
|
|
129
|
-
this.key = key;
|
|
130
|
-
this.value = value;
|
|
131
|
-
}
|
|
132
|
-
visit(visitor, context = null) {
|
|
133
|
-
return visitor.visitKeyedWrite(this, context);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
export class BindingPipe extends AST {
|
|
137
|
-
constructor(span, exp, name, args) {
|
|
138
|
-
super(span);
|
|
139
|
-
this.exp = exp;
|
|
140
|
-
this.name = name;
|
|
141
|
-
this.args = args;
|
|
142
|
-
}
|
|
143
|
-
visit(visitor, context = null) { return visitor.visitPipe(this, context); }
|
|
144
|
-
}
|
|
145
|
-
export class LiteralPrimitive extends AST {
|
|
146
|
-
constructor(span, value) {
|
|
147
|
-
super(span);
|
|
148
|
-
this.value = value;
|
|
149
|
-
}
|
|
150
|
-
visit(visitor, context = null) {
|
|
151
|
-
return visitor.visitLiteralPrimitive(this, context);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
export class LiteralArray extends AST {
|
|
155
|
-
constructor(span, expressions) {
|
|
156
|
-
super(span);
|
|
157
|
-
this.expressions = expressions;
|
|
158
|
-
}
|
|
159
|
-
visit(visitor, context = null) {
|
|
160
|
-
return visitor.visitLiteralArray(this, context);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
export class LiteralMap extends AST {
|
|
164
|
-
constructor(span, keys, values) {
|
|
165
|
-
super(span);
|
|
166
|
-
this.keys = keys;
|
|
167
|
-
this.values = values;
|
|
168
|
-
}
|
|
169
|
-
visit(visitor, context = null) {
|
|
170
|
-
return visitor.visitLiteralMap(this, context);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
export class Interpolation extends AST {
|
|
174
|
-
constructor(span, strings, expressions) {
|
|
175
|
-
super(span);
|
|
176
|
-
this.strings = strings;
|
|
177
|
-
this.expressions = expressions;
|
|
178
|
-
}
|
|
179
|
-
visit(visitor, context = null) {
|
|
180
|
-
return visitor.visitInterpolation(this, context);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
export class Binary extends AST {
|
|
184
|
-
constructor(span, operation, left, right) {
|
|
185
|
-
super(span);
|
|
186
|
-
this.operation = operation;
|
|
187
|
-
this.left = left;
|
|
188
|
-
this.right = right;
|
|
189
|
-
}
|
|
190
|
-
visit(visitor, context = null) {
|
|
191
|
-
return visitor.visitBinary(this, context);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
export class PrefixNot extends AST {
|
|
195
|
-
constructor(span, expression) {
|
|
196
|
-
super(span);
|
|
197
|
-
this.expression = expression;
|
|
198
|
-
}
|
|
199
|
-
visit(visitor, context = null) {
|
|
200
|
-
return visitor.visitPrefixNot(this, context);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
export class MethodCall extends AST {
|
|
204
|
-
constructor(span, receiver, name, args) {
|
|
205
|
-
super(span);
|
|
206
|
-
this.receiver = receiver;
|
|
207
|
-
this.name = name;
|
|
208
|
-
this.args = args;
|
|
209
|
-
}
|
|
210
|
-
visit(visitor, context = null) {
|
|
211
|
-
return visitor.visitMethodCall(this, context);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
export class SafeMethodCall extends AST {
|
|
215
|
-
constructor(span, receiver, name, args) {
|
|
216
|
-
super(span);
|
|
217
|
-
this.receiver = receiver;
|
|
218
|
-
this.name = name;
|
|
219
|
-
this.args = args;
|
|
220
|
-
}
|
|
221
|
-
visit(visitor, context = null) {
|
|
222
|
-
return visitor.visitSafeMethodCall(this, context);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
export class FunctionCall extends AST {
|
|
226
|
-
constructor(span, target, args) {
|
|
227
|
-
super(span);
|
|
228
|
-
this.target = target;
|
|
229
|
-
this.args = args;
|
|
230
|
-
}
|
|
231
|
-
visit(visitor, context = null) {
|
|
232
|
-
return visitor.visitFunctionCall(this, context);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
export class ASTWithSource extends AST {
|
|
236
|
-
constructor(ast, source, location, errors) {
|
|
237
|
-
super(new ParseSpan(0, isBlank(source) ? 0 : source.length));
|
|
238
|
-
this.ast = ast;
|
|
239
|
-
this.source = source;
|
|
240
|
-
this.location = location;
|
|
241
|
-
this.errors = errors;
|
|
242
|
-
}
|
|
243
|
-
visit(visitor, context = null) { return this.ast.visit(visitor, context); }
|
|
244
|
-
toString() { return `${this.source} in ${this.location}`; }
|
|
245
|
-
}
|
|
246
|
-
export class TemplateBinding {
|
|
247
|
-
constructor(span, key, keyIsVar, name, expression) {
|
|
248
|
-
this.span = span;
|
|
249
|
-
this.key = key;
|
|
250
|
-
this.keyIsVar = keyIsVar;
|
|
251
|
-
this.name = name;
|
|
252
|
-
this.expression = expression;
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
export class RecursiveAstVisitor {
|
|
256
|
-
visitBinary(ast, context) {
|
|
257
|
-
ast.left.visit(this);
|
|
258
|
-
ast.right.visit(this);
|
|
259
|
-
return null;
|
|
260
|
-
}
|
|
261
|
-
visitChain(ast, context) { return this.visitAll(ast.expressions, context); }
|
|
262
|
-
visitConditional(ast, context) {
|
|
263
|
-
ast.condition.visit(this);
|
|
264
|
-
ast.trueExp.visit(this);
|
|
265
|
-
ast.falseExp.visit(this);
|
|
266
|
-
return null;
|
|
267
|
-
}
|
|
268
|
-
visitPipe(ast, context) {
|
|
269
|
-
ast.exp.visit(this);
|
|
270
|
-
this.visitAll(ast.args, context);
|
|
271
|
-
return null;
|
|
272
|
-
}
|
|
273
|
-
visitFunctionCall(ast, context) {
|
|
274
|
-
ast.target.visit(this);
|
|
275
|
-
this.visitAll(ast.args, context);
|
|
276
|
-
return null;
|
|
277
|
-
}
|
|
278
|
-
visitImplicitReceiver(ast, context) { return null; }
|
|
279
|
-
visitInterpolation(ast, context) {
|
|
280
|
-
return this.visitAll(ast.expressions, context);
|
|
281
|
-
}
|
|
282
|
-
visitKeyedRead(ast, context) {
|
|
283
|
-
ast.obj.visit(this);
|
|
284
|
-
ast.key.visit(this);
|
|
285
|
-
return null;
|
|
286
|
-
}
|
|
287
|
-
visitKeyedWrite(ast, context) {
|
|
288
|
-
ast.obj.visit(this);
|
|
289
|
-
ast.key.visit(this);
|
|
290
|
-
ast.value.visit(this);
|
|
291
|
-
return null;
|
|
292
|
-
}
|
|
293
|
-
visitLiteralArray(ast, context) {
|
|
294
|
-
return this.visitAll(ast.expressions, context);
|
|
295
|
-
}
|
|
296
|
-
visitLiteralMap(ast, context) { return this.visitAll(ast.values, context); }
|
|
297
|
-
visitLiteralPrimitive(ast, context) { return null; }
|
|
298
|
-
visitMethodCall(ast, context) {
|
|
299
|
-
ast.receiver.visit(this);
|
|
300
|
-
return this.visitAll(ast.args, context);
|
|
301
|
-
}
|
|
302
|
-
visitPrefixNot(ast, context) {
|
|
303
|
-
ast.expression.visit(this);
|
|
304
|
-
return null;
|
|
305
|
-
}
|
|
306
|
-
visitPropertyRead(ast, context) {
|
|
307
|
-
ast.receiver.visit(this);
|
|
308
|
-
return null;
|
|
309
|
-
}
|
|
310
|
-
visitPropertyWrite(ast, context) {
|
|
311
|
-
ast.receiver.visit(this);
|
|
312
|
-
ast.value.visit(this);
|
|
313
|
-
return null;
|
|
314
|
-
}
|
|
315
|
-
visitSafePropertyRead(ast, context) {
|
|
316
|
-
ast.receiver.visit(this);
|
|
317
|
-
return null;
|
|
318
|
-
}
|
|
319
|
-
visitSafeMethodCall(ast, context) {
|
|
320
|
-
ast.receiver.visit(this);
|
|
321
|
-
return this.visitAll(ast.args, context);
|
|
322
|
-
}
|
|
323
|
-
visitAll(asts, context) {
|
|
324
|
-
asts.forEach(ast => ast.visit(this, context));
|
|
325
|
-
return null;
|
|
326
|
-
}
|
|
327
|
-
visitQuote(ast, context) { return null; }
|
|
328
|
-
}
|
|
329
|
-
export class AstTransformer {
|
|
330
|
-
visitImplicitReceiver(ast, context) { return ast; }
|
|
331
|
-
visitInterpolation(ast, context) {
|
|
332
|
-
return new Interpolation(ast.span, ast.strings, this.visitAll(ast.expressions));
|
|
333
|
-
}
|
|
334
|
-
visitLiteralPrimitive(ast, context) {
|
|
335
|
-
return new LiteralPrimitive(ast.span, ast.value);
|
|
336
|
-
}
|
|
337
|
-
visitPropertyRead(ast, context) {
|
|
338
|
-
return new PropertyRead(ast.span, ast.receiver.visit(this), ast.name);
|
|
339
|
-
}
|
|
340
|
-
visitPropertyWrite(ast, context) {
|
|
341
|
-
return new PropertyWrite(ast.span, ast.receiver.visit(this), ast.name, ast.value);
|
|
342
|
-
}
|
|
343
|
-
visitSafePropertyRead(ast, context) {
|
|
344
|
-
return new SafePropertyRead(ast.span, ast.receiver.visit(this), ast.name);
|
|
345
|
-
}
|
|
346
|
-
visitMethodCall(ast, context) {
|
|
347
|
-
return new MethodCall(ast.span, ast.receiver.visit(this), ast.name, this.visitAll(ast.args));
|
|
348
|
-
}
|
|
349
|
-
visitSafeMethodCall(ast, context) {
|
|
350
|
-
return new SafeMethodCall(ast.span, ast.receiver.visit(this), ast.name, this.visitAll(ast.args));
|
|
351
|
-
}
|
|
352
|
-
visitFunctionCall(ast, context) {
|
|
353
|
-
return new FunctionCall(ast.span, ast.target.visit(this), this.visitAll(ast.args));
|
|
354
|
-
}
|
|
355
|
-
visitLiteralArray(ast, context) {
|
|
356
|
-
return new LiteralArray(ast.span, this.visitAll(ast.expressions));
|
|
357
|
-
}
|
|
358
|
-
visitLiteralMap(ast, context) {
|
|
359
|
-
return new LiteralMap(ast.span, ast.keys, this.visitAll(ast.values));
|
|
360
|
-
}
|
|
361
|
-
visitBinary(ast, context) {
|
|
362
|
-
return new Binary(ast.span, ast.operation, ast.left.visit(this), ast.right.visit(this));
|
|
363
|
-
}
|
|
364
|
-
visitPrefixNot(ast, context) {
|
|
365
|
-
return new PrefixNot(ast.span, ast.expression.visit(this));
|
|
366
|
-
}
|
|
367
|
-
visitConditional(ast, context) {
|
|
368
|
-
return new Conditional(ast.span, ast.condition.visit(this), ast.trueExp.visit(this), ast.falseExp.visit(this));
|
|
369
|
-
}
|
|
370
|
-
visitPipe(ast, context) {
|
|
371
|
-
return new BindingPipe(ast.span, ast.exp.visit(this), ast.name, this.visitAll(ast.args));
|
|
372
|
-
}
|
|
373
|
-
visitKeyedRead(ast, context) {
|
|
374
|
-
return new KeyedRead(ast.span, ast.obj.visit(this), ast.key.visit(this));
|
|
375
|
-
}
|
|
376
|
-
visitKeyedWrite(ast, context) {
|
|
377
|
-
return new KeyedWrite(ast.span, ast.obj.visit(this), ast.key.visit(this), ast.value.visit(this));
|
|
378
|
-
}
|
|
379
|
-
visitAll(asts) {
|
|
380
|
-
const res = new Array(asts.length);
|
|
381
|
-
for (let i = 0; i < asts.length; ++i) {
|
|
382
|
-
res[i] = asts[i].visit(this);
|
|
383
|
-
}
|
|
384
|
-
return res;
|
|
385
|
-
}
|
|
386
|
-
visitChain(ast, context) {
|
|
387
|
-
return new Chain(ast.span, this.visitAll(ast.expressions));
|
|
388
|
-
}
|
|
389
|
-
visitQuote(ast, context) {
|
|
390
|
-
return new Quote(ast.span, ast.prefix, ast.uninterpretedExpression, ast.location);
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
//# sourceMappingURL=ast.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ast.js","sourceRoot":"","sources":["ast.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * @license\r\n * Copyright Google Inc. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://angular.io/license\r\n */\r\n\r\n\r\nimport {isBlank} from '../facade/lang';\r\n\r\nexport class ParserError {\r\n public message: string;\r\n constructor(\r\n message: string, public input: string, public errLocation: string, public ctxLocation?: any) {\r\n this.message = `Parser Error: ${message} ${errLocation} [${input}] in ${ctxLocation}`;\r\n }\r\n}\r\n\r\nexport class ParseSpan {\r\n constructor(public start: number, public end: number) {}\r\n}\r\n\r\nexport class AST {\r\n constructor(public span: ParseSpan) {}\r\n visit(visitor: AstVisitor, context: any = null): any { return null; }\r\n toString(): string { return 'AST'; }\r\n}\r\n\r\n/**\r\n * Represents a quoted expression of the form:\r\n *\r\n * quote = prefix `:` uninterpretedExpression\r\n * prefix = identifier\r\n * uninterpretedExpression = arbitrary string\r\n *\r\n * A quoted expression is meant to be pre-processed by an AST transformer that\r\n * converts it into another AST that no longer contains quoted expressions.\r\n * It is meant to allow third-party developers to extend Angular template\r\n * expression language. The `uninterpretedExpression` part of the quote is\r\n * therefore not interpreted by the Angular's own expression parser.\r\n */\r\nexport class Quote extends AST {\r\n constructor(\r\n span: ParseSpan, public prefix: string, public uninterpretedExpression: string,\r\n public location: any) {\r\n super(span);\r\n }\r\n visit(visitor: AstVisitor, context: any = null): any { return visitor.visitQuote(this, context); }\r\n toString(): string { return 'Quote'; }\r\n}\r\n\r\nexport class EmptyExpr extends AST {\r\n visit(visitor: AstVisitor, context: any = null) {\r\n // do nothing\r\n }\r\n}\r\n\r\nexport class ImplicitReceiver extends AST {\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitImplicitReceiver(this, context);\r\n }\r\n}\r\n\r\n/**\r\n * Multiple expressions separated by a semicolon.\r\n */\r\nexport class Chain extends AST {\r\n constructor(span: ParseSpan, public expressions: any[]) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any { return visitor.visitChain(this, context); }\r\n}\r\n\r\nexport class Conditional extends AST {\r\n constructor(span: ParseSpan, public condition: AST, public trueExp: AST, public falseExp: AST) {\r\n super(span);\r\n }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitConditional(this, context);\r\n }\r\n}\r\n\r\nexport class PropertyRead extends AST {\r\n constructor(span: ParseSpan, public receiver: AST, public name: string) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitPropertyRead(this, context);\r\n }\r\n}\r\n\r\nexport class PropertyWrite extends AST {\r\n constructor(span: ParseSpan, public receiver: AST, public name: string, public value: AST) {\r\n super(span);\r\n }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitPropertyWrite(this, context);\r\n }\r\n}\r\n\r\nexport class SafePropertyRead extends AST {\r\n constructor(span: ParseSpan, public receiver: AST, public name: string) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitSafePropertyRead(this, context);\r\n }\r\n}\r\n\r\nexport class KeyedRead extends AST {\r\n constructor(span: ParseSpan, public obj: AST, public key: AST) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitKeyedRead(this, context);\r\n }\r\n}\r\n\r\nexport class KeyedWrite extends AST {\r\n constructor(span: ParseSpan, public obj: AST, public key: AST, public value: AST) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitKeyedWrite(this, context);\r\n }\r\n}\r\n\r\nexport class BindingPipe extends AST {\r\n constructor(span: ParseSpan, public exp: AST, public name: string, public args: any[]) {\r\n super(span);\r\n }\r\n visit(visitor: AstVisitor, context: any = null): any { return visitor.visitPipe(this, context); }\r\n}\r\n\r\nexport class LiteralPrimitive extends AST {\r\n constructor(span: ParseSpan, public value: any) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitLiteralPrimitive(this, context);\r\n }\r\n}\r\n\r\nexport class LiteralArray extends AST {\r\n constructor(span: ParseSpan, public expressions: any[]) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitLiteralArray(this, context);\r\n }\r\n}\r\n\r\nexport class LiteralMap extends AST {\r\n constructor(span: ParseSpan, public keys: any[], public values: any[]) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitLiteralMap(this, context);\r\n }\r\n}\r\n\r\nexport class Interpolation extends AST {\r\n constructor(span: ParseSpan, public strings: any[], public expressions: any[]) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitInterpolation(this, context);\r\n }\r\n}\r\n\r\nexport class Binary extends AST {\r\n constructor(span: ParseSpan, public operation: string, public left: AST, public right: AST) {\r\n super(span);\r\n }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitBinary(this, context);\r\n }\r\n}\r\n\r\nexport class PrefixNot extends AST {\r\n constructor(span: ParseSpan, public expression: AST) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitPrefixNot(this, context);\r\n }\r\n}\r\n\r\nexport class MethodCall extends AST {\r\n constructor(span: ParseSpan, public receiver: AST, public name: string, public args: any[]) {\r\n super(span);\r\n }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitMethodCall(this, context);\r\n }\r\n}\r\n\r\nexport class SafeMethodCall extends AST {\r\n constructor(span: ParseSpan, public receiver: AST, public name: string, public args: any[]) {\r\n super(span);\r\n }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitSafeMethodCall(this, context);\r\n }\r\n}\r\n\r\nexport class FunctionCall extends AST {\r\n constructor(span: ParseSpan, public target: AST, public args: any[]) { super(span); }\r\n visit(visitor: AstVisitor, context: any = null): any {\r\n return visitor.visitFunctionCall(this, context);\r\n }\r\n}\r\n\r\nexport class ASTWithSource extends AST {\r\n constructor(\r\n public ast: AST, public source: string, public location: string,\r\n public errors: ParserError[]) {\r\n super(new ParseSpan(0, isBlank(source) ? 0 : source.length));\r\n }\r\n visit(visitor: AstVisitor, context: any = null): any { return this.ast.visit(visitor, context); }\r\n toString(): string { return `${this.source} in ${this.location}`; }\r\n}\r\n\r\nexport class TemplateBinding {\r\n constructor(\r\n public span: ParseSpan, public key: string, public keyIsVar: boolean, public name: string,\r\n public expression: ASTWithSource) {}\r\n}\r\n\r\nexport interface AstVisitor {\r\n visitBinary(ast: Binary, context: any): any;\r\n visitChain(ast: Chain, context: any): any;\r\n visitConditional(ast: Conditional, context: any): any;\r\n visitFunctionCall(ast: FunctionCall, context: any): any;\r\n visitImplicitReceiver(ast: ImplicitReceiver, context: any): any;\r\n visitInterpolation(ast: Interpolation, context: any): any;\r\n visitKeyedRead(ast: KeyedRead, context: any): any;\r\n visitKeyedWrite(ast: KeyedWrite, context: any): any;\r\n visitLiteralArray(ast: LiteralArray, context: any): any;\r\n visitLiteralMap(ast: LiteralMap, context: any): any;\r\n visitLiteralPrimitive(ast: LiteralPrimitive, context: any): any;\r\n visitMethodCall(ast: MethodCall, context: any): any;\r\n visitPipe(ast: BindingPipe, context: any): any;\r\n visitPrefixNot(ast: PrefixNot, context: any): any;\r\n visitPropertyRead(ast: PropertyRead, context: any): any;\r\n visitPropertyWrite(ast: PropertyWrite, context: any): any;\r\n visitQuote(ast: Quote, context: any): any;\r\n visitSafeMethodCall(ast: SafeMethodCall, context: any): any;\r\n visitSafePropertyRead(ast: SafePropertyRead, context: any): any;\r\n}\r\n\r\nexport class RecursiveAstVisitor implements AstVisitor {\r\n visitBinary(ast: Binary, context: any): any {\r\n ast.left.visit(this);\r\n ast.right.visit(this);\r\n return null;\r\n }\r\n visitChain(ast: Chain, context: any): any { return this.visitAll(ast.expressions, context); }\r\n visitConditional(ast: Conditional, context: any): any {\r\n ast.condition.visit(this);\r\n ast.trueExp.visit(this);\r\n ast.falseExp.visit(this);\r\n return null;\r\n }\r\n visitPipe(ast: BindingPipe, context: any): any {\r\n ast.exp.visit(this);\r\n this.visitAll(ast.args, context);\r\n return null;\r\n }\r\n visitFunctionCall(ast: FunctionCall, context: any): any {\r\n ast.target.visit(this);\r\n this.visitAll(ast.args, context);\r\n return null;\r\n }\r\n visitImplicitReceiver(ast: ImplicitReceiver, context: any): any { return null; }\r\n visitInterpolation(ast: Interpolation, context: any): any {\r\n return this.visitAll(ast.expressions, context);\r\n }\r\n visitKeyedRead(ast: KeyedRead, context: any): any {\r\n ast.obj.visit(this);\r\n ast.key.visit(this);\r\n return null;\r\n }\r\n visitKeyedWrite(ast: KeyedWrite, context: any): any {\r\n ast.obj.visit(this);\r\n ast.key.visit(this);\r\n ast.value.visit(this);\r\n return null;\r\n }\r\n visitLiteralArray(ast: LiteralArray, context: any): any {\r\n return this.visitAll(ast.expressions, context);\r\n }\r\n visitLiteralMap(ast: LiteralMap, context: any): any { return this.visitAll(ast.values, context); }\r\n visitLiteralPrimitive(ast: LiteralPrimitive, context: any): any { return null; }\r\n visitMethodCall(ast: MethodCall, context: any): any {\r\n ast.receiver.visit(this);\r\n return this.visitAll(ast.args, context);\r\n }\r\n visitPrefixNot(ast: PrefixNot, context: any): any {\r\n ast.expression.visit(this);\r\n return null;\r\n }\r\n visitPropertyRead(ast: PropertyRead, context: any): any {\r\n ast.receiver.visit(this);\r\n return null;\r\n }\r\n visitPropertyWrite(ast: PropertyWrite, context: any): any {\r\n ast.receiver.visit(this);\r\n ast.value.visit(this);\r\n return null;\r\n }\r\n visitSafePropertyRead(ast: SafePropertyRead, context: any): any {\r\n ast.receiver.visit(this);\r\n return null;\r\n }\r\n visitSafeMethodCall(ast: SafeMethodCall, context: any): any {\r\n ast.receiver.visit(this);\r\n return this.visitAll(ast.args, context);\r\n }\r\n visitAll(asts: AST[], context: any): any {\r\n asts.forEach(ast => ast.visit(this, context));\r\n return null;\r\n }\r\n visitQuote(ast: Quote, context: any): any { return null; }\r\n}\r\n\r\nexport class AstTransformer implements AstVisitor {\r\n visitImplicitReceiver(ast: ImplicitReceiver, context: any): AST { return ast; }\r\n\r\n visitInterpolation(ast: Interpolation, context: any): AST {\r\n return new Interpolation(ast.span, ast.strings, this.visitAll(ast.expressions));\r\n }\r\n\r\n visitLiteralPrimitive(ast: LiteralPrimitive, context: any): AST {\r\n return new LiteralPrimitive(ast.span, ast.value);\r\n }\r\n\r\n visitPropertyRead(ast: PropertyRead, context: any): AST {\r\n return new PropertyRead(ast.span, ast.receiver.visit(this), ast.name);\r\n }\r\n\r\n visitPropertyWrite(ast: PropertyWrite, context: any): AST {\r\n return new PropertyWrite(ast.span, ast.receiver.visit(this), ast.name, ast.value);\r\n }\r\n\r\n visitSafePropertyRead(ast: SafePropertyRead, context: any): AST {\r\n return new SafePropertyRead(ast.span, ast.receiver.visit(this), ast.name);\r\n }\r\n\r\n visitMethodCall(ast: MethodCall, context: any): AST {\r\n return new MethodCall(ast.span, ast.receiver.visit(this), ast.name, this.visitAll(ast.args));\r\n }\r\n\r\n visitSafeMethodCall(ast: SafeMethodCall, context: any): AST {\r\n return new SafeMethodCall(\r\n ast.span, ast.receiver.visit(this), ast.name, this.visitAll(ast.args));\r\n }\r\n\r\n visitFunctionCall(ast: FunctionCall, context: any): AST {\r\n return new FunctionCall(ast.span, ast.target.visit(this), this.visitAll(ast.args));\r\n }\r\n\r\n visitLiteralArray(ast: LiteralArray, context: any): AST {\r\n return new LiteralArray(ast.span, this.visitAll(ast.expressions));\r\n }\r\n\r\n visitLiteralMap(ast: LiteralMap, context: any): AST {\r\n return new LiteralMap(ast.span, ast.keys, this.visitAll(ast.values));\r\n }\r\n\r\n visitBinary(ast: Binary, context: any): AST {\r\n return new Binary(ast.span, ast.operation, ast.left.visit(this), ast.right.visit(this));\r\n }\r\n\r\n visitPrefixNot(ast: PrefixNot, context: any): AST {\r\n return new PrefixNot(ast.span, ast.expression.visit(this));\r\n }\r\n\r\n visitConditional(ast: Conditional, context: any): AST {\r\n return new Conditional(\r\n ast.span, ast.condition.visit(this), ast.trueExp.visit(this), ast.falseExp.visit(this));\r\n }\r\n\r\n visitPipe(ast: BindingPipe, context: any): AST {\r\n return new BindingPipe(ast.span, ast.exp.visit(this), ast.name, this.visitAll(ast.args));\r\n }\r\n\r\n visitKeyedRead(ast: KeyedRead, context: any): AST {\r\n return new KeyedRead(ast.span, ast.obj.visit(this), ast.key.visit(this));\r\n }\r\n\r\n visitKeyedWrite(ast: KeyedWrite, context: any): AST {\r\n return new KeyedWrite(\r\n ast.span, ast.obj.visit(this), ast.key.visit(this), ast.value.visit(this));\r\n }\r\n\r\n visitAll(asts: any[]): any[] {\r\n const res = new Array(asts.length);\r\n for (let i = 0; i < asts.length; ++i) {\r\n res[i] = asts[i].visit(this);\r\n }\r\n return res;\r\n }\r\n\r\n visitChain(ast: Chain, context: any): AST {\r\n return new Chain(ast.span, this.visitAll(ast.expressions));\r\n }\r\n\r\n visitQuote(ast: Quote, context: any): AST {\r\n return new Quote(ast.span, ast.prefix, ast.uninterpretedExpression, ast.location);\r\n }\r\n}"]}
|