@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.
- package/LICENSE +201 -0
- package/README.md +74 -0
- package/dist/constants.d.ts +6 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +10 -0
- package/dist/constants.js.map +1 -0
- package/dist/find-annotation-node.d.ts +40 -0
- package/dist/find-annotation-node.d.ts.map +1 -0
- package/dist/find-annotation-node.js +135 -0
- package/dist/find-annotation-node.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/factory.d.ts +6 -0
- package/dist/parser/factory.d.ts.map +1 -0
- package/dist/parser/factory.js +13 -0
- package/dist/parser/factory.js.map +1 -0
- package/dist/parser/index.d.ts +11 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +17 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/parser.d.ts +242 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/parser/parser.js +385 -0
- package/dist/parser/parser.js.map +1 -0
- package/dist/parser/tokens.d.ts +103 -0
- package/dist/parser/tokens.d.ts.map +1 -0
- package/dist/parser/tokens.js +287 -0
- package/dist/parser/tokens.js.map +1 -0
- package/dist/transformer/annotation-ast-nodes.d.ts +178 -0
- package/dist/transformer/annotation-ast-nodes.d.ts.map +1 -0
- package/dist/transformer/annotation-ast-nodes.js +69 -0
- package/dist/transformer/annotation-ast-nodes.js.map +1 -0
- package/dist/transformer/ast.d.ts +6 -0
- package/dist/transformer/ast.d.ts.map +1 -0
- package/dist/transformer/ast.js +1227 -0
- package/dist/transformer/ast.js.map +1 -0
- package/dist/transformer/expressions.d.ts +87 -0
- package/dist/transformer/expressions.d.ts.map +1 -0
- package/dist/transformer/expressions.js +548 -0
- package/dist/transformer/expressions.js.map +1 -0
- package/dist/transformer/index.d.ts +5 -0
- package/dist/transformer/index.d.ts.map +1 -0
- package/dist/transformer/index.js +42 -0
- package/dist/transformer/index.js.map +1 -0
- package/dist/transformer/range.d.ts +20 -0
- package/dist/transformer/range.d.ts.map +1 -0
- package/dist/transformer/range.js +31 -0
- package/dist/transformer/range.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +17 -0
- package/dist/utils/index.js.map +1 -0
- 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"}
|