@sap-ux/cds-annotation-parser 0.1.1

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 (55) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +74 -0
  3. package/dist/constants.d.ts +6 -0
  4. package/dist/constants.d.ts.map +1 -0
  5. package/dist/constants.js +10 -0
  6. package/dist/constants.js.map +1 -0
  7. package/dist/find-annotation-node.d.ts +40 -0
  8. package/dist/find-annotation-node.d.ts.map +1 -0
  9. package/dist/find-annotation-node.js +135 -0
  10. package/dist/find-annotation-node.js.map +1 -0
  11. package/dist/index.d.ts +7 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +52 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/parser/factory.d.ts +6 -0
  16. package/dist/parser/factory.d.ts.map +1 -0
  17. package/dist/parser/factory.js +13 -0
  18. package/dist/parser/factory.js.map +1 -0
  19. package/dist/parser/index.d.ts +11 -0
  20. package/dist/parser/index.d.ts.map +1 -0
  21. package/dist/parser/index.js +17 -0
  22. package/dist/parser/index.js.map +1 -0
  23. package/dist/parser/parser.d.ts +242 -0
  24. package/dist/parser/parser.d.ts.map +1 -0
  25. package/dist/parser/parser.js +385 -0
  26. package/dist/parser/parser.js.map +1 -0
  27. package/dist/parser/tokens.d.ts +103 -0
  28. package/dist/parser/tokens.d.ts.map +1 -0
  29. package/dist/parser/tokens.js +287 -0
  30. package/dist/parser/tokens.js.map +1 -0
  31. package/dist/transformer/annotation-ast-nodes.d.ts +178 -0
  32. package/dist/transformer/annotation-ast-nodes.d.ts.map +1 -0
  33. package/dist/transformer/annotation-ast-nodes.js +69 -0
  34. package/dist/transformer/annotation-ast-nodes.js.map +1 -0
  35. package/dist/transformer/ast.d.ts +6 -0
  36. package/dist/transformer/ast.d.ts.map +1 -0
  37. package/dist/transformer/ast.js +1227 -0
  38. package/dist/transformer/ast.js.map +1 -0
  39. package/dist/transformer/expressions.d.ts +87 -0
  40. package/dist/transformer/expressions.d.ts.map +1 -0
  41. package/dist/transformer/expressions.js +548 -0
  42. package/dist/transformer/expressions.js.map +1 -0
  43. package/dist/transformer/index.d.ts +5 -0
  44. package/dist/transformer/index.d.ts.map +1 -0
  45. package/dist/transformer/index.js +42 -0
  46. package/dist/transformer/index.js.map +1 -0
  47. package/dist/transformer/range.d.ts +20 -0
  48. package/dist/transformer/range.d.ts.map +1 -0
  49. package/dist/transformer/range.js +31 -0
  50. package/dist/transformer/range.js.map +1 -0
  51. package/dist/utils/index.d.ts +4 -0
  52. package/dist/utils/index.d.ts.map +1 -0
  53. package/dist/utils/index.js +17 -0
  54. package/dist/utils/index.js.map +1 -0
  55. package/package.json +38 -0
