@auscope/angular2parse 20.3.0 → 22.0.0

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.
Files changed (109) hide show
  1. package/.editorconfig +13 -0
  2. package/LICENSE +21 -0
  3. package/README.md +66 -49
  4. package/angular.json +56 -0
  5. package/package.json +41 -33
  6. package/projects/angular2parse/README.md +49 -0
  7. package/projects/angular2parse/ng-package.json +7 -0
  8. package/projects/angular2parse/package.json +19 -0
  9. package/projects/angular2parse/src/lib/angular/compiler/assertions.d.ts +10 -0
  10. package/projects/angular2parse/src/lib/angular/compiler/assertions.d.ts.map +1 -0
  11. package/projects/angular2parse/src/lib/angular/compiler/assertions.js +45 -0
  12. package/projects/angular2parse/src/lib/angular/compiler/assertions.js.map +1 -0
  13. package/projects/angular2parse/src/lib/angular/compiler/assertions.ts +49 -0
  14. package/projects/angular2parse/src/lib/angular/compiler/ast.d.ts +243 -0
  15. package/projects/angular2parse/src/lib/angular/compiler/ast.d.ts.map +1 -0
  16. package/projects/angular2parse/src/lib/angular/compiler/ast.js +393 -0
  17. package/projects/angular2parse/src/lib/angular/compiler/ast.js.map +1 -0
  18. package/projects/angular2parse/src/lib/angular/compiler/ast.ts +393 -0
  19. package/projects/angular2parse/src/lib/angular/compiler/chars.d.ts +70 -0
  20. package/projects/angular2parse/src/lib/angular/compiler/chars.d.ts.map +1 -0
  21. package/projects/angular2parse/src/lib/angular/compiler/chars.js +78 -0
  22. package/projects/angular2parse/src/lib/angular/compiler/chars.js.map +1 -0
  23. package/projects/angular2parse/src/lib/angular/compiler/chars.ts +89 -0
  24. package/projects/angular2parse/src/lib/angular/compiler/interpolation-config.d.ts +15 -0
  25. package/projects/angular2parse/src/lib/angular/compiler/interpolation-config.d.ts.map +1 -0
  26. package/projects/angular2parse/src/lib/angular/compiler/interpolation-config.js +24 -0
  27. package/projects/angular2parse/src/lib/angular/compiler/interpolation-config.js.map +1 -0
  28. package/projects/angular2parse/src/lib/angular/compiler/interpolation-config.ts +25 -0
  29. package/projects/angular2parse/src/lib/angular/compiler/lexer.d.ts +45 -0
  30. package/projects/angular2parse/src/lib/angular/compiler/lexer.d.ts.map +1 -0
  31. package/projects/angular2parse/src/lib/angular/compiler/lexer.js +344 -0
  32. package/projects/angular2parse/src/lib/angular/compiler/lexer.js.map +1 -0
  33. package/projects/angular2parse/src/lib/angular/compiler/lexer.ts +383 -0
  34. package/projects/angular2parse/src/lib/angular/compiler/parser.d.ts +93 -0
  35. package/projects/angular2parse/src/lib/angular/compiler/parser.d.ts.map +1 -0
  36. package/projects/angular2parse/src/lib/angular/compiler/parser.js +735 -0
  37. package/projects/angular2parse/src/lib/angular/compiler/parser.js.map +1 -0
  38. package/projects/angular2parse/src/lib/angular/compiler/parser.ts +825 -0
  39. package/projects/angular2parse/src/lib/angular/compiler.d.ts +7 -0
  40. package/projects/angular2parse/src/lib/angular/compiler.d.ts.map +1 -0
  41. package/projects/angular2parse/src/lib/angular/compiler.js +7 -0
  42. package/projects/angular2parse/src/lib/angular/compiler.js.map +1 -0
  43. package/projects/angular2parse/src/lib/angular/compiler.ts +6 -0
  44. package/projects/angular2parse/src/lib/angular/facade/lang.d.ts +45 -0
  45. package/projects/angular2parse/src/lib/angular/facade/lang.d.ts.map +1 -0
  46. package/projects/angular2parse/src/lib/angular/facade/lang.js +85 -0
  47. package/projects/angular2parse/src/lib/angular/facade/lang.js.map +1 -0
  48. package/projects/angular2parse/src/lib/angular/facade/lang.ts +124 -0
  49. package/projects/angular2parse/src/lib/angular/facade.d.ts +2 -0
  50. package/projects/angular2parse/src/lib/angular/facade.d.ts.map +1 -0
  51. package/projects/angular2parse/src/lib/angular/facade.js +2 -0
  52. package/projects/angular2parse/src/lib/angular/facade.js.map +1 -0
  53. package/projects/angular2parse/src/lib/angular/facade.ts +1 -0
  54. package/projects/angular2parse/src/lib/angular.d.ts +3 -0
  55. package/projects/angular2parse/src/lib/angular.d.ts.map +1 -0
  56. package/projects/angular2parse/src/lib/angular.js +3 -0
  57. package/projects/angular2parse/src/lib/angular.js.map +1 -0
  58. package/projects/angular2parse/src/lib/angular.ts +2 -0
  59. package/projects/angular2parse/src/lib/module.d.ts +6 -0
  60. package/projects/angular2parse/src/lib/module.d.ts.map +1 -0
  61. package/projects/angular2parse/src/lib/module.js +17 -0
  62. package/projects/angular2parse/src/lib/module.js.map +1 -0
  63. package/projects/angular2parse/src/lib/module.ts +12 -0
  64. package/projects/angular2parse/src/lib/parse.d.ts +19 -0
  65. package/projects/angular2parse/src/lib/parse.d.ts.map +1 -0
  66. package/projects/angular2parse/src/lib/parse.js +61 -0
  67. package/projects/angular2parse/src/lib/parse.js.map +1 -0
  68. package/projects/angular2parse/src/lib/parse.ts +78 -0
  69. package/projects/angular2parse/src/lib/util/binary-operations.d.ts +2 -0
  70. package/projects/angular2parse/src/lib/util/binary-operations.d.ts.map +1 -0
  71. package/projects/angular2parse/src/lib/util/binary-operations.js +18 -0
  72. package/projects/angular2parse/src/lib/util/binary-operations.js.map +1 -0
  73. package/projects/angular2parse/src/lib/util/binary-operations.ts +17 -0
  74. package/projects/angular2parse/src/lib/util/lang.d.ts +5 -0
  75. package/projects/angular2parse/src/lib/util/lang.d.ts.map +1 -0
  76. package/projects/angular2parse/src/lib/util/lang.js +13 -0
  77. package/projects/angular2parse/src/lib/util/lang.js.map +1 -0
  78. package/projects/angular2parse/src/lib/util/lang.ts +15 -0
  79. package/projects/angular2parse/src/lib/util.d.ts +3 -0
  80. package/projects/angular2parse/src/lib/util.d.ts.map +1 -0
  81. package/projects/angular2parse/src/lib/util.js +3 -0
  82. package/projects/angular2parse/src/lib/util.js.map +1 -0
  83. package/projects/angular2parse/src/lib/util.ts +2 -0
  84. package/projects/angular2parse/src/lib/visitors/parse-visitor-compiler.d.ts +24 -0
  85. package/projects/angular2parse/src/lib/visitors/parse-visitor-compiler.d.ts.map +1 -0
  86. package/projects/angular2parse/src/lib/visitors/parse-visitor-compiler.js +96 -0
  87. package/projects/angular2parse/src/lib/visitors/parse-visitor-compiler.js.map +1 -0
  88. package/projects/angular2parse/src/lib/visitors/parse-visitor-compiler.ts +149 -0
  89. package/projects/angular2parse/src/lib/visitors/parse-visitor-resolver.d.ts +26 -0
  90. package/projects/angular2parse/src/lib/visitors/parse-visitor-resolver.d.ts.map +1 -0
  91. package/projects/angular2parse/src/lib/visitors/parse-visitor-resolver.js +141 -0
  92. package/projects/angular2parse/src/lib/visitors/parse-visitor-resolver.js.map +1 -0
  93. package/projects/angular2parse/src/lib/visitors/parse-visitor-resolver.ts +208 -0
  94. package/projects/angular2parse/src/lib/visitors.d.ts +3 -0
  95. package/projects/angular2parse/src/lib/visitors.d.ts.map +1 -0
  96. package/projects/angular2parse/src/lib/visitors.js +3 -0
  97. package/projects/angular2parse/src/lib/visitors.js.map +1 -0
  98. package/projects/angular2parse/src/lib/visitors.ts +2 -0
  99. package/projects/angular2parse/src/public-api.d.ts +3 -0
  100. package/projects/angular2parse/src/public-api.d.ts.map +1 -0
  101. package/projects/angular2parse/src/public-api.js +6 -0
  102. package/projects/angular2parse/src/public-api.js.map +1 -0
  103. package/projects/angular2parse/src/public-api.ts +5 -0
  104. package/projects/angular2parse/tsconfig.lib.json +22 -0
  105. package/projects/angular2parse/tsconfig.lib.prod.json +15 -0
  106. package/tsconfig.json +21 -0
  107. package/fesm2022/auscope-angular2parse.mjs +0 -2033
  108. package/fesm2022/auscope-angular2parse.mjs.map +0 -1
  109. package/index.d.ts +0 -32
