@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,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nodeRange = exports.isContainer = exports.ANNOTATION_GROUP_ITEMS_TYPE = exports.ANNOTATION_GROUP_TYPE = exports.ANNOTATION_TYPE = exports.QUALIFIER_TYPE = exports.COLLECTION_TYPE = exports.RECORD_TYPE = exports.RECORD_PROPERTY_TYPE = exports.EXPRESSION_TYPES = exports.CORRECT_EXPRESSION_TYPE = exports.INCORRECT_EXPRESSION_TYPE = exports.UNSUPPORTED_OPERATOR_EXPRESSION_TYPE = exports.OPERATOR_TYPE = exports.IDENTIFIER_TYPE = exports.SEPARATOR_TYPE = exports.PATH_TYPE = exports.MULTI_LINE_STRING_LITERAL_TYPE = exports.STRING_LITERAL_TYPE = exports.BOOLEAN_TYPE = exports.EMPTY_VALUE_TYPE = exports.QUOTED_LITERAL_TYPE = exports.ENUM_TYPE = exports.NUMBER_LITERAL_TYPE = exports.TOKEN_TYPE = exports.Delimiter = void 0;
4
+ const vscode_languageserver_types_1 = require("vscode-languageserver-types");
5
+ const range_1 = require("./range");
6
+ var Delimiter;
7
+ (function (Delimiter) {
8
+ Delimiter["none"] = "none";
9
+ Delimiter["quoted"] = "quoted";
10
+ Delimiter["exclamationSquareBrackets"] = "exclamation-square-brackets";
11
+ })(Delimiter = exports.Delimiter || (exports.Delimiter = {}));
12
+ exports.TOKEN_TYPE = 'token';
13
+ exports.NUMBER_LITERAL_TYPE = 'number';
14
+ exports.ENUM_TYPE = 'enum';
15
+ exports.QUOTED_LITERAL_TYPE = 'quoted-literal';
16
+ exports.EMPTY_VALUE_TYPE = 'empty-value';
17
+ exports.BOOLEAN_TYPE = 'boolean';
18
+ exports.STRING_LITERAL_TYPE = 'string';
19
+ exports.MULTI_LINE_STRING_LITERAL_TYPE = 'multi-line-string';
20
+ exports.PATH_TYPE = 'path';
21
+ exports.SEPARATOR_TYPE = 'separator';
22
+ exports.IDENTIFIER_TYPE = 'identifier';
23
+ exports.OPERATOR_TYPE = 'operator';
24
+ exports.UNSUPPORTED_OPERATOR_EXPRESSION_TYPE = 'unsupported-operator-expression';
25
+ exports.INCORRECT_EXPRESSION_TYPE = 'incorrect-expression';
26
+ exports.CORRECT_EXPRESSION_TYPE = 'correct-expression';
27
+ exports.EXPRESSION_TYPES = [
28
+ exports.UNSUPPORTED_OPERATOR_EXPRESSION_TYPE,
29
+ exports.INCORRECT_EXPRESSION_TYPE,
30
+ exports.CORRECT_EXPRESSION_TYPE
31
+ ];
32
+ exports.RECORD_PROPERTY_TYPE = 'record-property';
33
+ exports.RECORD_TYPE = 'record';
34
+ exports.COLLECTION_TYPE = 'collection';
35
+ exports.QUALIFIER_TYPE = 'qualifier';
36
+ exports.ANNOTATION_TYPE = 'annotation';
37
+ exports.ANNOTATION_GROUP_TYPE = 'annotation-group';
38
+ exports.ANNOTATION_GROUP_ITEMS_TYPE = 'annotation-group-items';
39
+ const CONTAINER_TYPES = new Set([exports.ANNOTATION_GROUP_ITEMS_TYPE, exports.RECORD_TYPE, exports.COLLECTION_TYPE]);
40
+ const isContainer = (node) => CONTAINER_TYPES.has(node.type);
41
+ exports.isContainer = isContainer;
42
+ const nodeRange = (node, includeDelimiters) => {
43
+ var _a, _b;
44
+ if (!node.range) {
45
+ return undefined;
46
+ }
47
+ if (includeDelimiters) {
48
+ return (0, range_1.copyRange)(node.range);
49
+ }
50
+ switch (node.type) {
51
+ case exports.ANNOTATION_GROUP_ITEMS_TYPE:
52
+ case exports.RECORD_TYPE:
53
+ case exports.COLLECTION_TYPE:
54
+ case exports.STRING_LITERAL_TYPE:
55
+ case exports.INCORRECT_EXPRESSION_TYPE:
56
+ case exports.UNSUPPORTED_OPERATOR_EXPRESSION_TYPE:
57
+ case exports.CORRECT_EXPRESSION_TYPE: {
58
+ // if delimiter tokens exist adjust range accordingly
59
+ const start = ((_a = node.openToken) === null || _a === void 0 ? void 0 : _a.range) ? (0, range_1.copyRange)(node.openToken.range).end : (0, range_1.copyRange)(node.range).start;
60
+ const end = ((_b = node.closeToken) === null || _b === void 0 ? void 0 : _b.range) ? (0, range_1.copyRange)(node.closeToken.range).start : (0, range_1.copyRange)(node.range).end;
61
+ return vscode_languageserver_types_1.Range.create(start, end);
62
+ }
63
+ default:
64
+ break;
65
+ }
66
+ return (0, range_1.copyRange)(node.range);
67
+ };
68
+ exports.nodeRange = nodeRange;
69
+ //# sourceMappingURL=annotation-ast-nodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotation-ast-nodes.js","sourceRoot":"","sources":["../../src/transformer/annotation-ast-nodes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { CstNode, IToken, CstNodeLocation } from 'chevrotain';
2
+ import { Range, Position } from 'vscode-languageserver-types';
3
+ import type { AstResult } from './annotation-ast-nodes';
4
+ export declare const locationToRange: (location?: CstNodeLocation) => Range | undefined;
5
+ export declare const buildAst: (cst: CstNode, tokenVector: IToken[], startPosition?: Position) => AstResult;
6
+ //# sourceMappingURL=ast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/transformer/ast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,KAAK,EAiBR,SAAS,EAKZ,MAAM,wBAAwB,CAAC;AAsFhC,eAAO,MAAM,eAAe,cAAe,eAAe,KAAG,KAAK,GAAG,SASpE,CAAC;AA0vCF,eAAO,MAAM,QAAQ,QAAS,OAAO,eAAe,MAAM,EAAE,kBAAkB,QAAQ,KAAG,SAUxF,CAAC"}