@@ -0,0 +1,242 @@
1
+ import type { IOrAlt, CstNode, TokenType, IToken, SubruleMethodOpts } from 'chevrotain';
2
+ import { CstParser } from 'chevrotain';
3
+ import type { PATH_SEGMENT_SEPARATOR_TOKEN_TYPE, COLON_TOKEN_TYPE, COMMA_TOKEN_TYPE, NUMBER_SIGN_TOKEN_TYPE, DELIMITED_IDENTIFIER_EXIT_TOKEN_TYPE, IDENTIFIER_START_TOKEN_TYPE, QUOTED_IDENTIFIER_EXIT_TOKEN_TYPE, TRUE_TOKEN_TYPE, FALSE_TOKEN_TYPE, NUMBER_TOKEN_TYPE, SINGLE_QUOTE_TOKEN_TYPE, STRING_TOKEN_TYPE, STRING_EXIT_TOKEN_TYPE, QUOTED_IDENTIFIER_TOKEN_TYPE, DELIMITED_IDENTIFIER_TOKEN_TYPE, L_CURLY_TOKEN_TYPE, L_BRACKET_TOKEN_TYPE, R_BRACKET_TOKEN_TYPE, R_CURLY_TOKEN_TYPE, NULL_TOKEN_TYPE, BINARY_TOKEN_TYPE, DATE_TOKEN_TYPE, TIME_TOKEN_TYPE, TIMESTAMP_TOKEN_TYPE, SPREAD_OPERATOR, UP_TO_KEYWORD, BACKTICK_TOKEN_TYPE, TRIPLE_BACKTICK_TOKEN_TYPE, MULTI_LINE_STRING_TOKEN_TYPE, MULTI_LINE_STRING_EXIT_TOKEN_TYPE, MULTI_LINE_STRING_STRIP_INDENT_EXIT_TOKEN_TYPE, L_PAREN_TOKEN_TYPE, R_PAREN_TOKEN_TYPE, OPERATOR } from './tokens';
4
+ import { IDENTIFIER_TOKEN_TYPE } from './tokens';
5
+ declare const DECLARATION_TYPE = "declaration";
6
+ declare const PATH_TYPE = "path";
7
+ declare const PATH_SEGMENT_TYPE = "pathSegment";
8
+ declare const ASSIGNMENT_TYPE = "assignment";
9
+ declare const STRUCT_TYPE = "struct";
10
+ declare const COLLECTION_TYPE = "collection";
11
+ declare const ENUM_TYPE = "enum";
12
+ declare const STRING_TYPE = "string";
13
+ declare const MULTI_LINE_STRING_TYPE = "multiLineString";
14
+ declare const MULTI_LINE_STRING_STRIP_INDENT_TYPE = "multiLineStringStripIndent";
15
+ declare const QUOTED_IDENTIFIER_TYPE = "quotedIdentifier";
16
+ declare const DELIMITED_IDENTIFIER_TYPE = "delimitedIdentifier";
17
+ declare const VALUE_TYPE = "value";
18
+ declare const COLLECTION_VALUE_TYPE = "collectionValue";
19
+ declare const EXTEND_COLLECTION_VALUE_TYPE = "extendCollectionValue";
20
+ declare const EXPRESSION_TYPE = "expression";
21
+ export interface DeclarationCstNode extends CstNode {
22
+ name: typeof DECLARATION_TYPE;
23
+ children: DeclarationChildren;
24
+ }
25
+ export type DeclarationChildren = {
26
+ [ASSIGNMENT_TYPE]?: AssignmentCstNode[];
27
+ };
28
+ export interface PathCstNode extends CstNode {
29
+ name: typeof PATH_TYPE;
30
+ children: PathChildren;
31
+ }
32
+ export type PathChildren = {
33
+ [PATH_SEGMENT_SEPARATOR_TOKEN_TYPE]?: IToken[];
34
+ [PATH_SEGMENT_TYPE]?: PathSegmentCstNode[];
35
+ };
36
+ export interface PathSegmentCstNode extends CstNode {
37
+ name: typeof PATH_SEGMENT_TYPE;
38
+ children: PathSegmentChildren;
39
+ }
40
+ export type PathSegmentChildren = {
41
+ [NUMBER_SIGN_TOKEN_TYPE]?: IToken[];
42
+ [IDENTIFIER_TOKEN_TYPE]?: IToken[];
43
+ [DELIMITED_IDENTIFIER_TYPE]?: DelimitedIdentifierCstNode[];
44
+ [QUOTED_IDENTIFIER_TYPE]?: QuotedIdentifierCstNode[];
45
+ };
46
+ export type AssignmentChildren = {
47
+ [PATH_TYPE]: PathCstNode[];
48
+ [NUMBER_SIGN_TOKEN_TYPE]?: IToken[];
49
+ [IDENTIFIER_TOKEN_TYPE]?: IToken[];
50
+ [VALUE_TYPE]: ValueCstNode[];
51
+ [COLON_TOKEN_TYPE]: IToken[];
52
+ };
53
+ export interface AssignmentCstNode extends CstNode {
54
+ name: typeof ASSIGNMENT_TYPE;
55
+ children: AssignmentChildren;
56
+ }
57
+ export type StructChildren = {
58
+ [L_CURLY_TOKEN_TYPE]?: IToken[];
59
+ [R_CURLY_TOKEN_TYPE]?: IToken[];
60
+ [ASSIGNMENT_TYPE]?: AssignmentCstNode[];
61
+ [COMMA_TOKEN_TYPE]?: IToken[];
62
+ };
63
+ export interface StructCstNode extends CstNode {
64
+ name: typeof STRUCT_TYPE;
65
+ children: StructChildren;
66
+ }
67
+ export type CollectionChildren = {
68
+ [COLLECTION_VALUE_TYPE]?: CollectionValueCstNode[];
69
+ [COMMA_TOKEN_TYPE]?: IToken[];
70
+ [L_BRACKET_TOKEN_TYPE]?: IToken[];
71
+ [R_BRACKET_TOKEN_TYPE]?: IToken[];
72
+ };
73
+ export interface CollectionCstNode extends CstNode {
74
+ name: typeof COLLECTION_TYPE;
75
+ children: CollectionChildren;
76
+ }
77
+ export type EnumChildren = {
78
+ [PATH_TYPE]?: PathCstNode[];
79
+ [NUMBER_SIGN_TOKEN_TYPE]: IToken[];
80
+ };
81
+ export interface EnumCstNode extends CstNode {
82
+ name: typeof ENUM_TYPE;
83
+ children: EnumChildren;
84
+ }
85
+ export type StringChildren = {
86
+ [SINGLE_QUOTE_TOKEN_TYPE]: IToken[];
87
+ [STRING_TOKEN_TYPE]?: IToken[];
88
+ [STRING_EXIT_TOKEN_TYPE]: IToken[];
89
+ };
90
+ export interface StringCstNode extends CstNode {
91
+ name: typeof STRING_TYPE;
92
+ children: StructChildren;
93
+ }
94
+ export type MultiLineStringChildren = {
95
+ [BACKTICK_TOKEN_TYPE]: IToken[];
96
+ [MULTI_LINE_STRING_TOKEN_TYPE]?: IToken[];
97
+ [MULTI_LINE_STRING_EXIT_TOKEN_TYPE]: IToken[];
98
+ };
99
+ export interface MultiLineStringCstNode extends CstNode {
100
+ name: typeof MULTI_LINE_STRING_TYPE;
101
+ children: MultiLineStringChildren;
102
+ }
103
+ export type MultiLineStringStripIndentChildren = {
104
+ [TRIPLE_BACKTICK_TOKEN_TYPE]: IToken[];
105
+ [MULTI_LINE_STRING_TOKEN_TYPE]?: IToken[];
106
+ [MULTI_LINE_STRING_STRIP_INDENT_EXIT_TOKEN_TYPE]: IToken[];
107
+ };
108
+ export interface MultiLineStringStripIndentCstNode extends CstNode {
109
+ name: typeof MULTI_LINE_STRING_TYPE;
110
+ children: MultiLineStringStripIndentChildren;
111
+ }
112
+ export type DelimitedIdentifierChildren = {
113
+ [PATH_SEGMENT_SEPARATOR_TOKEN_TYPE]?: IToken[];
114
+ [DELIMITED_IDENTIFIER_TOKEN_TYPE]: IToken[];
115
+ [DELIMITED_IDENTIFIER_EXIT_TOKEN_TYPE]: IToken[];
116
+ [IDENTIFIER_START_TOKEN_TYPE]: IToken[];
117
+ };
118
+ export interface DelimitedIdentifierCstNode extends CstNode {
119
+ name: typeof DELIMITED_IDENTIFIER_TYPE;
120
+ children: DelimitedIdentifierChildren;
121
+ }
122
+ export type QuotedIdentifierChildren = {
123
+ [PATH_SEGMENT_SEPARATOR_TOKEN_TYPE]?: IToken[];
124
+ [QUOTED_IDENTIFIER_TOKEN_TYPE]: IToken[];
125
+ [QUOTED_IDENTIFIER_EXIT_TOKEN_TYPE]: IToken[];
126
+ };
127
+ export interface QuotedIdentifierCstNode extends CstNode {
128
+ name: typeof QUOTED_IDENTIFIER_TYPE;
129
+ children: QuotedIdentifierChildren;
130
+ }
131
+ export type ValueChildren = {
132
+ [NULL_TOKEN_TYPE]?: IToken[];
133
+ [TRUE_TOKEN_TYPE]?: IToken[];
134
+ [FALSE_TOKEN_TYPE]?: IToken[];
135
+ [BINARY_TOKEN_TYPE]?: IToken[];
136
+ [DATE_TOKEN_TYPE]?: IToken[];
137
+ [TIME_TOKEN_TYPE]?: IToken[];
138
+ [TIMESTAMP_TOKEN_TYPE]?: IToken[];
139
+ [NUMBER_TOKEN_TYPE]?: IToken[];
140
+ [STRUCT_TYPE]?: StructCstNode[];
141
+ [COLLECTION_TYPE]?: CollectionCstNode[];
142
+ [ENUM_TYPE]?: EnumCstNode[];
143
+ [STRING_TYPE]?: StringCstNode[];
144
+ [MULTI_LINE_STRING_TYPE]?: MultiLineStringCstNode[];
145
+ [MULTI_LINE_STRING_STRIP_INDENT_TYPE]?: MultiLineStringStripIndentCstNode[];
146
+ [PATH_TYPE]?: PathCstNode[];
147
+ [QUOTED_IDENTIFIER_TYPE]?: QuotedIdentifierCstNode[];
148
+ [DELIMITED_IDENTIFIER_TYPE]?: DelimitedIdentifierCstNode[];
149
+ [EXPRESSION_TYPE]?: ExpressionCstNode[];
150
+ };
151
+ export interface ValueCstNode extends CstNode {
152
+ name: typeof VALUE_TYPE;
153
+ children: ValueChildren;
154
+ }
155
+ export type ExtendCollectionValueChildren = {
156
+ [SPREAD_OPERATOR]: IToken[];
157
+ [UP_TO_KEYWORD]?: IToken[];
158
+ [VALUE_TYPE]?: ValueCstNode[];
159
+ };
160
+ export interface ExtendCollectionValueCstNode extends CstNode {
161
+ name: typeof EXTEND_COLLECTION_VALUE_TYPE;
162
+ children: ExtendCollectionValueChildren;
163
+ }
164
+ export type CollectionValueChildren = ValueChildren & {
165
+ [EXTEND_COLLECTION_VALUE_TYPE]?: ExtendCollectionValueCstNode[];
166
+ };
167
+ export interface CollectionValueCstNode extends CstNode {
168
+ name: typeof COLLECTION_VALUE_TYPE;
169
+ children: CollectionValueChildren;
170
+ }
171
+ export interface ExpressionCstNode extends CstNode {
172
+ name: typeof EXPRESSION_TYPE;
173
+ children: ExpressionChildren;
174
+ }
175
+ export type ExpressionChildren = {
176
+ [L_PAREN_TOKEN_TYPE]: IToken[];
177
+ [R_PAREN_TOKEN_TYPE]?: IToken[];
178
+ [VALUE_TYPE]?: ValueCstNode[];
179
+ [OPERATOR]?: IToken[];
180
+ };
181
+ /**
182
+ *
183
+ */
184
+ export declare class AnnotationParser extends CstParser {
185
+ deletionRecoveryEnabled: boolean;
186
+ /**
187
+ * Array caching optimization for collection values
188
+ * https://chevrotain.io/docs/guide/performance.html#caching-arrays-of-alternatives
189
+ */
190
+ cv?: IOrAlt<void>[];
191
+ /**
192
+ * Array caching optimization for values
193
+ * https://chevrotain.io/docs/guide/performance.html#caching-arrays-of-alternatives
194
+ */
195
+ v?: IOrAlt<void>[];
196
+ private CST_STACK;
197
+ text: string;
198
+ constructor();
199
+ createOrSubruleEntry: (rule: (idx: number) => CstNode, options?: SubruleMethodOpts) => IOrAlt<void>;
200
+ createOrConsumeEntry: (token: TokenType, gate?: () => boolean) => IOrAlt<void>;
201
+ /**
202
+ * Checks if recovery could be done for the given expected token type.
203
+ *
204
+ * @param expectedTokType expected token type
205
+ * @returns boolean result
206
+ */
207
+ canRecoverWithSingleTokenDeletion(expectedTokType: TokenType): boolean;
208
+ /**
209
+ *
210
+ * @param endToken Ending CST token type
211
+ * @param repetitionRule Repetition rule function
212
+ */
213
+ CUSTOM_MANY(endToken: TokenType, repetitionRule: (idxInCallingRule?: number, ...args: any[]) => CstNode): void;
214
+ /**
215
+ *
216
+ * @param previousToken Previous CST token
217
+ */
218
+ private adjustAssignmentRange;
219
+ [DECLARATION_TYPE]: (idxInCallingRule?: number | undefined, ...args: any[]) => CstNode;
220
+ [ASSIGNMENT_TYPE]: (idxInCallingRule?: number | undefined, ...args: any[]) => CstNode;
221
+ [PATH_TYPE]: (idxInCallingRule?: number | undefined, ...args: any[]) => CstNode;
222
+ [PATH_SEGMENT_TYPE]: (idxInCallingRule?: number | undefined, ...args: any[]) => CstNode;
223
+ [VALUE_TYPE]: (idxInCallingRule?: number | undefined, ...args: any[]) => CstNode;
224
+ [COLLECTION_VALUE_TYPE]: (idxInCallingRule?: number | undefined, ...args: any[]) => CstNode;
225
+ [EXTEND_COLLECTION_VALUE_TYPE]: (idxInCallingRule?: number | undefined, ...args: any[]) => CstNode;
226
+ [STRUCT_TYPE]: (idxInCallingRule?: number | undefined, ...args: any[]) => CstNode;
227
+ [COLLECTION_TYPE]: (idxInCallingRule?: number | undefined, ...args: any[]) => CstNode;
228
+ [ENUM_TYPE]: (idxInCallingRule?: number | undefined, ...args: any[]) => CstNode;
229
+ [QUOTED_IDENTIFIER_TYPE]: (idxInCallingRule?: number | undefined, ...args: any[]) => CstNode;
230
+ [DELIMITED_IDENTIFIER_TYPE]: (idxInCallingRule?: number | undefined, ...args: any[]) => CstNode;
231
+ [STRING_TYPE]: (idxInCallingRule?: number | undefined, ...args: any[]) => CstNode;
232
+ [MULTI_LINE_STRING_TYPE]: (idxInCallingRule?: number | undefined, ...args: any[]) => CstNode;
233
+ [MULTI_LINE_STRING_STRIP_INDENT_TYPE]: (idxInCallingRule?: number | undefined, ...args: any[]) => CstNode;
234
+ [EXPRESSION_TYPE]: (idxInCallingRule?: number | undefined, ...args: any[]) => CstNode;
235
+ /**
236
+ *
237
+ * @param error Mismatched token error object
238
+ */
239
+ private recoverFromMissingKey;
240
+ }
241
+ export {};
242
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,385 @@
1
+ "use strict";
2
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AnnotationParser = void 0;
5
+ const chevrotain_1 = require("chevrotain");
6
+ const utils_1 = require("../utils");
7
+ const tokens_1 = require("./tokens");
8
+ const allTokens = Object.values(tokens_1.tokenMap);
9
+ const DECLARATION_TYPE = 'declaration';
10
+ const PATH_TYPE = 'path';
11
+ const PATH_SEGMENT_TYPE = 'pathSegment';
12
+ const ASSIGNMENT_TYPE = 'assignment';
13
+ const STRUCT_TYPE = 'struct';
14
+ const COLLECTION_TYPE = 'collection';
15
+ const ENUM_TYPE = 'enum';
16
+ const STRING_TYPE = 'string';
17
+ const MULTI_LINE_STRING_TYPE = 'multiLineString';
18
+ const MULTI_LINE_STRING_STRIP_INDENT_TYPE = 'multiLineStringStripIndent';
19
+ const QUOTED_IDENTIFIER_TYPE = 'quotedIdentifier';
20
+ const DELIMITED_IDENTIFIER_TYPE = 'delimitedIdentifier';
21
+ const VALUE_TYPE = 'value';
22
+ const COLLECTION_VALUE_TYPE = 'collectionValue';
23
+ const EXTEND_COLLECTION_VALUE_TYPE = 'extendCollectionValue';
24
+ const EXPRESSION_TYPE = 'expression';
25
+ const LINE_BREAK_PATTERN = /\r\n|\r|\n/g;
26
+ /**
27
+ *
28
+ */
29
+ class AnnotationParser extends chevrotain_1.CstParser {
30
+ constructor() {
31
+ super(allTokens, {
32
+ maxLookahead: 1,
33
+ recoveryEnabled: true,
34
+ nodeLocationTracking: 'full',
35
+ // This could reduce 30-50% of the initialization time
36
+ // Enable validation for debugging
37
+ skipValidations: true
38
+ });
39
+ this.deletionRecoveryEnabled = true;
40
+ this.text = '';
41
+ this.createOrSubruleEntry = (rule, options) => ({
42
+ ALT: () => {
43
+ this.SUBRULE(rule, options);
44
+ }
45
+ });
46
+ this.createOrConsumeEntry = (token, gate) => ({
47
+ ALT: () => {
48
+ this.CONSUME(token);
49
+ },
50
+ GATE: gate
51
+ });
52
+ this[_a] = this.RULE(DECLARATION_TYPE, () => {
53
+ this.SUBRULE(this[ASSIGNMENT_TYPE]);
54
+ });
55
+ this[_b] = this.RULE(ASSIGNMENT_TYPE, () => {
56
+ this.OR([
57
+ {
58
+ GATE: () => this.LA(1).tokenType === tokens_1.tokenMap.Colon,
59
+ ALT: () => {
60
+ // key is missing, but there is colon
61
+ const previousToken = this.LA(0);
62
+ this.CONSUME(tokens_1.tokenMap.Colon);
63
+ this.SUBRULE(this[VALUE_TYPE]);
64
+ this.adjustAssignmentRange(previousToken);
65
+ }
66
+ },
67
+ {
68
+ GATE: () => this.LA(1).tokenType === tokens_1.tokenMap.NumberSign,
69
+ ALT: () => {
70
+ // Avoid removing number sign if path is missing e.g '#q: 1'
71
+ const previousToken = this.LA(0);
72
+ this.CONSUME(tokens_1.tokenMap.NumberSign);
73
+ this.CONSUME(tokens_1.tokenMap.Identifier);
74
+ this.OPTION(() => {
75
+ this.CONSUME1(tokens_1.tokenMap.Colon);
76
+ this.SUBRULE1(this[VALUE_TYPE]);
77
+ });
78
+ this.adjustAssignmentRange(previousToken);
79
+ }
80
+ },
81
+ {
82
+ ALT: () => {
83
+ try {
84
+ this.deletionRecoveryEnabled = false;
85
+ this.SUBRULE(this[PATH_TYPE]);
86
+ }
87
+ finally {
88
+ this.deletionRecoveryEnabled = true;
89
+ }
90
+ this.OPTION1(() => {
91
+ this.CONSUME1(tokens_1.tokenMap.NumberSign);
92
+ this.CONSUME1(tokens_1.tokenMap.Identifier);
93
+ });
94
+ this.OPTION2(() => {
95
+ this.CONSUME2(tokens_1.tokenMap.Colon);
96
+ try {
97
+ this.SUBRULE2(this[VALUE_TYPE]);
98
+ }
99
+ catch (error) {
100
+ const isMismatchedTokenException = (err) => {
101
+ var _s, _t;
102
+ return ((err === null || err === void 0 ? void 0 : err.name) === 'NoViableAltException' &&
103
+ ((_s = err === null || err === void 0 ? void 0 : err.previousToken) === null || _s === void 0 ? void 0 : _s.tokenType) === tokens_1.tokenMap.Colon &&
104
+ ((_t = err === null || err === void 0 ? void 0 : err.token) === null || _t === void 0 ? void 0 : _t.tokenType) === chevrotain_1.EOF);
105
+ };
106
+ if (isMismatchedTokenException(error)) {
107
+ this.recoverFromMissingKey(error);
108
+ }
109
+ else {
110
+ // we have to rethrow error if we do not handle, so chevrotain error recovery can try to handle it
111
+ throw error;
112
+ }
113
+ }
114
+ });
115
+ }
116
+ }
117
+ ]);
118
+ });
119
+ this[_c] = this.RULE(PATH_TYPE, (valuePath) => {
120
+ this.SUBRULE(this[PATH_SEGMENT_TYPE], { ARGS: [valuePath] });
121
+ this.MANY(() => {
122
+ this.CONSUME(tokens_1.tokenMap.PathSegmentSeparator);
123
+ try {
124
+ // Avoid removing trailing dots e.g 'aaa.' would be parsed as 'aaa'
125
+ this.deletionRecoveryEnabled = false;
126
+ this.SUBRULE2(this[PATH_SEGMENT_TYPE], { ARGS: [valuePath] });
127
+ }
128
+ finally {
129
+ this.deletionRecoveryEnabled = true;
130
+ }
131
+ });
132
+ });
133
+ this[_d] = this.RULE(PATH_SEGMENT_TYPE, (valuePath) => {
134
+ this.OR({
135
+ DEF: [
136
+ this.createOrSubruleEntry(this[DELIMITED_IDENTIFIER_TYPE]),
137
+ this.createOrSubruleEntry(this[QUOTED_IDENTIFIER_TYPE]),
138
+ this.createOrConsumeEntry(tokens_1.tokenMap.Identifier),
139
+ {
140
+ ALT: () => {
141
+ this.CONSUME(tokens_1.tokenMap.TermCastIdentifier, { LABEL: tokens_1.IDENTIFIER_TOKEN_TYPE });
142
+ },
143
+ GATE: () => valuePath
144
+ }
145
+ ]
146
+ });
147
+ this.OPTION({
148
+ GATE: () => valuePath,
149
+ DEF: () => {
150
+ this.CONSUME2(tokens_1.tokenMap.TermCastIdentifier, { LABEL: tokens_1.IDENTIFIER_TOKEN_TYPE });
151
+ }
152
+ });
153
+ this.OPTION2({
154
+ GATE: () => valuePath,
155
+ DEF: () => {
156
+ this.CONSUME(tokens_1.tokenMap.NumberSign);
157
+ this.CONSUME2(tokens_1.tokenMap.Identifier);
158
+ }
159
+ });
160
+ });
161
+ this[_e] = this.RULE(VALUE_TYPE, () => {
162
+ var _s;
163
+ this.OR((_s = this.v) !== null && _s !== void 0 ? _s : (this.v = [
164
+ this.createOrConsumeEntry(tokens_1.tokenMap.Null),
165
+ this.createOrConsumeEntry(tokens_1.tokenMap.True),
166
+ this.createOrConsumeEntry(tokens_1.tokenMap.False),
167
+ this.createOrConsumeEntry(tokens_1.tokenMap.Binary),
168
+ this.createOrConsumeEntry(tokens_1.tokenMap.Date),
169
+ this.createOrConsumeEntry(tokens_1.tokenMap.Time),
170
+ this.createOrConsumeEntry(tokens_1.tokenMap.Timestamp),
171
+ this.createOrConsumeEntry(tokens_1.tokenMap.Number),
172
+ this.createOrSubruleEntry(this[PATH_TYPE], { ARGS: [true] }),
173
+ this.createOrSubruleEntry(this[STRUCT_TYPE]),
174
+ this.createOrSubruleEntry(this[COLLECTION_TYPE]),
175
+ this.createOrSubruleEntry(this[ENUM_TYPE]),
176
+ this.createOrSubruleEntry(this[STRING_TYPE]),
177
+ this.createOrSubruleEntry(this[MULTI_LINE_STRING_STRIP_INDENT_TYPE]),
178
+ this.createOrSubruleEntry(this[MULTI_LINE_STRING_TYPE]),
179
+ this.createOrSubruleEntry(this[EXPRESSION_TYPE])
180
+ ]));
181
+ });
182
+ this[_f] = this.RULE(COLLECTION_VALUE_TYPE, () => {
183
+ var _s;
184
+ this.OR((_s = this.cv) !== null && _s !== void 0 ? _s : (this.cv = [
185
+ this.createOrConsumeEntry(tokens_1.tokenMap.Null),
186
+ this.createOrConsumeEntry(tokens_1.tokenMap.True),
187
+ this.createOrConsumeEntry(tokens_1.tokenMap.False),
188
+ this.createOrConsumeEntry(tokens_1.tokenMap.Binary),
189
+ this.createOrConsumeEntry(tokens_1.tokenMap.Date),
190
+ this.createOrConsumeEntry(tokens_1.tokenMap.Time),
191
+ this.createOrConsumeEntry(tokens_1.tokenMap.Timestamp),
192
+ this.createOrConsumeEntry(tokens_1.tokenMap.Number),
193
+ this.createOrSubruleEntry(this[EXTEND_COLLECTION_VALUE_TYPE]),
194
+ this.createOrSubruleEntry(this[PATH_TYPE], { ARGS: [true] }),
195
+ this.createOrSubruleEntry(this[STRUCT_TYPE]),
196
+ this.createOrSubruleEntry(this[COLLECTION_TYPE]),
197
+ this.createOrSubruleEntry(this[ENUM_TYPE]),
198
+ this.createOrSubruleEntry(this[STRING_TYPE]),
199
+ this.createOrSubruleEntry(this[MULTI_LINE_STRING_STRIP_INDENT_TYPE]),
200
+ this.createOrSubruleEntry(this[MULTI_LINE_STRING_TYPE]),
201
+ this.createOrSubruleEntry(this[EXPRESSION_TYPE])
202
+ ]));
203
+ });
204
+ this[_g] = this.RULE(EXTEND_COLLECTION_VALUE_TYPE, () => {
205
+ this.CONSUME(tokens_1.tokenMap.SpreadOperator);
206
+ this.OPTION(() => {
207
+ this.CONSUME(tokens_1.tokenMap.UpToKeyword);
208
+ this.SUBRULE(this[VALUE_TYPE]);
209
+ });
210
+ });
211
+ this[_h] = this.RULE(STRUCT_TYPE, () => {
212
+ this.CONSUME(tokens_1.tokenMap.LCurly);
213
+ this.OPTION(() => {
214
+ this.CUSTOM_MANY(tokens_1.tokenMap.RCurly, this[ASSIGNMENT_TYPE]);
215
+ });
216
+ this.CONSUME(tokens_1.tokenMap.RCurly);
217
+ });
218
+ this[_j] = this.RULE(COLLECTION_TYPE, () => {
219
+ this.CONSUME(tokens_1.tokenMap.LBracket);
220
+ this.OPTION(() => {
221
+ this.CUSTOM_MANY(tokens_1.tokenMap.RBracket, this[COLLECTION_VALUE_TYPE]);
222
+ });
223
+ this.CONSUME(tokens_1.tokenMap.RBracket);
224
+ });
225
+ this[_k] = this.RULE(ENUM_TYPE, () => {
226
+ this.CONSUME(tokens_1.tokenMap.NumberSign);
227
+ this.OPTION(() => {
228
+ this.SUBRULE(this[PATH_TYPE]);
229
+ });
230
+ });
231
+ this[_l] = this.RULE(QUOTED_IDENTIFIER_TYPE, () => {
232
+ this.CONSUME(tokens_1.tokenMap.DoubleQuote);
233
+ this.OPTION(() => {
234
+ this.CONSUME(tokens_1.tokenMap.QuotedIdentifier);
235
+ this.MANY(() => {
236
+ this.CONSUME(tokens_1.tokenMap.PathSegmentSeparator);
237
+ this.CONSUME2(tokens_1.tokenMap.QuotedIdentifier);
238
+ });
239
+ });
240
+ this.CONSUME2(tokens_1.tokenMap.QuotedIdentifierExit);
241
+ });
242
+ this[_m] = this.RULE(DELIMITED_IDENTIFIER_TYPE, () => {
243
+ this.CONSUME(tokens_1.tokenMap.IdentifierStart);
244
+ this.OPTION(() => {
245
+ this.CONSUME(tokens_1.tokenMap.DelimitedIdentifier);
246
+ this.MANY(() => {
247
+ this.CONSUME(tokens_1.tokenMap.PathSegmentSeparator);
248
+ this.CONSUME2(tokens_1.tokenMap.DelimitedIdentifier);
249
+ });
250
+ });
251
+ this.CONSUME(tokens_1.tokenMap.DelimitedIdentifierExit);
252
+ });
253
+ this[_o] = this.RULE(STRING_TYPE, () => {
254
+ this.CONSUME(tokens_1.tokenMap.SingleQuote);
255
+ this.OPTION(() => {
256
+ this.CONSUME(tokens_1.tokenMap.String);
257
+ });
258
+ this.CONSUME(tokens_1.tokenMap.StringExit);
259
+ });
260
+ this[_p] = this.RULE(MULTI_LINE_STRING_TYPE, () => {
261
+ this.CONSUME(tokens_1.tokenMap.Backtick);
262
+ this.OPTION(() => {
263
+ this.CONSUME(tokens_1.tokenMap.MultiLineString);
264
+ });
265
+ this.CONSUME(tokens_1.tokenMap.MultiLineStringExit);
266
+ });
267
+ this[_q] = this.RULE(MULTI_LINE_STRING_STRIP_INDENT_TYPE, () => {
268
+ this.CONSUME(tokens_1.tokenMap.TripleBacktick);
269
+ this.OPTION(() => {
270
+ this.CONSUME(tokens_1.tokenMap.MultiLineString);
271
+ });
272
+ this.CONSUME(tokens_1.tokenMap.MultiLineStringStripIndentExit);
273
+ });
274
+ this[_r] = this.RULE(EXPRESSION_TYPE, () => {
275
+ this.CONSUME(tokens_1.tokenMap.LParen);
276
+ this.MANY(() => {
277
+ this.OR([
278
+ {
279
+ ALT: () => this.SUBRULE(this[VALUE_TYPE])
280
+ },
281
+ {
282
+ ALT: () => this.CONSUME1(tokens_1.tokenMap.Operator)
283
+ }
284
+ ]);
285
+ });
286
+ this.CONSUME(tokens_1.tokenMap.RParen);
287
+ });
288
+ this.performSelfAnalysis();
289
+ }
290
+ /**
291
+ * Checks if recovery could be done for the given expected token type.
292
+ *
293
+ * @param expectedTokType expected token type
294
+ * @returns boolean result
295
+ */
296
+ canRecoverWithSingleTokenDeletion(expectedTokType) {
297
+ if (this.deletionRecoveryEnabled === false) {
298
+ return false;
299
+ }
300
+ // We need to override the default logic for recovery with single token deletion.
301
+ // Sometimes we need to completely disable it to produce better CST
302
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
303
+ // @ts-ignore
304
+ return super['canRecoverWithSingleTokenDeletion'](expectedTokType);
305
+ }
306
+ /**
307
+ *
308
+ * @param endToken Ending CST token type
309
+ * @param repetitionRule Repetition rule function
310
+ */
311
+ CUSTOM_MANY(endToken, repetitionRule) {
312
+ this.MANY(() => {
313
+ // workaround for https://github.com/SAP/chevrotain/issues/1200 once it is fixed we can use empty alternative
314
+ this.OR([
315
+ {
316
+ GATE: () => this.LA(1).tokenType === tokens_1.tokenMap.Comma &&
317
+ (this.LA(2).tokenType === endToken || this.LA(2).tokenType === tokens_1.tokenMap.Comma),
318
+ ALT: () => this.CONSUME2(tokens_1.tokenMap.Comma)
319
+ },
320
+ {
321
+ GATE: () => this.LA(1).tokenType === tokens_1.tokenMap.Comma && this.LA(2).tokenType !== endToken,
322
+ ALT: () => {
323
+ this.CONSUME3(tokens_1.tokenMap.Comma);
324
+ this.SUBRULE(repetitionRule);
325
+ }
326
+ },
327
+ {
328
+ ALT: () => this.SUBRULE1(repetitionRule)
329
+ }
330
+ ]);
331
+ });
332
+ }
333
+ /**
334
+ *
335
+ * @param previousToken Previous CST token
336
+ */
337
+ adjustAssignmentRange(previousToken) {
338
+ var _s, _t, _u;
339
+ // adjust location since value is missing
340
+ const node = this['CST_STACK'][this['CST_STACK'].length - 1];
341
+ if (node && previousToken && node.location) {
342
+ // token length is not taken into account for position information
343
+ const length = previousToken.image.length;
344
+ node.location.startOffset = ((_s = previousToken.endOffset) !== null && _s !== void 0 ? _s : 0) + length;
345
+ node.location.startLine = (_t = previousToken.endLine) !== null && _t !== void 0 ? _t : 0;
346
+ node.location.startColumn = ((_u = previousToken.endColumn) !== null && _u !== void 0 ? _u : 0) + length;
347
+ }
348
+ }
349
+ /**
350
+ *
351
+ * @param error Mismatched token error object
352
+ */
353
+ recoverFromMissingKey(error) {
354
+ var _s, _t, _u, _v;
355
+ // insert empty value till the end of document.
356
+ const previousToken = error.previousToken;
357
+ const remainingText = this.text.substring(((_s = previousToken.endOffset) !== null && _s !== void 0 ? _s : 0) + 1);
358
+ const lines = remainingText.split(LINE_BREAK_PATTERN);
359
+ if (lines.length) {
360
+ // ignore subsequent lines, in the future we may consider also remaining lines
361
+ const line = lines[0];
362
+ const assignmentCstNode = this['CST_STACK'][this['CST_STACK'].length - 1];
363
+ if ((0, utils_1.hasItems)(assignmentCstNode.children[VALUE_TYPE])) {
364
+ const valueNode = assignmentCstNode.children[VALUE_TYPE][0];
365
+ if ((0, utils_1.isDefined)(valueNode.location)) {
366
+ valueNode.location.startLine = (_t = previousToken.endLine) !== null && _t !== void 0 ? _t : 0;
367
+ valueNode.location.startColumn = ((_u = previousToken.endColumn) !== null && _u !== void 0 ? _u : 0) + 1;
368
+ valueNode.location.startOffset = ((_v = previousToken.endOffset) !== null && _v !== void 0 ? _v : 0) + 1;
369
+ valueNode.location.endOffset = valueNode.location.startOffset + line.length;
370
+ valueNode.location.endColumn = valueNode.location.startOffset + line.length;
371
+ valueNode.location.endLine = previousToken.endLine;
372
+ }
373
+ // Update assignment end position
374
+ if ((0, utils_1.isDefined)(assignmentCstNode.location) && (0, utils_1.isDefined)(valueNode.location)) {
375
+ assignmentCstNode.location.endOffset = valueNode.location.endOffset;
376
+ assignmentCstNode.location.endColumn = valueNode.location.endColumn;
377
+ assignmentCstNode.location.endLine = valueNode.location.endLine;
378
+ }
379
+ }
380
+ }
381
+ }
382
+ }
383
+ exports.AnnotationParser = AnnotationParser;
384
+ _a = DECLARATION_TYPE, _b = ASSIGNMENT_TYPE, _c = PATH_TYPE, _d = PATH_SEGMENT_TYPE, _e = VALUE_TYPE, _f = COLLECTION_VALUE_TYPE, _g = EXTEND_COLLECTION_VALUE_TYPE, _h = STRUCT_TYPE, _j = COLLECTION_TYPE, _k = ENUM_TYPE, _l = QUOTED_IDENTIFIER_TYPE, _m = DELIMITED_IDENTIFIER_TYPE, _o = STRING_TYPE, _p = MULTI_LINE_STRING_TYPE, _q = MULTI_LINE_STRING_STRIP_INDENT_TYPE, _r = EXPRESSION_TYPE;
385
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"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"}