@@ -0,0 +1,383 @@
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
+
9
+ import * as chars from './chars';
10
+ import {NumberWrapper} from '../facade/lang';
11
+
12
+ export enum TokenType {
13
+ Character,
14
+ Identifier,
15
+ Keyword,
16
+ String,
17
+ Operator,
18
+ Number,
19
+ Error
20
+ }
21
+
22
+ const KEYWORDS = ['var', 'let', 'null', 'undefined', 'true', 'false', 'if', 'else', 'this'];
23
+
24
+ export class Lexer {
25
+ tokenize(text: string): Token[] {
26
+ const scanner = new _Scanner(text);
27
+ const tokens: Token[] = [];
28
+ let token = scanner.scanToken();
29
+ while (token != null) {
30
+ tokens.push(token);
31
+ token = scanner.scanToken();
32
+ }
33
+ return tokens;
34
+ }
35
+ }
36
+
37
+ export class Token {
38
+ constructor(
39
+ public index: number, public type: TokenType, public numValue: number,
40
+ public strValue: string) {}
41
+
42
+ isCharacter(code: number): boolean {
43
+ return this.type == TokenType.Character && this.numValue == code;
44
+ }
45
+
46
+ isNumber(): boolean { return this.type == TokenType.Number; }
47
+
48
+ isString(): boolean { return this.type == TokenType.String; }
49
+
50
+ isOperator(operater: string): boolean {
51
+ return this.type == TokenType.Operator && this.strValue == operater;
52
+ }
53
+
54
+ isIdentifier(): boolean { return this.type == TokenType.Identifier; }
55
+
56
+ isKeyword(): boolean { return this.type == TokenType.Keyword; }
57
+
58
+ isKeywordLet(): boolean { return this.type == TokenType.Keyword && this.strValue == 'let'; }
59
+
60
+ isKeywordNull(): boolean { return this.type == TokenType.Keyword && this.strValue == 'null'; }
61
+
62
+ isKeywordUndefined(): boolean {
63
+ return this.type == TokenType.Keyword && this.strValue == 'undefined';
64
+ }
65
+
66
+ isKeywordTrue(): boolean { return this.type == TokenType.Keyword && this.strValue == 'true'; }
67
+
68
+ isKeywordFalse(): boolean { return this.type == TokenType.Keyword && this.strValue == 'false'; }
69
+
70
+ isKeywordThis(): boolean { return this.type == TokenType.Keyword && this.strValue == 'this'; }
71
+
72
+ isError(): boolean { return this.type == TokenType.Error; }
73
+
74
+ toNumber(): number { return this.type == TokenType.Number ? this.numValue : -1; }
75
+
76
+ toString(): string | null {
77
+ switch (this.type) {
78
+ case TokenType.Character:
79
+ case TokenType.Identifier:
80
+ case TokenType.Keyword:
81
+ case TokenType.Operator:
82
+ case TokenType.String:
83
+ case TokenType.Error:
84
+ return this.strValue;
85
+ case TokenType.Number:
86
+ return this.numValue.toString();
87
+ default:
88
+ return null;
89
+ }
90
+ }
91
+ }
92
+
93
+ function newCharacterToken(index: number, code: number): Token {
94
+ return new Token(index, TokenType.Character, code, String.fromCharCode(code));
95
+ }
96
+
97
+ function newIdentifierToken(index: number, text: string): Token {
98
+ return new Token(index, TokenType.Identifier, 0, text);
99
+ }
100
+
101
+ function newKeywordToken(index: number, text: string): Token {
102
+ return new Token(index, TokenType.Keyword, 0, text);
103
+ }
104
+
105
+ function newOperatorToken(index: number, text: string): Token {
106
+ return new Token(index, TokenType.Operator, 0, text);
107
+ }
108
+
109
+ function newStringToken(index: number, text: string): Token {
110
+ return new Token(index, TokenType.String, 0, text);
111
+ }
112
+
113
+ function newNumberToken(index: number, n: number): Token {
114
+ return new Token(index, TokenType.Number, n, '');
115
+ }
116
+
117
+ function newErrorToken(index: number, message: string): Token {
118
+ return new Token(index, TokenType.Error, 0, message);
119
+ }
120
+
121
+ export const EOF: Token = new Token(-1, TokenType.Character, 0, '');
122
+
123
+ class _Scanner {
124
+ length: number;
125
+ peek: number = 0;
126
+ index: number = -1;
127
+
128
+ constructor(public input: string) {
129
+ this.length = input.length;
130
+ this.advance();
131
+ }
132
+
133
+ advance() {
134
+ this.peek = ++this.index >= this.length ? chars.$EOF : this.input.charCodeAt(this.index);
135
+ }
136
+
137
+ scanToken(): Token | null {
138
+ const input = this.input, length = this.length;
139
+ let peek = this.peek, index = this.index;
140
+
141
+ // Skip whitespace.
142
+ while (peek <= chars.$SPACE) {
143
+ if (++index >= length) {
144
+ peek = chars.$EOF;
145
+ break;
146
+ } else {
147
+ peek = input.charCodeAt(index);
148
+ }
149
+ }
150
+
151
+ this.peek = peek;
152
+ this.index = index;
153
+
154
+ if (index >= length) {
155
+ return null;
156
+ }
157
+
158
+ // Handle identifiers and numbers.
159
+ if (isIdentifierStart(peek)) return this.scanIdentifier();
160
+ if (chars.isDigit(peek)) return this.scanNumber(index);
161
+
162
+ const start: number = index;
163
+ switch (peek) {
164
+ case chars.$PERIOD:
165
+ this.advance();
166
+ return chars.isDigit(this.peek) ? this.scanNumber(start) :
167
+ newCharacterToken(start, chars.$PERIOD);
168
+ case chars.$LPAREN:
169
+ case chars.$RPAREN:
170
+ case chars.$LBRACE:
171
+ case chars.$RBRACE:
172
+ case chars.$LBRACKET:
173
+ case chars.$RBRACKET:
174
+ case chars.$COMMA:
175
+ case chars.$COLON:
176
+ case chars.$SEMICOLON:
177
+ return this.scanCharacter(start, peek);
178
+ case chars.$SQ:
179
+ case chars.$DQ:
180
+ return this.scanString();
181
+ case chars.$HASH:
182
+ case chars.$PLUS:
183
+ case chars.$MINUS:
184
+ case chars.$STAR:
185
+ case chars.$SLASH:
186
+ case chars.$PERCENT:
187
+ case chars.$CARET:
188
+ return this.scanOperator(start, String.fromCharCode(peek));
189
+ case chars.$QUESTION:
190
+ return this.scanComplexOperator(start, '?', chars.$PERIOD, '.');
191
+ case chars.$LT:
192
+ case chars.$GT:
193
+ return this.scanComplexOperator(start, String.fromCharCode(peek), chars.$EQ, '=');
194
+ case chars.$BANG:
195
+ case chars.$EQ:
196
+ return this.scanComplexOperator(
197
+ start, String.fromCharCode(peek), chars.$EQ, '=', chars.$EQ, '=');
198
+ case chars.$AMPERSAND:
199
+ return this.scanComplexOperator(start, '&', chars.$AMPERSAND, '&');
200
+ case chars.$BAR:
201
+ return this.scanComplexOperator(start, '|', chars.$BAR, '|');
202
+ case chars.$NBSP:
203
+ while (chars.isWhitespace(this.peek)) this.advance();
204
+ return this.scanToken();
205
+ }
206
+
207
+ this.advance();
208
+ return this.error(`Unexpected character [${String.fromCharCode(peek)}]`, 0);
209
+ }
210
+
211
+ scanCharacter(start: number, code: number): Token {
212
+ this.advance();
213
+ return newCharacterToken(start, code);
214
+ }
215
+
216
+
217
+ scanOperator(start: number, str: string): Token {
218
+ this.advance();
219
+ return newOperatorToken(start, str);
220
+ }
221
+
222
+ /**
223
+ * Tokenize a 2/3 char long operator
224
+ *
225
+ * @param start start index in the expression
226
+ * @param one first symbol (always part of the operator)
227
+ * @param twoCode code point for the second symbol
228
+ * @param two second symbol (part of the operator when the second code point matches)
229
+ * @param threeCode code point for the third symbol
230
+ * @param three third symbol (part of the operator when provided and matches source expression)
231
+ * @returns {Token}
232
+ */
233
+ scanComplexOperator(
234
+ start: number, one: string, twoCode: number, two: string, threeCode?: number,
235
+ three?: string): Token {
236
+ this.advance();
237
+ let str: string = one;
238
+ if (this.peek == twoCode) {
239
+ this.advance();
240
+ str += two;
241
+ }
242
+ if (threeCode != null && this.peek == threeCode) {
243
+ this.advance();
244
+ str += three;
245
+ }
246
+ return newOperatorToken(start, str);
247
+ }
248
+
249
+ scanIdentifier(): Token {
250
+ const start: number = this.index;
251
+ this.advance();
252
+ while (isIdentifierPart(this.peek)) this.advance();
253
+ const str: string = this.input.substring(start, this.index);
254
+ return KEYWORDS.indexOf(str) > -1 ? newKeywordToken(start, str) :
255
+ newIdentifierToken(start, str);
256
+ }
257
+
258
+ scanNumber(start: number): Token {
259
+ let simple: boolean = (this.index === start);
260
+ this.advance(); // Skip initial digit.
261
+ while (true) {
262
+ if (chars.isDigit(this.peek)) {
263
+ // Do nothing.
264
+ } else if (this.peek == chars.$PERIOD) {
265
+ simple = false;
266
+ } else if (isExponentStart(this.peek)) {
267
+ this.advance();
268
+ if (isExponentSign(this.peek)) this.advance();
269
+ if (!chars.isDigit(this.peek)) return this.error('Invalid exponent', -1);
270
+ simple = false;
271
+ } else {
272
+ break;
273
+ }
274
+ this.advance();
275
+ }
276
+ const str: string = this.input.substring(start, this.index);
277
+ const value: number = simple ? NumberWrapper.parseIntAutoRadix(str) : parseFloat(str);
278
+ return newNumberToken(start, value);
279
+ }
280
+
281
+ scanString(): Token {
282
+ const start: number = this.index;
283
+ const quote: number = this.peek;
284
+ this.advance(); // Skip initial quote.
285
+
286
+ let buffer: string = '';
287
+ let marker: number = this.index;
288
+ const input: string = this.input;
289
+
290
+ while (this.peek != quote) {
291
+ if (this.peek == chars.$BACKSLASH) {
292
+ buffer += input.substring(marker, this.index);
293
+ this.advance();
294
+ let unescapedCode: number;
295
+ // Workaround for TS2.1-introduced type strictness
296
+ this.peek = this.peek;
297
+ if (this.peek == chars.$u) {
298
+ // 4 character hex code for unicode character.
299
+ const hex: string = input.substring(this.index + 1, this.index + 5);
300
+ if (/^[0-9a-f]+$/i.test(hex)) {
301
+ unescapedCode = parseInt(hex, 16);
302
+ } else {
303
+ return this.error(`Invalid unicode escape [\\u${hex}]`, 0);
304
+ }
305
+ for (let i: number = 0; i < 5; i++) {
306
+ this.advance();
307
+ }
308
+ } else {
309
+ unescapedCode = unescape(this.peek);
310
+ this.advance();
311
+ }
312
+ buffer += String.fromCharCode(unescapedCode);
313
+ marker = this.index;
314
+ } else if (this.peek == chars.$EOF) {
315
+ return this.error('Unterminated quote', 0);
316
+ } else {
317
+ this.advance();
318
+ }
319
+ }
320
+
321
+ const last: string = input.substring(marker, this.index);
322
+ this.advance(); // Skip terminating quote.
323
+
324
+ return newStringToken(start, buffer + last);
325
+ }
326
+
327
+ error(message: string, offset: number): Token {
328
+ const position: number = this.index + offset;
329
+ return newErrorToken(
330
+ position, `Lexer Error: ${message} at column ${position} in expression [${this.input}]`);
331
+ }
332
+ }
333
+
334
+ function isIdentifierStart(code: number): boolean {
335
+ return (chars.$a <= code && code <= chars.$z) || (chars.$A <= code && code <= chars.$Z) ||
336
+ (code == chars.$_) || (code == chars.$$);
337
+ }
338
+
339
+ export function isIdentifier(input: string): boolean {
340
+ if (input.length == 0) return false;
341
+ const scanner = new _Scanner(input);
342
+ if (!isIdentifierStart(scanner.peek)) return false;
343
+ scanner.advance();
344
+ while (scanner.peek !== chars.$EOF) {
345
+ if (!isIdentifierPart(scanner.peek)) return false;
346
+ scanner.advance();
347
+ }
348
+ return true;
349
+ }
350
+
351
+ function isIdentifierPart(code: number): boolean {
352
+ return chars.isAsciiLetter(code) || chars.isDigit(code) || (code == chars.$_) ||
353
+ (code == chars.$$);
354
+ }
355
+
356
+ function isExponentStart(code: number): boolean {
357
+ return code == chars.$e || code == chars.$E;
358
+ }
359
+
360
+ function isExponentSign(code: number): boolean {
361
+ return code == chars.$MINUS || code == chars.$PLUS;
362
+ }
363
+
364
+ export function isQuote(code: number): boolean {
365
+ return code === chars.$SQ || code === chars.$DQ || code === chars.$BT;
366
+ }
367
+
368
+ function unescape(code: number): number {
369
+ switch (code) {
370
+ case chars.$n:
371
+ return chars.$LF;
372
+ case chars.$f:
373
+ return chars.$FF;
374
+ case chars.$r:
375
+ return chars.$CR;
376
+ case chars.$t:
377
+ return chars.$TAB;
378
+ case chars.$v:
379
+ return chars.$VTAB;
380
+ default:
381
+ return code;
382
+ }
383
+ }
@@ -0,0 +1,93 @@
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 { InterpolationConfig } from './interpolation-config';
9
+ import { AST, ASTWithSource, BindingPipe, LiteralMap, ParseSpan, ParserError, TemplateBinding } from './ast';
10
+ import { Lexer, Token } from './lexer';
11
+ export declare class SplitInterpolation {
12
+ strings: string[];
13
+ expressions: string[];
14
+ offsets: number[];
15
+ constructor(strings: string[], expressions: string[], offsets: number[]);
16
+ }
17
+ export declare class TemplateBindingParseResult {
18
+ templateBindings: TemplateBinding[];
19
+ warnings: string[];
20
+ errors: ParserError[];
21
+ constructor(templateBindings: TemplateBinding[], warnings: string[], errors: ParserError[]);
22
+ }
23
+ export declare class Parser {
24
+ private _lexer;
25
+ private errors;
26
+ constructor(_lexer: Lexer);
27
+ parseAction(input: string, location: any, interpolationConfig?: InterpolationConfig): ASTWithSource;
28
+ parseBinding(input: string, location: any, interpolationConfig?: InterpolationConfig): ASTWithSource;
29
+ parseSimpleBinding(input: string, location: string, interpolationConfig?: InterpolationConfig): ASTWithSource;
30
+ private _reportError;
31
+ private _parseBindingAst;
32
+ private _parseQuote;
33
+ parseTemplateBindings(prefixToken: string, input: string, location: any): TemplateBindingParseResult;
34
+ parseInterpolation(input: string, location: any, interpolationConfig?: InterpolationConfig): ASTWithSource;
35
+ splitInterpolation(input: string, location: string, interpolationConfig?: InterpolationConfig): SplitInterpolation;
36
+ wrapLiteralPrimitive(input: string, location: any): ASTWithSource;
37
+ private _stripComments;
38
+ private _commentStart;
39
+ private _checkNoInterpolation;
40
+ private _findInterpolationErrorColumn;
41
+ }
42
+ export declare class _ParseAST {
43
+ input: string;
44
+ location: any;
45
+ tokens: Token[];
46
+ inputLength: number;
47
+ parseAction: boolean;
48
+ private errors;
49
+ private offset;
50
+ private rparensExpected;
51
+ private rbracketsExpected;
52
+ private rbracesExpected;
53
+ index: number;
54
+ constructor(input: string, location: any, tokens: Token[], inputLength: number, parseAction: boolean, errors: ParserError[], offset: number);
55
+ peek(offset: number): Token;
56
+ get next(): Token;
57
+ get inputIndex(): number;
58
+ span(start: number): ParseSpan;
59
+ advance(): void;
60
+ optionalCharacter(code: number): boolean;
61
+ peekKeywordLet(): boolean;
62
+ expectCharacter(code: number): void;
63
+ optionalOperator(op: string): boolean;
64
+ expectOperator(operator: string): void;
65
+ expectIdentifierOrKeyword(): string;
66
+ expectIdentifierOrKeywordOrString(): string;
67
+ parseChain(): AST;
68
+ parsePipe(): AST;
69
+ parseExpression(): AST;
70
+ parseConditional(): AST;
71
+ parseLogicalOr(): AST;
72
+ parseLogicalAnd(): AST;
73
+ parseEquality(): AST;
74
+ parseRelational(): AST;
75
+ parseAdditive(): AST;
76
+ parseMultiplicative(): AST;
77
+ parsePrefix(): AST;
78
+ parseCallChain(): AST;
79
+ parsePrimary(): AST;
80
+ parseExpressionList(terminator: number): AST[];
81
+ parseLiteralMap(): LiteralMap;
82
+ parseAccessMemberOrMethodCall(receiver: AST, isSafe?: boolean): AST;
83
+ parseCallArguments(): BindingPipe[];
84
+ /**
85
+ * An identifier, a keyword, a string with an optional `-` inbetween.
86
+ */
87
+ expectTemplateBindingKey(): string;
88
+ parseTemplateBindings(): TemplateBindingParseResult;
89
+ error(message: string, index?: number): void;
90
+ private locationText;
91
+ private skip;
92
+ }
93
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAA+B,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAEzF,OAAO,EAAC,GAAG,EAAE,aAAa,EAAsB,WAAW,EAAqH,UAAU,EAAgC,SAAS,EAAE,WAAW,EAAmF,eAAe,EAAC,MAAM,OAAO,CAAC;AACjW,OAAO,EAAM,KAAK,EAAE,KAAK,EAAmC,MAAM,SAAS,CAAC;AAG5E,qBAAa,kBAAkB;IACR,OAAO,EAAE,MAAM,EAAE;IAAS,WAAW,EAAE,MAAM,EAAE;IAAS,OAAO,EAAE,MAAM,EAAE;gBAAzE,OAAO,EAAE,MAAM,EAAE,EAAS,WAAW,EAAE,MAAM,EAAE,EAAS,OAAO,EAAE,MAAM,EAAE;CAC/F;AAED,qBAAa,0BAA0B;IAExB,gBAAgB,EAAE,eAAe,EAAE;IAAS,QAAQ,EAAE,MAAM,EAAE;IAC9D,MAAM,EAAE,WAAW,EAAE;gBADrB,gBAAgB,EAAE,eAAe,EAAE,EAAS,QAAQ,EAAE,MAAM,EAAE,EAC9D,MAAM,EAAE,WAAW,EAAE;CACnC;AAOD,qBAAa,MAAM;IAGH,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAAqB;gBAEf,MAAM,EAAE,KAAK;IAEjC,WAAW,CACP,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAC5B,mBAAmB,GAAE,mBAAkD,GAAG,aAAa;IAW3F,YAAY,CACR,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAC5B,mBAAmB,GAAE,mBAAkD,GAAG,aAAa;IAK3F,kBAAkB,CACd,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAC/B,mBAAmB,GAAE,mBAAkD,GAAG,aAAa;IAU3F,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,WAAW;IAUnB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GACvE,0BAA0B;IAc1B,kBAAkB,CACd,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAC5B,mBAAmB,GAAE,mBAAkD,GAAG,aAAa;IAuB3F,kBAAkB,CACd,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAC/B,mBAAmB,GAAE,mBAAkD,GAAG,kBAAkB;IAiChG,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,aAAa;IAMjE,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,6BAA6B;CAWxC;AAED,qBAAa,SAAS;IAQP,KAAK,EAAE,MAAM;IAAS,QAAQ,EAAE,GAAG;IAAS,MAAM,EAAE,KAAK,EAAE;IAC3D,WAAW,EAAE,MAAM;IAAS,WAAW,EAAE,OAAO;IAAE,OAAO,CAAC,MAAM;IACvE,OAAO,CAAC,MAAM;IATlB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,eAAe,CAAK;IAE5B,KAAK,EAAE,MAAM,CAAK;gBAGP,KAAK,EAAE,MAAM,EAAS,QAAQ,EAAE,GAAG,EAAS,MAAM,EAAE,KAAK,EAAE,EAC3D,WAAW,EAAE,MAAM,EAAS,WAAW,EAAE,OAAO,EAAU,MAAM,EAAE,WAAW,EAAE,EAC9E,MAAM,EAAE,MAAM;IAE1B,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK;IAK3B,IAAI,IAAI,IAAI,KAAK,CAAyB;IAE1C,IAAI,UAAU,IAAI,MAAM,CAGvB;IAED,IAAI,CAAC,KAAK,EAAE,MAAM;IAElB,OAAO;IAEP,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IASxC,cAAc,IAAI,OAAO;IAEzB,eAAe,CAAC,IAAI,EAAE,MAAM;IAK5B,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IASrC,cAAc,CAAC,QAAQ,EAAE,MAAM;IAK/B,yBAAyB,IAAI,MAAM;IAcnC,iCAAiC,IAAI,MAAM;IAc3C,UAAU,IAAI,GAAG;IAsBjB,SAAS,IAAI,GAAG;IAoBhB,eAAe,IAAI,GAAG;IAEtB,gBAAgB,IAAI,GAAG;IAqBvB,cAAc,IAAI,GAAG;IAUrB,eAAe,IAAI,GAAG;IAUtB,aAAa,IAAI,GAAG;IAoBpB,eAAe,IAAI,GAAG;IAoBtB,aAAa,IAAI,GAAG;IAkBpB,mBAAmB,IAAI,GAAG;IAmB1B,WAAW,IAAI,GAAG;IAwBlB,cAAc,IAAI,GAAG;IAkCrB,YAAY,IAAI,GAAG;IA6DnB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,EAAE;IAU9C,eAAe,IAAI,UAAU;IAmB7B,6BAA6B,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAE,OAAe,GAAG,GAAG;IAqC1E,kBAAkB,IAAI,WAAW,EAAE;IASnC;;OAEG;IACH,wBAAwB,IAAI,MAAM;IAclC,qBAAqB,IAAI,0BAA0B;IA+CnD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAKrC,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,IAAI;CAcf"}