@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,103 @@
1
+ export declare const DEFAULT_MODE = "default_mode";
2
+ export declare const QUOTED_IDENTIFIER_MODE = "quoted_mode";
3
+ export declare const STRING_MODE = "string_mode";
4
+ export declare const MULTI_LINE_STRING_MODE = "multi_line_string_mode";
5
+ export declare const MULTI_LINE_STRING_STRIP_INDENT_MODE = "multi_line_string_strip_indent_mode";
6
+ export declare const DELIMITED_IDENTIFIER_MODE = "delimited_mode";
7
+ export declare const EXPRESSION_MODE = "expression_mode";
8
+ export declare const QUOTED_IDENTIFIER_TOKEN_TYPE = "QuotedIdentifier";
9
+ export declare const QUOTED_IDENTIFIER_EXIT_TOKEN_TYPE = "QuotedIdentifierExit";
10
+ export declare const DELIMITED_IDENTIFIER_TOKEN_TYPE = "DelimitedIdentifier";
11
+ export declare const DELIMITED_IDENTIFIER_EXIT_TOKEN_TYPE = "DelimitedIdentifierExit";
12
+ export declare const TERM_CAST_IDENTIFIER_TOKEN_TYPE = "TermCastIdentifier";
13
+ export declare const IDENTIFIER_TOKEN_TYPE = "Identifier";
14
+ export declare const BACKTICK_TOKEN_TYPE = "Backtick";
15
+ export declare const TRIPLE_BACKTICK_TOKEN_TYPE = "TripleBacktick";
16
+ export declare const MULTI_LINE_STRING_EXIT_TOKEN_TYPE = "MultiLineStringExit";
17
+ export declare const MULTI_LINE_STRING_TOKEN_TYPE = "MultiLineString";
18
+ export declare const MULTI_LINE_STRING_STRIP_INDENT_EXIT_TOKEN_TYPE = "MultiLineStringStripIndentExit";
19
+ export declare const STRING_TOKEN_TYPE = "String";
20
+ export declare const STRING_EXIT_TOKEN_TYPE = "StringExit";
21
+ export declare const COMMENT_TOKEN_TYPE = "Comment";
22
+ export declare const LINE_COMMENT_TOKEN_TYPE = "LineComment";
23
+ export declare const NUMBER_SIGN_TOKEN_TYPE = "NumberSign";
24
+ export declare const COLON_TOKEN_TYPE = "Colon";
25
+ export declare const COMMA_TOKEN_TYPE = "Comma";
26
+ export declare const PATH_SEGMENT_SEPARATOR_TOKEN_TYPE = "PathSegmentSeparator";
27
+ export declare const SINGLE_QUOTE_TOKEN_TYPE = "SingleQuote";
28
+ export declare const DOUBLE_QUOTE_TOKEN_TYPE = "DoubleQuote";
29
+ export declare const IDENTIFIER_START_TOKEN_TYPE = "IdentifierStart";
30
+ export declare const L_BRACKET_TOKEN_TYPE = "LBracket";
31
+ export declare const R_BRACKET_TOKEN_TYPE = "RBracket";
32
+ export declare const L_CURLY_TOKEN_TYPE = "LCurly";
33
+ export declare const R_CURLY_TOKEN_TYPE = "RCurly";
34
+ export declare const L_PAREN_TOKEN_TYPE = "LParen";
35
+ export declare const R_PAREN_TOKEN_TYPE = "RParen";
36
+ export declare const WHITE_SPACE_TOKEN_TYPE = "WhiteSpace";
37
+ export declare const NUMBER_TOKEN_TYPE = "Number";
38
+ export declare const NULL_TOKEN_TYPE = "Null";
39
+ export declare const TRUE_TOKEN_TYPE = "True";
40
+ export declare const FALSE_TOKEN_TYPE = "False";
41
+ export declare const BINARY_TOKEN_TYPE = "Binary";
42
+ export declare const DATE_TOKEN_TYPE = "Date";
43
+ export declare const TIME_TOKEN_TYPE = "Time";
44
+ export declare const TIMESTAMP_TOKEN_TYPE = "Timestamp";
45
+ export declare const SPREAD_OPERATOR = "SpreadOperator";
46
+ export declare const UP_TO_KEYWORD = "UpToKeyword";
47
+ export declare const OPERATOR = "Operator";
48
+ export declare const tokenMap: {
49
+ Comment: import("chevrotain").TokenType;
50
+ LineComment: import("chevrotain").TokenType;
51
+ NumberSign: import("chevrotain").TokenType;
52
+ Colon: import("chevrotain").TokenType;
53
+ Comma: import("chevrotain").TokenType;
54
+ PathSegmentSeparator: import("chevrotain").TokenType;
55
+ SingleQuote: import("chevrotain").TokenType;
56
+ DoubleQuote: import("chevrotain").TokenType;
57
+ IdentifierStart: import("chevrotain").TokenType;
58
+ LBracket: import("chevrotain").TokenType;
59
+ RBracket: import("chevrotain").TokenType;
60
+ LCurly: import("chevrotain").TokenType;
61
+ RCurly: import("chevrotain").TokenType;
62
+ LParen: import("chevrotain").TokenType;
63
+ RParen: import("chevrotain").TokenType;
64
+ WhiteSpace: import("chevrotain").TokenType;
65
+ Number: import("chevrotain").TokenType;
66
+ Binary: import("chevrotain").TokenType;
67
+ Date: import("chevrotain").TokenType;
68
+ Time: import("chevrotain").TokenType;
69
+ Timestamp: import("chevrotain").TokenType;
70
+ Null: import("chevrotain").TokenType;
71
+ True: import("chevrotain").TokenType;
72
+ False: import("chevrotain").TokenType;
73
+ Identifier: import("chevrotain").TokenType;
74
+ TermCastIdentifier: import("chevrotain").TokenType;
75
+ DelimitedIdentifier: import("chevrotain").TokenType;
76
+ QuotedIdentifier: import("chevrotain").TokenType;
77
+ String: import("chevrotain").TokenType;
78
+ StringExit: import("chevrotain").TokenType;
79
+ QuotedIdentifierExit: import("chevrotain").TokenType;
80
+ DelimitedIdentifierExit: import("chevrotain").TokenType;
81
+ SpreadOperator: import("chevrotain").TokenType;
82
+ UpToKeyword: import("chevrotain").TokenType;
83
+ MultiLineString: import("chevrotain").TokenType;
84
+ MultiLineStringExit: import("chevrotain").TokenType;
85
+ MultiLineStringStripIndentExit: import("chevrotain").TokenType;
86
+ Backtick: import("chevrotain").TokenType;
87
+ TripleBacktick: import("chevrotain").TokenType;
88
+ Operator: import("chevrotain").TokenType;
89
+ };
90
+ export declare const lexerDefinition: {
91
+ modes: {
92
+ default_mode: import("chevrotain").TokenType[];
93
+ quoted_mode: import("chevrotain").TokenType[];
94
+ delimited_mode: import("chevrotain").TokenType[];
95
+ string_mode: import("chevrotain").TokenType[];
96
+ multi_line_string_strip_indent_mode: import("chevrotain").TokenType[];
97
+ multi_line_string_mode: import("chevrotain").TokenType[];
98
+ expression_mode: import("chevrotain").TokenType[];
99
+ delimited: never[];
100
+ };
101
+ defaultMode: string;
102
+ };
103
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/parser/tokens.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AACpD,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,eAAO,MAAM,mCAAmC,wCAAwC,CAAC;AACzF,eAAO,MAAM,yBAAyB,mBAAmB,CAAC;AAC1D,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAG/D,eAAO,MAAM,iCAAiC,yBAAyB,CAAC;AAQxE,eAAO,MAAM,+BAA+B,wBAAwB,CAAC;AAMrE,eAAO,MAAM,oCAAoC,4BAA4B,CAAC;AAQ9E,eAAO,MAAM,+BAA+B,uBAAuB,CAAC;AAMpE,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAQlD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAG9C,eAAO,MAAM,0BAA0B,mBAAmB,CAAC;AAO3D,eAAO,MAAM,iCAAiC,wBAAwB,CAAC;AAEvE,eAAO,MAAM,4BAA4B,oBAAoB,CAAC;AAG9D,eAAO,MAAM,8CAA8C,mCAAmC,CAAC;AAO/F,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C,eAAO,MAAM,sBAAsB,eAAe,CAAC;AAInD,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAS5C,eAAO,MAAM,uBAAuB,gBAAgB,CAAC;AAOrD,eAAO,MAAM,sBAAsB,eAAe,CAAC;AAGnD,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAGxC,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAGxC,eAAO,MAAM,iCAAiC,yBAAyB,CAAC;AAGxE,eAAO,MAAM,uBAAuB,gBAAgB,CAAC;AAIrD,eAAO,MAAM,uBAAuB,gBAAgB,CAAC;AAIrD,eAAO,MAAM,2BAA2B,oBAAoB,CAAC;AAQ7D,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAG/C,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAG/C,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAG3C,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAG3C,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAG3C,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAG3C,eAAO,MAAM,sBAAsB,eAAe,CAAC;AASnD,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAG1C,eAAO,MAAM,eAAe,SAAS,CAAC;AAGtC,eAAO,MAAM,eAAe,SAAS,CAAC;AAItC,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAIxC,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAM1C,eAAO,MAAM,eAAe,SAAS,CAAC;AAKtC,eAAO,MAAM,eAAe,SAAS,CAAC;AAEtC,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAMhD,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAMhD,eAAO,MAAM,aAAa,gBAAgB,CAAC;AAQ3C,eAAO,MAAM,QAAQ,aAAa,CAAC;AA0BnC,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCpB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;CAuE3B,CAAC"}
@@ -0,0 +1,287 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.lexerDefinition = exports.tokenMap = exports.OPERATOR = exports.UP_TO_KEYWORD = exports.SPREAD_OPERATOR = exports.TIMESTAMP_TOKEN_TYPE = exports.TIME_TOKEN_TYPE = exports.DATE_TOKEN_TYPE = exports.BINARY_TOKEN_TYPE = exports.FALSE_TOKEN_TYPE = exports.TRUE_TOKEN_TYPE = exports.NULL_TOKEN_TYPE = exports.NUMBER_TOKEN_TYPE = exports.WHITE_SPACE_TOKEN_TYPE = exports.R_PAREN_TOKEN_TYPE = exports.L_PAREN_TOKEN_TYPE = exports.R_CURLY_TOKEN_TYPE = exports.L_CURLY_TOKEN_TYPE = exports.R_BRACKET_TOKEN_TYPE = exports.L_BRACKET_TOKEN_TYPE = exports.IDENTIFIER_START_TOKEN_TYPE = exports.DOUBLE_QUOTE_TOKEN_TYPE = exports.SINGLE_QUOTE_TOKEN_TYPE = exports.PATH_SEGMENT_SEPARATOR_TOKEN_TYPE = exports.COMMA_TOKEN_TYPE = exports.COLON_TOKEN_TYPE = exports.NUMBER_SIGN_TOKEN_TYPE = exports.LINE_COMMENT_TOKEN_TYPE = exports.COMMENT_TOKEN_TYPE = exports.STRING_EXIT_TOKEN_TYPE = exports.STRING_TOKEN_TYPE = exports.MULTI_LINE_STRING_STRIP_INDENT_EXIT_TOKEN_TYPE = exports.MULTI_LINE_STRING_TOKEN_TYPE = exports.MULTI_LINE_STRING_EXIT_TOKEN_TYPE = exports.TRIPLE_BACKTICK_TOKEN_TYPE = exports.BACKTICK_TOKEN_TYPE = exports.IDENTIFIER_TOKEN_TYPE = exports.TERM_CAST_IDENTIFIER_TOKEN_TYPE = exports.DELIMITED_IDENTIFIER_EXIT_TOKEN_TYPE = exports.DELIMITED_IDENTIFIER_TOKEN_TYPE = exports.QUOTED_IDENTIFIER_EXIT_TOKEN_TYPE = exports.QUOTED_IDENTIFIER_TOKEN_TYPE = exports.EXPRESSION_MODE = exports.DELIMITED_IDENTIFIER_MODE = exports.MULTI_LINE_STRING_STRIP_INDENT_MODE = exports.MULTI_LINE_STRING_MODE = exports.STRING_MODE = exports.QUOTED_IDENTIFIER_MODE = exports.DEFAULT_MODE = void 0;
4
+ const chevrotain_1 = require("chevrotain");
5
+ exports.DEFAULT_MODE = 'default_mode';
6
+ exports.QUOTED_IDENTIFIER_MODE = 'quoted_mode';
7
+ exports.STRING_MODE = 'string_mode';
8
+ exports.MULTI_LINE_STRING_MODE = 'multi_line_string_mode';
9
+ exports.MULTI_LINE_STRING_STRIP_INDENT_MODE = 'multi_line_string_strip_indent_mode';
10
+ exports.DELIMITED_IDENTIFIER_MODE = 'delimited_mode';
11
+ exports.EXPRESSION_MODE = 'expression_mode';
12
+ exports.QUOTED_IDENTIFIER_TOKEN_TYPE = 'QuotedIdentifier';
13
+ const QuotedIdentifier = (0, chevrotain_1.createToken)({ name: exports.QUOTED_IDENTIFIER_TOKEN_TYPE, pattern: /[^/\u0022\n\r\u2028\u2029.]+/ });
14
+ exports.QUOTED_IDENTIFIER_EXIT_TOKEN_TYPE = 'QuotedIdentifierExit';
15
+ const QuotedIdentifierExit = (0, chevrotain_1.createToken)({
16
+ name: exports.QUOTED_IDENTIFIER_EXIT_TOKEN_TYPE,
17
+ pattern: /[\u0022\n\r\u2028\u2029]/,
18
+ pop_mode: true
19
+ });
20
+ exports.DELIMITED_IDENTIFIER_TOKEN_TYPE = 'DelimitedIdentifier';
21
+ const DelimitedIdentifier = (0, chevrotain_1.createToken)({
22
+ name: exports.DELIMITED_IDENTIFIER_TOKEN_TYPE,
23
+ pattern: /[^\u005d\n\r\u2028\u2029./]+/
24
+ });
25
+ exports.DELIMITED_IDENTIFIER_EXIT_TOKEN_TYPE = 'DelimitedIdentifierExit';
26
+ const DelimitedIdentifierExit = (0, chevrotain_1.createToken)({
27
+ name: exports.DELIMITED_IDENTIFIER_EXIT_TOKEN_TYPE,
28
+ pattern: /[\u005d\n\r\u2028\u2029]/,
29
+ pop_mode: true
30
+ });
31
+ exports.TERM_CAST_IDENTIFIER_TOKEN_TYPE = 'TermCastIdentifier';
32
+ const TermCastIdentifier = (0, chevrotain_1.createToken)({
33
+ name: exports.TERM_CAST_IDENTIFIER_TOKEN_TYPE,
34
+ pattern: /[@$_a-zA-Z][$_a-zA-Z0-9]*/
35
+ });
36
+ exports.IDENTIFIER_TOKEN_TYPE = 'Identifier';
37
+ const Identifier = (0, chevrotain_1.createToken)({
38
+ name: exports.IDENTIFIER_TOKEN_TYPE,
39
+ pattern: /[$_a-zA-Z][$_a-zA-Z0-9]*/,
40
+ longer_alt: TermCastIdentifier
41
+ });
42
+ exports.BACKTICK_TOKEN_TYPE = 'Backtick';
43
+ const Backtick = (0, chevrotain_1.createToken)({ name: exports.BACKTICK_TOKEN_TYPE, pattern: '`', push_mode: exports.MULTI_LINE_STRING_MODE });
44
+ exports.TRIPLE_BACKTICK_TOKEN_TYPE = 'TripleBacktick';
45
+ const TripleBacktick = (0, chevrotain_1.createToken)({
46
+ name: exports.TRIPLE_BACKTICK_TOKEN_TYPE,
47
+ pattern: '```',
48
+ push_mode: exports.MULTI_LINE_STRING_STRIP_INDENT_MODE
49
+ });
50
+ exports.MULTI_LINE_STRING_EXIT_TOKEN_TYPE = 'MultiLineStringExit';
51
+ const MultiLineStringExit = (0, chevrotain_1.createToken)({ name: exports.MULTI_LINE_STRING_EXIT_TOKEN_TYPE, pattern: /`/, pop_mode: true });
52
+ exports.MULTI_LINE_STRING_TOKEN_TYPE = 'MultiLineString';
53
+ const MultiLineString = (0, chevrotain_1.createToken)({ name: exports.MULTI_LINE_STRING_TOKEN_TYPE, pattern: /(([^`]+|'')+)/ });
54
+ exports.MULTI_LINE_STRING_STRIP_INDENT_EXIT_TOKEN_TYPE = 'MultiLineStringStripIndentExit';
55
+ const MultiLineStringStripIndentExit = (0, chevrotain_1.createToken)({
56
+ name: exports.MULTI_LINE_STRING_STRIP_INDENT_EXIT_TOKEN_TYPE,
57
+ pattern: /`{3}/,
58
+ pop_mode: true
59
+ });
60
+ exports.STRING_TOKEN_TYPE = 'String';
61
+ const StringToken = (0, chevrotain_1.createToken)({ name: exports.STRING_TOKEN_TYPE, pattern: /(([^\n\r']+|'')+)/ });
62
+ exports.STRING_EXIT_TOKEN_TYPE = 'StringExit';
63
+ const StringExit = (0, chevrotain_1.createToken)({ name: exports.STRING_EXIT_TOKEN_TYPE, pattern: /[\n\r']/, pop_mode: true });
64
+ exports.COMMENT_TOKEN_TYPE = 'Comment';
65
+ const Comment = (0, chevrotain_1.createToken)({
66
+ name: exports.COMMENT_TOKEN_TYPE,
67
+ pattern: /\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/,
68
+ line_breaks: true,
69
+ group: 'comments'
70
+ });
71
+ exports.LINE_COMMENT_TOKEN_TYPE = 'LineComment';
72
+ const LineComment = (0, chevrotain_1.createToken)({
73
+ name: exports.LINE_COMMENT_TOKEN_TYPE,
74
+ pattern: /\/\/[^\n\r\f]*/,
75
+ group: 'comments'
76
+ });
77
+ exports.NUMBER_SIGN_TOKEN_TYPE = 'NumberSign';
78
+ const NumberSign = (0, chevrotain_1.createToken)({ name: exports.NUMBER_SIGN_TOKEN_TYPE, pattern: '#' });
79
+ exports.COLON_TOKEN_TYPE = 'Colon';
80
+ const Colon = (0, chevrotain_1.createToken)({ name: exports.COLON_TOKEN_TYPE, pattern: ':' });
81
+ exports.COMMA_TOKEN_TYPE = 'Comma';
82
+ const Comma = (0, chevrotain_1.createToken)({ name: exports.COMMA_TOKEN_TYPE, pattern: ',' });
83
+ exports.PATH_SEGMENT_SEPARATOR_TOKEN_TYPE = 'PathSegmentSeparator';
84
+ const PathSegmentSeparator = (0, chevrotain_1.createToken)({ name: exports.PATH_SEGMENT_SEPARATOR_TOKEN_TYPE, pattern: /[./]/ });
85
+ exports.SINGLE_QUOTE_TOKEN_TYPE = 'SingleQuote';
86
+ const SingleQuote = (0, chevrotain_1.createToken)({ name: exports.SINGLE_QUOTE_TOKEN_TYPE, pattern: "'", push_mode: exports.STRING_MODE });
87
+ exports.DOUBLE_QUOTE_TOKEN_TYPE = 'DoubleQuote';
88
+ const DoubleQuote = (0, chevrotain_1.createToken)({ name: exports.DOUBLE_QUOTE_TOKEN_TYPE, pattern: '"', push_mode: exports.QUOTED_IDENTIFIER_MODE });
89
+ exports.IDENTIFIER_START_TOKEN_TYPE = 'IdentifierStart';
90
+ const IdentifierStart = (0, chevrotain_1.createToken)({
91
+ name: exports.IDENTIFIER_START_TOKEN_TYPE,
92
+ pattern: '![',
93
+ push_mode: exports.DELIMITED_IDENTIFIER_MODE
94
+ });
95
+ exports.L_BRACKET_TOKEN_TYPE = 'LBracket';
96
+ const LBracket = (0, chevrotain_1.createToken)({ name: exports.L_BRACKET_TOKEN_TYPE, pattern: '[' });
97
+ exports.R_BRACKET_TOKEN_TYPE = 'RBracket';
98
+ const RBracket = (0, chevrotain_1.createToken)({ name: exports.R_BRACKET_TOKEN_TYPE, pattern: ']' });
99
+ exports.L_CURLY_TOKEN_TYPE = 'LCurly';
100
+ const LCurly = (0, chevrotain_1.createToken)({ name: exports.L_CURLY_TOKEN_TYPE, pattern: '{' });
101
+ exports.R_CURLY_TOKEN_TYPE = 'RCurly';
102
+ const RCurly = (0, chevrotain_1.createToken)({ name: exports.R_CURLY_TOKEN_TYPE, pattern: '}' });
103
+ exports.L_PAREN_TOKEN_TYPE = 'LParen';
104
+ const LParen = (0, chevrotain_1.createToken)({ name: exports.L_PAREN_TOKEN_TYPE, pattern: '(', push_mode: exports.EXPRESSION_MODE });
105
+ exports.R_PAREN_TOKEN_TYPE = 'RParen';
106
+ const RParen = (0, chevrotain_1.createToken)({ name: exports.R_PAREN_TOKEN_TYPE, pattern: ')', pop_mode: true });
107
+ exports.WHITE_SPACE_TOKEN_TYPE = 'WhiteSpace';
108
+ const WhiteSpace = (0, chevrotain_1.createToken)({
109
+ name: exports.WHITE_SPACE_TOKEN_TYPE,
110
+ pattern: /\s+/,
111
+ group: chevrotain_1.Lexer.SKIPPED,
112
+ line_breaks: true
113
+ });
114
+ exports.NUMBER_TOKEN_TYPE = 'Number';
115
+ const NumberToken = (0, chevrotain_1.createToken)({ name: exports.NUMBER_TOKEN_TYPE, pattern: /([+-])?\d+(\.\d+)?([eE]([+-])?\d+)?/ });
116
+ // keywords
117
+ exports.NULL_TOKEN_TYPE = 'Null';
118
+ const Null = (0, chevrotain_1.createToken)({ name: exports.NULL_TOKEN_TYPE, pattern: /null/i, longer_alt: Identifier });
119
+ exports.TRUE_TOKEN_TYPE = 'True';
120
+ const True = (0, chevrotain_1.createToken)({ name: exports.TRUE_TOKEN_TYPE, pattern: /true/i, longer_alt: Identifier });
121
+ exports.FALSE_TOKEN_TYPE = 'False';
122
+ const False = (0, chevrotain_1.createToken)({ name: exports.FALSE_TOKEN_TYPE, pattern: /false/i, longer_alt: Identifier });
123
+ exports.BINARY_TOKEN_TYPE = 'Binary';
124
+ const Binary = (0, chevrotain_1.createToken)({
125
+ name: exports.BINARY_TOKEN_TYPE,
126
+ pattern: /x'[^\n\r']+'?/i
127
+ });
128
+ exports.DATE_TOKEN_TYPE = 'Date';
129
+ const DateToken = (0, chevrotain_1.createToken)({
130
+ name: exports.DATE_TOKEN_TYPE,
131
+ pattern: /Date'[^\n\r']+'?/i
132
+ });
133
+ exports.TIME_TOKEN_TYPE = 'Time';
134
+ const Time = (0, chevrotain_1.createToken)({ name: exports.TIME_TOKEN_TYPE, pattern: /Time'[^\n\r']+'?/i });
135
+ exports.TIMESTAMP_TOKEN_TYPE = 'Timestamp';
136
+ const Timestamp = (0, chevrotain_1.createToken)({
137
+ name: exports.TIMESTAMP_TOKEN_TYPE,
138
+ pattern: /Timestamp'[^\n\r']+'?/i
139
+ });
140
+ exports.SPREAD_OPERATOR = 'SpreadOperator';
141
+ const SpreadOperator = (0, chevrotain_1.createToken)({
142
+ name: exports.SPREAD_OPERATOR,
143
+ pattern: /[.]{3}/i
144
+ });
145
+ exports.UP_TO_KEYWORD = 'UpToKeyword';
146
+ const UpToKeyword = (0, chevrotain_1.createToken)({
147
+ name: exports.UP_TO_KEYWORD,
148
+ pattern: /up to/i
149
+ });
150
+ // cap documentation refers to db operators - HANA DB operators https://help.sap.com/docs/SAP_HANA_PLATFORM/4fe29514fd584807ac9f2a04f6754767/20a380977519101494ceddd944e87527.html
151
+ // for each operator token: maintain operator metadata (operatorMap, operatorImageMap in /transformer/expressions.ts)
152
+ exports.OPERATOR = 'Operator';
153
+ const words = (...values) => values.map((value) => '\\b' + value + '\\b');
154
+ const regEx = new RegExp([
155
+ '=',
156
+ '!=',
157
+ '<>',
158
+ '>=?',
159
+ '<=?',
160
+ '\\?',
161
+ ':',
162
+ '\\|\\|',
163
+ '\\+',
164
+ '-',
165
+ '\\*',
166
+ '\\/',
167
+ ...words('IS NULL', 'IS NOT NULL', 'NOT LIKE', 'LIKE', 'NOT BETWEEN', 'BETWEEN', 'NOT', 'AND', 'OR')
168
+ ].join('|'), 'i');
169
+ const Operator = (0, chevrotain_1.createToken)({
170
+ name: exports.OPERATOR,
171
+ pattern: regEx
172
+ });
173
+ exports.tokenMap = {
174
+ Comment,
175
+ LineComment,
176
+ NumberSign,
177
+ Colon,
178
+ Comma,
179
+ PathSegmentSeparator,
180
+ SingleQuote,
181
+ DoubleQuote,
182
+ IdentifierStart,
183
+ LBracket,
184
+ RBracket,
185
+ LCurly,
186
+ RCurly,
187
+ LParen,
188
+ RParen,
189
+ WhiteSpace,
190
+ Number: NumberToken,
191
+ Binary,
192
+ Date: DateToken,
193
+ Time,
194
+ Timestamp,
195
+ Null,
196
+ True,
197
+ False,
198
+ Identifier,
199
+ TermCastIdentifier,
200
+ DelimitedIdentifier,
201
+ QuotedIdentifier,
202
+ String: StringToken,
203
+ StringExit,
204
+ QuotedIdentifierExit,
205
+ DelimitedIdentifierExit,
206
+ SpreadOperator,
207
+ UpToKeyword,
208
+ MultiLineString,
209
+ MultiLineStringExit,
210
+ MultiLineStringStripIndentExit,
211
+ Backtick,
212
+ TripleBacktick,
213
+ Operator
214
+ };
215
+ exports.lexerDefinition = {
216
+ modes: {
217
+ [exports.DEFAULT_MODE]: [
218
+ SpreadOperator,
219
+ UpToKeyword,
220
+ Comment,
221
+ LineComment,
222
+ NumberSign,
223
+ Colon,
224
+ Comma,
225
+ PathSegmentSeparator,
226
+ TripleBacktick,
227
+ Backtick,
228
+ SingleQuote,
229
+ DoubleQuote,
230
+ IdentifierStart,
231
+ LBracket,
232
+ RBracket,
233
+ LCurly,
234
+ RCurly,
235
+ LParen,
236
+ WhiteSpace,
237
+ NumberToken,
238
+ Binary,
239
+ DateToken,
240
+ Time,
241
+ Timestamp,
242
+ Null,
243
+ True,
244
+ False,
245
+ Operator,
246
+ Identifier,
247
+ TermCastIdentifier
248
+ ],
249
+ [exports.QUOTED_IDENTIFIER_MODE]: [QuotedIdentifier, PathSegmentSeparator, QuotedIdentifierExit],
250
+ [exports.DELIMITED_IDENTIFIER_MODE]: [DelimitedIdentifier, PathSegmentSeparator, DelimitedIdentifierExit],
251
+ [exports.STRING_MODE]: [StringToken, StringExit],
252
+ [exports.MULTI_LINE_STRING_STRIP_INDENT_MODE]: [MultiLineString, MultiLineStringStripIndentExit],
253
+ [exports.MULTI_LINE_STRING_MODE]: [MultiLineString, MultiLineStringExit],
254
+ [exports.EXPRESSION_MODE]: [
255
+ LParen,
256
+ Comment,
257
+ LineComment,
258
+ NumberSign,
259
+ TripleBacktick,
260
+ Backtick,
261
+ SingleQuote,
262
+ DoubleQuote,
263
+ IdentifierStart,
264
+ LBracket,
265
+ RBracket,
266
+ LCurly,
267
+ RCurly,
268
+ WhiteSpace,
269
+ Operator,
270
+ NumberToken,
271
+ Binary,
272
+ DateToken,
273
+ Time,
274
+ Timestamp,
275
+ Null,
276
+ True,
277
+ False,
278
+ PathSegmentSeparator,
279
+ Identifier,
280
+ TermCastIdentifier,
281
+ RParen
282
+ ],
283
+ delimited: []
284
+ },
285
+ defaultMode: exports.DEFAULT_MODE
286
+ };
287
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/parser/tokens.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,178 @@
1
+ import { Range } from 'vscode-languageserver-types';
2
+ export type QualifiedName = string;
3
+ export type SimpleIdentifier = string;
4
+ export declare enum Delimiter {
5
+ none = "none",
6
+ quoted = "quoted",
7
+ exclamationSquareBrackets = "exclamation-square-brackets"
8
+ }
9
+ export interface Node {
10
+ type: string;
11
+ range?: Range;
12
+ }
13
+ export declare const TOKEN_TYPE = "token";
14
+ export interface Token extends Node {
15
+ type: typeof TOKEN_TYPE;
16
+ value: string;
17
+ }
18
+ export declare const NUMBER_LITERAL_TYPE = "number";
19
+ export interface NumberLiteral extends Node {
20
+ type: typeof NUMBER_LITERAL_TYPE;
21
+ value: number | string;
22
+ }
23
+ export declare const ENUM_TYPE = "enum";
24
+ export interface Enum extends Node {
25
+ type: typeof ENUM_TYPE;
26
+ path: Path;
27
+ }
28
+ export type QuotedLiteralKind = 'date' | 'time' | 'timestamp' | 'binary';
29
+ export declare const QUOTED_LITERAL_TYPE = "quoted-literal";
30
+ export interface QuotedLiteral extends Node {
31
+ type: typeof QUOTED_LITERAL_TYPE;
32
+ value: string;
33
+ kind: QuotedLiteralKind;
34
+ }
35
+ export declare const EMPTY_VALUE_TYPE = "empty-value";
36
+ export interface EmptyValue extends Node {
37
+ type: typeof EMPTY_VALUE_TYPE;
38
+ }
39
+ export declare const BOOLEAN_TYPE = "boolean";
40
+ export interface BooleanLiteral extends Node {
41
+ type: typeof BOOLEAN_TYPE;
42
+ value: boolean;
43
+ }
44
+ export declare const STRING_LITERAL_TYPE = "string";
45
+ export interface StringLiteral extends Node {
46
+ type: typeof STRING_LITERAL_TYPE;
47
+ value: string;
48
+ openToken?: Token;
49
+ closeToken?: Token;
50
+ }
51
+ export declare const MULTI_LINE_STRING_LITERAL_TYPE = "multi-line-string";
52
+ export interface MultiLineStringLiteral extends Node {
53
+ type: typeof MULTI_LINE_STRING_LITERAL_TYPE;
54
+ stripIndentation: boolean;
55
+ value: string;
56
+ openToken?: Token;
57
+ closeToken?: Token;
58
+ }
59
+ export declare const PATH_TYPE = "path";
60
+ export interface Path extends Node {
61
+ type: typeof PATH_TYPE;
62
+ value: string;
63
+ segments: Identifier[];
64
+ separators: Separator[];
65
+ }
66
+ export declare const SEPARATOR_TYPE = "separator";
67
+ export interface Separator extends Node {
68
+ type: typeof SEPARATOR_TYPE;
69
+ value: string;
70
+ escaped: boolean;
71
+ }
72
+ export declare const IDENTIFIER_TYPE = "identifier";
73
+ export interface Identifier extends Node {
74
+ type: typeof IDENTIFIER_TYPE;
75
+ value: string;
76
+ quoted?: boolean;
77
+ }
78
+ export declare const OPERATOR_TYPE = "operator";
79
+ export interface Operator extends Node {
80
+ type: typeof OPERATOR_TYPE;
81
+ value: string;
82
+ range: Range;
83
+ }
84
+ export type EXPRESSION_TYPE = typeof INCORRECT_EXPRESSION_TYPE | typeof UNSUPPORTED_OPERATOR_EXPRESSION_TYPE | typeof CORRECT_EXPRESSION_TYPE;
85
+ export interface ExpressionBase extends Node {
86
+ type: EXPRESSION_TYPE;
87
+ operators: Operator[];
88
+ operands: AnnotationValue[];
89
+ openToken?: Token;
90
+ closeToken?: Token;
91
+ }
92
+ export declare const UNSUPPORTED_OPERATOR_EXPRESSION_TYPE = "unsupported-operator-expression";
93
+ export interface UnsupportedOperatorExpression extends ExpressionBase {
94
+ type: typeof UNSUPPORTED_OPERATOR_EXPRESSION_TYPE;
95
+ unsupportedOperator: Operator;
96
+ }
97
+ export declare const INCORRECT_EXPRESSION_TYPE = "incorrect-expression";
98
+ export interface IncorrectExpression extends ExpressionBase {
99
+ type: typeof INCORRECT_EXPRESSION_TYPE;
100
+ /**
101
+ * message indicating why the expression is incorrect
102
+ * (for supportability only! i.e. for debugging and ensuring parsing stability by including it in snapshots).
103
+ *
104
+ * Remark: Syntactically incorrect CDS expressions are diagnosed by the cds-compiler
105
+ */
106
+ message?: string;
107
+ }
108
+ export declare const CORRECT_EXPRESSION_TYPE = "correct-expression";
109
+ export interface CorrectExpression extends ExpressionBase {
110
+ type: typeof CORRECT_EXPRESSION_TYPE;
111
+ operatorName: string;
112
+ }
113
+ export declare const EXPRESSION_TYPES: string[];
114
+ export declare const RECORD_PROPERTY_TYPE = "record-property";
115
+ export interface RecordProperty extends Node {
116
+ type: typeof RECORD_PROPERTY_TYPE;
117
+ name: Path;
118
+ value?: AnnotationValue;
119
+ colon?: Token;
120
+ }
121
+ export declare const RECORD_TYPE = "record";
122
+ export interface Record extends Node {
123
+ type: typeof RECORD_TYPE;
124
+ properties: RecordProperty[];
125
+ annotations?: Annotation[];
126
+ openToken?: Token;
127
+ closeToken?: Token;
128
+ commas: Token[];
129
+ }
130
+ export declare const COLLECTION_TYPE = "collection";
131
+ export interface Collection extends Node {
132
+ type: typeof COLLECTION_TYPE;
133
+ items: AnnotationValue[];
134
+ openToken?: Token;
135
+ closeToken?: Token;
136
+ commas: Token[];
137
+ }
138
+ export declare const QUALIFIER_TYPE = "qualifier";
139
+ export interface Qualifier extends Node {
140
+ type: typeof QUALIFIER_TYPE;
141
+ value: string;
142
+ }
143
+ export type AnnotationValue = Enum | BooleanLiteral | Record | Collection | Path | NumberLiteral | StringLiteral | MultiLineStringLiteral | QuotedLiteral | Token | EmptyValue | Expression;
144
+ export type AnnotationValueType = typeof ENUM_TYPE | typeof BOOLEAN_TYPE | typeof RECORD_TYPE | typeof COLLECTION_TYPE | typeof PATH_TYPE | typeof NUMBER_LITERAL_TYPE | typeof STRING_LITERAL_TYPE | typeof MULTI_LINE_STRING_LITERAL_TYPE | typeof TOKEN_TYPE | typeof QUOTED_LITERAL_TYPE | typeof EMPTY_VALUE_TYPE | EXPRESSION_TYPE;
145
+ export declare const ANNOTATION_TYPE = "annotation";
146
+ export interface Annotation extends Node {
147
+ type: typeof ANNOTATION_TYPE;
148
+ term: Path;
149
+ qualifier?: Qualifier;
150
+ value?: AnnotationValue;
151
+ colon?: Token;
152
+ }
153
+ export declare const ANNOTATION_GROUP_TYPE = "annotation-group";
154
+ export interface AnnotationGroup extends Node {
155
+ type: typeof ANNOTATION_GROUP_TYPE;
156
+ name: Identifier;
157
+ items: AnnotationGroupItems;
158
+ colon?: Token;
159
+ }
160
+ export type AstResult = Annotation | AnnotationGroup | undefined;
161
+ export declare const ANNOTATION_GROUP_ITEMS_TYPE = "annotation-group-items";
162
+ export interface AnnotationGroupItems extends Node {
163
+ type: typeof ANNOTATION_GROUP_ITEMS_TYPE;
164
+ items: Annotation[];
165
+ openToken?: Token;
166
+ closeToken?: Token;
167
+ commas: Token[];
168
+ }
169
+ export declare const isContainer: (node: AnnotationNode) => node is Record | Collection | AnnotationGroupItems;
170
+ export type Assignment = Annotation | AnnotationGroup;
171
+ export type Expression = CorrectExpression | IncorrectExpression | UnsupportedOperatorExpression;
172
+ export type AnnotationNode = Annotation | AnnotationGroup | AnnotationGroupItems | AnnotationValue | RecordProperty | Qualifier | Identifier | Separator | Token | EmptyValue | Expression;
173
+ export type NarrowAnnotationNode<T, N = AnnotationNode> = N extends {
174
+ type: T;
175
+ } ? N : never;
176
+ export type AnnotationNodeType = typeof ANNOTATION_TYPE | typeof ANNOTATION_GROUP_TYPE | typeof ANNOTATION_GROUP_ITEMS_TYPE | typeof RECORD_PROPERTY_TYPE | typeof QUALIFIER_TYPE | typeof IDENTIFIER_TYPE | typeof TOKEN_TYPE | AnnotationValueType;
177
+ export declare const nodeRange: (node: AnnotationNode, includeDelimiters: boolean) => Range | undefined;
178
+ //# sourceMappingURL=annotation-ast-nodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotation-ast-nodes.d.ts","sourceRoot":"","sources":["../../src/transformer/annotation-ast-nodes.ts"],"names":[],"mappings":"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"}