@eagleoutice/flowr 1.3.11 → 1.3.13
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/cli/common/scripts-info.d.ts +1 -1
- package/package.json +3 -4
- package/benchmark/benchmark-slicer.js +0 -223
- package/core/pipeline-executor.js +0 -221
- package/core/stepping-slicer.js +0 -160
- package/core/steps/all/00-parse.js +0 -19
- package/core/steps/all/10-normalize.js +0 -21
- package/core/steps/all/20-dataflow.js +0 -21
- package/core/steps/all/30-slice.js +0 -16
- package/core/steps/all/40-reconstruct.js +0 -16
- package/core/steps/all/core/00-parse.js +0 -24
- package/core/steps/all/core/10-normalize.js +0 -46
- package/core/steps/all/core/20-dataflow.js +0 -39
- package/core/steps/all/static-slicing/00-slice.js +0 -21
- package/core/steps/all/static-slicing/10-reconstruct.js +0 -21
- package/core/steps/index.js +0 -21
- package/core/steps/input.js +0 -3
- package/core/steps/output.js +0 -3
- package/core/steps/pipeline/create.js +0 -130
- package/core/steps/pipeline/default.js +0 -15
- package/core/steps/pipeline/dependency-checker.js +0 -76
- package/core/steps/pipeline/index.js +0 -20
- package/core/steps/pipeline/invalid-pipeline-error.js +0 -14
- package/core/steps/pipeline/pipeline.js +0 -28
- package/core/steps/step.js +0 -8
- package/core/steps/steps-provider.js +0 -3
- package/core/steps/steps.js +0 -35
- package/dataflow/common/environments/append.js +0 -48
- package/dataflow/common/environments/environment.js +0 -165
- package/dataflow/common/environments/index.js +0 -23
- package/dataflow/common/environments/overwrite.js +0 -82
- package/dataflow/common/environments/register.js +0 -49
- package/dataflow/common/environments/resolve-by-name.js +0 -35
- package/dataflow/common/environments/scopes.js +0 -6
- package/dataflow/common/environments/scoping.js +0 -27
- package/dataflow/graph/equal.js +0 -127
- package/dataflow/v1/extractor.js +0 -60
- package/dataflow/v1/graph/diff.js +0 -206
- package/dataflow/v1/graph/edge.js +0 -32
- package/dataflow/v1/graph/graph.js +0 -298
- package/dataflow/v1/graph/index.js +0 -21
- package/dataflow/v1/graph/quads.js +0 -27
- package/dataflow/v1/graph/vertex.js +0 -3
- package/dataflow/v1/index.js +0 -24
- package/dataflow/v1/internal/info.js +0 -16
- package/dataflow/v1/internal/linker.js +0 -255
- package/dataflow/v1/internal/process/access.js +0 -54
- package/dataflow/v1/internal/process/expression-list.js +0 -154
- package/dataflow/v1/internal/process/functions/argument.js +0 -46
- package/dataflow/v1/internal/process/functions/exit-points.js +0 -125
- package/dataflow/v1/internal/process/functions/function-call.js +0 -99
- package/dataflow/v1/internal/process/functions/function-definition.js +0 -176
- package/dataflow/v1/internal/process/functions/parameter.js +0 -47
- package/dataflow/v1/internal/process/if-then-else.js +0 -57
- package/dataflow/v1/internal/process/loops/for-loop.js +0 -54
- package/dataflow/v1/internal/process/loops/repeat-loop.js +0 -21
- package/dataflow/v1/internal/process/loops/while-loop.js +0 -31
- package/dataflow/v1/internal/process/operators/assignment.js +0 -129
- package/dataflow/v1/internal/process/operators/non-assignment-binary-op.js +0 -25
- package/dataflow/v1/internal/process/operators/pipe.js +0 -46
- package/dataflow/v1/internal/process/operators/unary-op.js +0 -10
- package/dataflow/v1/internal/process/symbol.js +0 -21
- package/dataflow/v1/internal/process/uninteresting-leaf.js +0 -9
- package/dataflow/v1/processor.js +0 -20
- package/dataflow/v2/entry.js +0 -11
- package/flowr-1.3.7.tgz +0 -0
- package/r-bridge/lang-4.x/ast/parser/xml/common/config.js +0 -16
- package/r-bridge/lang-4.x/ast/parser/xml/common/input-format.js +0 -42
- package/r-bridge/lang-4.x/ast/parser/xml/common/meta.js +0 -118
- package/r-bridge/lang-4.x/ast/parser/xml/common/xml-to-json.js +0 -58
- package/r-bridge/lang-4.x/ast/parser/xml/v1/data.js +0 -3
- package/r-bridge/lang-4.x/ast/parser/xml/v1/hooks.js +0 -136
- package/r-bridge/lang-4.x/ast/parser/xml/v1/index.js +0 -22
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/access.js +0 -107
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/control/if-then-else.js +0 -32
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/control/if-then.js +0 -46
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/control/index.js +0 -19
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/expression/expression.js +0 -65
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/expression/index.js +0 -18
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/functions/argument.js +0 -74
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/functions/call.js +0 -149
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/functions/definition.js +0 -60
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/functions/index.js +0 -20
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/functions/parameter.js +0 -64
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/index.js +0 -27
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/break.js +0 -24
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/for.js +0 -72
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/index.js +0 -22
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/next.js +0 -24
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/repeat.js +0 -42
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/while.js +0 -45
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/operators/binary.js +0 -162
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/operators/index.js +0 -20
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/operators/special.js +0 -24
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/operators/unary.js +0 -59
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/other/comment.js +0 -34
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/other/index.js +0 -18
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/other/line-directive.js +0 -55
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/structure/elements.js +0 -159
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/structure/index.js +0 -20
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/structure/root.js +0 -34
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/structure/single-element.js +0 -64
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/values/index.js +0 -20
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/values/number.js +0 -56
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/values/string.js +0 -41
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/values/symbol.js +0 -56
- package/r-bridge/lang-4.x/ast/parser/xml/v1/normalize.js +0 -30
- package/r-bridge/lang-4.x/ast/parser/xml/v2/data.js +0 -3
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/access.js +0 -95
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/expression.js +0 -99
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/functions/argument.js +0 -71
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/operators/binary.js +0 -30
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/operators/index.js +0 -19
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/operators/unary.js +0 -35
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/other/comment.js +0 -25
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/other/index.js +0 -18
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/other/line-directive.js +0 -38
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/root.js +0 -26
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/single-element.js +0 -63
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/values/index.js +0 -18
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/values/number.js +0 -46
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/values/string.js +0 -33
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/values/symbol.js +0 -63
- package/r-bridge/lang-4.x/ast/parser/xml/v2/normalize.js +0 -25
- package/util/summarizer/benchmark/benchmark-summarizer.js +0 -208
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizeExpression = void 0;
|
|
4
|
-
const normalize_1 = require("../normalize");
|
|
5
|
-
const log_1 = require("../../../../../../../util/log");
|
|
6
|
-
const xml_to_json_1 = require("../../common/xml-to-json");
|
|
7
|
-
const single_element_1 = require("./single-element");
|
|
8
|
-
const operators_1 = require("./operators");
|
|
9
|
-
const symbol_1 = require("./values/symbol");
|
|
10
|
-
const meta_1 = require("../../common/meta");
|
|
11
|
-
const access_1 = require("./access");
|
|
12
|
-
function handleSemicolons(tokens) {
|
|
13
|
-
let last = 0, i = 0;
|
|
14
|
-
const segments = [];
|
|
15
|
-
for (const token of tokens) {
|
|
16
|
-
if (token[xml_to_json_1.XML_NAME] === ";" /* RawRType.Semicolon */) {
|
|
17
|
-
segments.push(tokens.slice(last, i++));
|
|
18
|
-
last = i + 1;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
if (last < tokens.length) {
|
|
22
|
-
segments.push(tokens.slice(last, tokens.length));
|
|
23
|
-
}
|
|
24
|
-
return segments;
|
|
25
|
-
}
|
|
26
|
-
// TODO: guard with and without semicolon?
|
|
27
|
-
function normalizeExpression(config, tokens) {
|
|
28
|
-
if (tokens.length === 0) {
|
|
29
|
-
// if there are no tokens, there is no expression to parse, and we can skip it!
|
|
30
|
-
return [];
|
|
31
|
-
}
|
|
32
|
-
(0, log_1.expensiveTrace)(normalize_1.normalizeLog, () => `[expr] ${tokens.map(x => x[xml_to_json_1.XML_NAME]).join(', ')}`);
|
|
33
|
-
if (tokens.length > 1) {
|
|
34
|
-
// iterate over types, find all semicolons, and segment the tokens based on them.
|
|
35
|
-
// we could potentially optimize as not all expr may have semicolons but not for now
|
|
36
|
-
const segments = handleSemicolons(tokens);
|
|
37
|
-
if (segments.length > 1) {
|
|
38
|
-
normalize_1.normalizeLog.trace(`found ${segments.length} ';' segments`);
|
|
39
|
-
return segments.flatMap(segment => normalizeExpression(config, segment));
|
|
40
|
-
}
|
|
41
|
-
/*
|
|
42
|
-
* if splitOnSemicolon.length === 1, we can continue with the normal parsing, but we may have had a trailing semicolon, with this, it is removed as well.
|
|
43
|
-
* splitOnSemicolon.length === 0 is not possible, as we would have had an empty array before, split does not add elements.
|
|
44
|
-
*/
|
|
45
|
-
tokens = segments[0];
|
|
46
|
-
}
|
|
47
|
-
// const types = tokens.map(x => x[XML_NAME] as string)
|
|
48
|
-
return [normalizeElems(config, tokens)];
|
|
49
|
-
}
|
|
50
|
-
exports.normalizeExpression = normalizeExpression;
|
|
51
|
-
const todo = (...x) => { throw new Error('not implemented: ' + JSON.stringify(x)); };
|
|
52
|
-
/**
|
|
53
|
-
* Parses a single structure in the ast based on its type (e.g., a constant, function call, symbol, ...)
|
|
54
|
-
* @param config - The data used to normalize (see {@link NormalizeConfiguration})
|
|
55
|
-
* @param tokens - The non-empty list of tokens to parse
|
|
56
|
-
*/
|
|
57
|
-
function normalizeElems(config, tokens) {
|
|
58
|
-
const length = tokens.length;
|
|
59
|
-
if (length === 1) {
|
|
60
|
-
return (0, single_element_1.normalizeSingleToken)(config, tokens[0]);
|
|
61
|
-
}
|
|
62
|
-
else if (length === 2) {
|
|
63
|
-
return (0, operators_1.normalizeUnary)(config, tokens);
|
|
64
|
-
}
|
|
65
|
-
// otherwise, before we check for fixed-length constructs we have to check for the *second* element
|
|
66
|
-
// in case we have a function-call, access, ...
|
|
67
|
-
const second = (0, meta_1.getTokenType)(config.tokenMap, tokens[1]);
|
|
68
|
-
// TODO: use internal functions directly and not named if they can not be overwritten!
|
|
69
|
-
switch (second) {
|
|
70
|
-
case "(" /* RawRType.ParenLeft */:
|
|
71
|
-
return todo(tokens);
|
|
72
|
-
case "$" /* RawRType.Dollar */:
|
|
73
|
-
case "@" /* RawRType.At */:
|
|
74
|
-
case "[" /* RawRType.BracketLeft */:
|
|
75
|
-
case "LBB" /* RawRType.DoubleBracketLeft */:
|
|
76
|
-
return (0, access_1.normalizeAccess)(config, tokens, second);
|
|
77
|
-
}
|
|
78
|
-
switch (length) {
|
|
79
|
-
case 3: // TODO: for
|
|
80
|
-
return (0, symbol_1.tryNormalizeSymbolWithNamespace)(config, tokens)
|
|
81
|
-
?? (0, operators_1.tryNormalizeBinary)(config, tokens);
|
|
82
|
-
case 5:
|
|
83
|
-
return todo(tokens);
|
|
84
|
-
case 7:
|
|
85
|
-
return todo(tokens);
|
|
86
|
-
default:
|
|
87
|
-
return todo(tokens);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/*export function parseNodesWithUnknownType(data: ParserData, mappedWithName: NamedXmlBasedJson[]): (RNode | RDelimiter)[] {
|
|
91
|
-
const parsedNodes: (RNode | RDelimiter)[] = []
|
|
92
|
-
// used to indicate the new root node of this set of nodes
|
|
93
|
-
for(const elem of mappedWithName) {
|
|
94
|
-
const retrieved = tryNormalizeSingleNode(data, elem)
|
|
95
|
-
parsedNodes.push(retrieved)
|
|
96
|
-
}
|
|
97
|
-
return parsedNodes
|
|
98
|
-
}*/
|
|
99
|
-
//# sourceMappingURL=expression.js.map
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.tryToNormalizeArgument = void 0;
|
|
4
|
-
const input_format_1 = require("../../../common/input-format");
|
|
5
|
-
const meta_1 = require("../../../common/meta");
|
|
6
|
-
const log_1 = require("../../../../../../../../util/log");
|
|
7
|
-
const assert_1 = require("../../../../../../../../util/assert");
|
|
8
|
-
const single_element_1 = require("../single-element");
|
|
9
|
-
/**
|
|
10
|
-
* Either parses `[expr]` or `[SYMBOL_SUB, EQ_SUB, expr]` as an argument of a function call in R.
|
|
11
|
-
* Probably directly called by the function call parser as otherwise, we do not expect to find arguments.
|
|
12
|
-
*
|
|
13
|
-
* @param configuration - The data used for the normalization (see {@link NormalizeConfiguration})
|
|
14
|
-
* @param objs - Either `[expr]` or `[SYMBOL_FORMALS, EQ_FORMALS, expr]`
|
|
15
|
-
*
|
|
16
|
-
* @returns The parsed argument or `undefined` if the given object is not an argument.
|
|
17
|
-
*/
|
|
18
|
-
function tryToNormalizeArgument(configuration, objs) {
|
|
19
|
-
if (objs.length < 1 || objs.length > 3) {
|
|
20
|
-
log_1.log.warn(`Either [expr|value], [SYMBOL_SUB, EQ_SUB], or [SYMBOL_SUB, EQ_SUB, expr], but got: ${objs.map(o => JSON.stringify(o)).join(', ')}`);
|
|
21
|
-
return undefined;
|
|
22
|
-
}
|
|
23
|
-
const [first] = objs;
|
|
24
|
-
const symbolOrExpr = (0, meta_1.getTokenType)(configuration.tokenMap, first);
|
|
25
|
-
const { location, content } = (0, meta_1.retrieveMetaStructure)(configuration, first);
|
|
26
|
-
let parsedValue;
|
|
27
|
-
let name;
|
|
28
|
-
if (symbolOrExpr === "expr" /* RawRType.Expression */) {
|
|
29
|
-
name = undefined;
|
|
30
|
-
parsedValue = (0, single_element_1.normalizeSingleToken)(configuration, first);
|
|
31
|
-
}
|
|
32
|
-
else if (symbolOrExpr === "SYMBOL_SUB" /* RawRType.SymbolSub */ || symbolOrExpr === "STR_CONST" /* RawRType.StringConst */) {
|
|
33
|
-
name = {
|
|
34
|
-
type: "RSymbol" /* RType.Symbol */,
|
|
35
|
-
location,
|
|
36
|
-
content: symbolOrExpr === "STR_CONST" /* RawRType.StringConst */ ? content.slice(1, -1) : content,
|
|
37
|
-
namespace: undefined,
|
|
38
|
-
lexeme: content,
|
|
39
|
-
info: {
|
|
40
|
-
fullRange: location,
|
|
41
|
-
additionalTokens: [],
|
|
42
|
-
fullLexeme: content
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
parsedValue = normalizeWithValue(configuration, objs);
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
throw new input_format_1.XmlParseError(`expected symbol or expr for argument, yet received ${objs.map(o => JSON.stringify(o)).join(',')}`);
|
|
49
|
-
}
|
|
50
|
-
(0, assert_1.guard)(parsedValue !== undefined && parsedValue?.type !== "RDelimiter" /* RType.Delimiter */, () => `[argument] parsed value must not be undefined, yet: ${JSON.stringify(objs)}`);
|
|
51
|
-
return {
|
|
52
|
-
type: "RArgument" /* RType.Argument */,
|
|
53
|
-
location,
|
|
54
|
-
lexeme: content,
|
|
55
|
-
name,
|
|
56
|
-
value: parsedValue ?? undefined,
|
|
57
|
-
info: {
|
|
58
|
-
fullRange: location,
|
|
59
|
-
fullLexeme: content,
|
|
60
|
-
additionalTokens: []
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
exports.tryToNormalizeArgument = tryToNormalizeArgument;
|
|
65
|
-
function normalizeWithValue(data, [fst, eq, lst]) {
|
|
66
|
-
const eqType = (0, meta_1.getTokenType)(data.tokenMap, eq);
|
|
67
|
-
(0, assert_1.guard)(eqType === "EQ_SUB" /* RawRType.EqualSub */, () => `[arg-default] second element of parameter must be ${"EQ_FORMALS" /* RawRType.EqualFormals */}, but: ${JSON.stringify([fst, eq, lst])}`);
|
|
68
|
-
(0, assert_1.guard)(lst === undefined || (0, meta_1.getTokenType)(data.tokenMap, lst) === "expr" /* RawRType.Expression */, () => `[arg-default] third element of parameter must be an Expression or undefined (for 'x=') but: ${JSON.stringify([fst, eq, lst])}`);
|
|
69
|
-
return lst ? (0, single_element_1.normalizeSingleToken)(data, lst) : null;
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=argument.js.map
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.tryNormalizeBinary = void 0;
|
|
4
|
-
const meta_1 = require("../../../common/meta");
|
|
5
|
-
const single_element_1 = require("../single-element");
|
|
6
|
-
/**
|
|
7
|
-
* Parsing binary operations includes the pipe, even though the produced PIPE construct is not a binary operation,
|
|
8
|
-
* to ensure it is handled separately from the others (especially in the combination of a pipe bind)
|
|
9
|
-
*/
|
|
10
|
-
function tryNormalizeBinary(config, [lhs, operator, rhs]) {
|
|
11
|
-
const { location, content } = (0, meta_1.retrieveMetaStructure)(config, operator);
|
|
12
|
-
return {
|
|
13
|
-
type: "RFunctionCall" /* RType.FunctionCall */,
|
|
14
|
-
lexeme: config.currentLexeme ?? content,
|
|
15
|
-
location,
|
|
16
|
-
flavor: 'named',
|
|
17
|
-
functionName: {
|
|
18
|
-
type: "RSymbol" /* RType.Symbol */,
|
|
19
|
-
namespace: undefined,
|
|
20
|
-
location,
|
|
21
|
-
content,
|
|
22
|
-
lexeme: content,
|
|
23
|
-
info: {}
|
|
24
|
-
},
|
|
25
|
-
arguments: [(0, single_element_1.normalizeSingleToken)(config, lhs), (0, single_element_1.normalizeSingleToken)(config, rhs)],
|
|
26
|
-
info: {}
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
exports.tryNormalizeBinary = tryNormalizeBinary;
|
|
30
|
-
//# sourceMappingURL=binary.js.map
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./unary"), exports);
|
|
18
|
-
__exportStar(require("./binary"), exports);
|
|
19
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizeUnary = void 0;
|
|
4
|
-
const meta_1 = require("../../../common/meta");
|
|
5
|
-
const single_element_1 = require("../single-element");
|
|
6
|
-
/**
|
|
7
|
-
* Parses the construct as a unary op.
|
|
8
|
-
*
|
|
9
|
-
* @param config - The normalizer config
|
|
10
|
-
* @param operator - The operator token
|
|
11
|
-
* @param operand - The operand of the unary operator
|
|
12
|
-
*
|
|
13
|
-
* @returns The parsed unary op function call
|
|
14
|
-
*/
|
|
15
|
-
function normalizeUnary(config, [operator, operand]) {
|
|
16
|
-
const { location, content } = (0, meta_1.retrieveMetaStructure)(config, operator);
|
|
17
|
-
return {
|
|
18
|
-
type: "RFunctionCall" /* RType.FunctionCall */,
|
|
19
|
-
lexeme: config.currentLexeme ?? content,
|
|
20
|
-
location,
|
|
21
|
-
flavor: 'named',
|
|
22
|
-
functionName: {
|
|
23
|
-
type: "RSymbol" /* RType.Symbol */,
|
|
24
|
-
namespace: undefined,
|
|
25
|
-
location,
|
|
26
|
-
content,
|
|
27
|
-
lexeme: content,
|
|
28
|
-
info: {}
|
|
29
|
-
},
|
|
30
|
-
arguments: [(0, single_element_1.normalizeSingleToken)(config, operand)],
|
|
31
|
-
info: {}
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
exports.normalizeUnary = normalizeUnary;
|
|
35
|
-
//# sourceMappingURL=unary.js.map
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizeComment = void 0;
|
|
4
|
-
const meta_1 = require("../../../common/meta");
|
|
5
|
-
/**
|
|
6
|
-
* Normalize the given object as an R comment.
|
|
7
|
-
* This requires you to check the corresponding name beforehand.
|
|
8
|
-
*
|
|
9
|
-
* @param config - The normalizer config to use
|
|
10
|
-
* @param obj - The json object to extract the meta-information from
|
|
11
|
-
*/
|
|
12
|
-
function normalizeComment(config, obj) {
|
|
13
|
-
const { location, content } = (0, meta_1.retrieveMetaStructure)(config, obj);
|
|
14
|
-
// we trust the parser here
|
|
15
|
-
// guard(content.startsWith ('#'), 'comment must start with #')
|
|
16
|
-
return {
|
|
17
|
-
type: "RComment" /* RType.Comment */,
|
|
18
|
-
location,
|
|
19
|
-
content: content.slice(1),
|
|
20
|
-
lexeme: content,
|
|
21
|
-
info: {}
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
exports.normalizeComment = normalizeComment;
|
|
25
|
-
//# sourceMappingURL=comment.js.map
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./comment"), exports);
|
|
18
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizeLineDirective = void 0;
|
|
4
|
-
const meta_1 = require("../../../common/meta");
|
|
5
|
-
const LineDirectiveRegex = /^#line\s+(\d+)\s+"([^"]+)"\s*$/;
|
|
6
|
-
/**
|
|
7
|
-
* Normalize the given object as an R line directive (`#line <number> "<file>"`).
|
|
8
|
-
* This requires you to check the corresponding name beforehand.
|
|
9
|
-
* If the given object turns out to be no line directive, this returns a normal comment instead.
|
|
10
|
-
*
|
|
11
|
-
* @param config - The normalizer config to use
|
|
12
|
-
* @param obj - The json object to extract the meta-information from
|
|
13
|
-
*/
|
|
14
|
-
function normalizeLineDirective(config, obj) {
|
|
15
|
-
const { location, content } = (0, meta_1.retrieveMetaStructure)(config, obj);
|
|
16
|
-
const match = LineDirectiveRegex.exec(content);
|
|
17
|
-
if (match === null) {
|
|
18
|
-
return {
|
|
19
|
-
type: "RComment" /* RType.Comment */,
|
|
20
|
-
location,
|
|
21
|
-
content: content.slice(1),
|
|
22
|
-
lexeme: content,
|
|
23
|
-
info: {}
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
return {
|
|
28
|
-
type: "RLineDirective" /* RType.LineDirective */,
|
|
29
|
-
location,
|
|
30
|
-
line: parseInt(match[1]),
|
|
31
|
-
file: match[2],
|
|
32
|
-
lexeme: content,
|
|
33
|
-
info: {}
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
exports.normalizeLineDirective = normalizeLineDirective;
|
|
38
|
-
//# sourceMappingURL=line-directive.js.map
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizeRoot = void 0;
|
|
4
|
-
const input_format_1 = require("../../common/input-format");
|
|
5
|
-
const expression_1 = require("./expression");
|
|
6
|
-
const normalize_1 = require("../normalize");
|
|
7
|
-
function normalizeRoot(config, obj) {
|
|
8
|
-
const exprContent = (0, input_format_1.getKeyGuarded)(obj, "exprlist" /* RawRType.ExpressionList */);
|
|
9
|
-
let normalized = [];
|
|
10
|
-
// the children of an expression list are an array of expressions
|
|
11
|
-
if (config.children in exprContent) {
|
|
12
|
-
const children = (0, input_format_1.getKeyGuarded)(exprContent, config.children);
|
|
13
|
-
normalized = (0, expression_1.normalizeExpression)(config, children);
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
normalize_1.normalizeLog.debug('assume empty root');
|
|
17
|
-
}
|
|
18
|
-
return {
|
|
19
|
-
type: "RExpressionList" /* RType.ExpressionList */,
|
|
20
|
-
children: normalized,
|
|
21
|
-
lexeme: undefined,
|
|
22
|
-
info: {}
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
exports.normalizeRoot = normalizeRoot;
|
|
26
|
-
//# sourceMappingURL=root.js.map
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizeSingleToken = void 0;
|
|
4
|
-
const input_format_1 = require("../../common/input-format");
|
|
5
|
-
const expression_1 = require("./expression");
|
|
6
|
-
const values_1 = require("./values");
|
|
7
|
-
const string_1 = require("./values/string");
|
|
8
|
-
const symbol_1 = require("./values/symbol");
|
|
9
|
-
const assert_1 = require("../../../../../../../util/assert");
|
|
10
|
-
const other_1 = require("./other");
|
|
11
|
-
const line_directive_1 = require("./other/line-directive");
|
|
12
|
-
const meta_1 = require("../../common/meta");
|
|
13
|
-
const todo = (...x) => { throw new Error('not implemented: ' + JSON.stringify(x)); };
|
|
14
|
-
/**
|
|
15
|
-
* Parses a single structure in the ast based on its type (e.g., a string, a number, a symbol, ...)
|
|
16
|
-
*
|
|
17
|
-
* @param config - The data used by the parser (see {@link ParserData})
|
|
18
|
-
* @param token - The element to parse
|
|
19
|
-
*
|
|
20
|
-
* @returns The parsed element as an `RNode` or an `RDelimiter` if it is such.
|
|
21
|
-
*/
|
|
22
|
-
function normalizeSingleToken(config, token) {
|
|
23
|
-
const name = (0, meta_1.getTokenType)(config.tokenMap, token);
|
|
24
|
-
switch (name) {
|
|
25
|
-
case "(" /* RawRType.ParenLeft */:
|
|
26
|
-
case ")" /* RawRType.ParenRight */:
|
|
27
|
-
case "{" /* RawRType.BraceLeft */:
|
|
28
|
-
case "}" /* RawRType.BraceRight */:
|
|
29
|
-
return todo(name);
|
|
30
|
-
case "COMMENT" /* RawRType.Comment */:
|
|
31
|
-
return (0, other_1.normalizeComment)(config, token);
|
|
32
|
-
case "LINE_DIRECTIVE" /* RawRType.LineDirective */:
|
|
33
|
-
return (0, line_directive_1.normalizeLineDirective)(config, token);
|
|
34
|
-
case "exprlist" /* RawRType.ExpressionList */:
|
|
35
|
-
case "expr" /* RawRType.Expression */:
|
|
36
|
-
case "expr_or_assign_or_help" /* RawRType.ExprOfAssignOrHelp */: {
|
|
37
|
-
config.currentLexeme = token[config.content];
|
|
38
|
-
const res = (0, expression_1.normalizeExpression)(config, (0, input_format_1.getKeyGuarded)(token, config.children));
|
|
39
|
-
(0, assert_1.guard)(res.length === 1, () => `expected only one element in the expression list, yet received ${JSON.stringify(res)}`);
|
|
40
|
-
return res[0];
|
|
41
|
-
}
|
|
42
|
-
case "NUM_CONST" /* RawRType.NumericConst */:
|
|
43
|
-
return (0, values_1.normalizeNumber)(config, token);
|
|
44
|
-
case "STR_CONST" /* RawRType.StringConst */:
|
|
45
|
-
return (0, string_1.normalizeString)(config, token);
|
|
46
|
-
case "BREAK" /* RawRType.Break */:
|
|
47
|
-
return todo(name);
|
|
48
|
-
case "NEXT" /* RawRType.Next */:
|
|
49
|
-
return todo(name);
|
|
50
|
-
case "SYMBOL" /* RawRType.Symbol */:
|
|
51
|
-
case "SLOT" /* RawRType.Slot */:
|
|
52
|
-
case "NULL_CONST" /* RawRType.NullConst */: {
|
|
53
|
-
// TODO: optimize manually?
|
|
54
|
-
const symbol = (0, symbol_1.tryNormalizeSymbolNoNamespace)(config, token);
|
|
55
|
-
(0, assert_1.guard)(symbol !== undefined, () => `should have been parsed to a symbol but was ${JSON.stringify(symbol)}`);
|
|
56
|
-
return symbol;
|
|
57
|
-
}
|
|
58
|
-
default:
|
|
59
|
-
throw new input_format_1.XmlParseError(`unknown type ${name} for ${JSON.stringify(token)} in ${JSON.stringify(config)}`);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
exports.normalizeSingleToken = normalizeSingleToken;
|
|
63
|
-
//# sourceMappingURL=single-element.js.map
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./number"), exports);
|
|
18
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizeNumber = void 0;
|
|
4
|
-
const values_1 = require("../../../../../../values");
|
|
5
|
-
const meta_1 = require("../../../common/meta");
|
|
6
|
-
/**
|
|
7
|
-
* Normalize the given object as a R number (see {@link number2ts}), supporting booleans (see {@link boolean2ts}),
|
|
8
|
-
* and special values.
|
|
9
|
-
* This requires you to check the corresponding name beforehand.
|
|
10
|
-
*
|
|
11
|
-
* @param config - The configuration used by the normalizer (see {@link NormalizeConfiguration})
|
|
12
|
-
* @param obj - The json object to extract the meta-information from
|
|
13
|
-
*/
|
|
14
|
-
function normalizeNumber(config, obj) {
|
|
15
|
-
const { location, content } = (0, meta_1.retrieveMetaStructure)(config, obj);
|
|
16
|
-
const common = {
|
|
17
|
-
location,
|
|
18
|
-
lexeme: content,
|
|
19
|
-
info: {}
|
|
20
|
-
};
|
|
21
|
-
/* the special symbol */
|
|
22
|
-
if ((0, values_1.isNA)(content)) {
|
|
23
|
-
return {
|
|
24
|
-
...common,
|
|
25
|
-
namespace: undefined,
|
|
26
|
-
type: "RSymbol" /* RType.Symbol */,
|
|
27
|
-
content
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
else if ((0, values_1.isBoolean)(content)) {
|
|
31
|
-
return {
|
|
32
|
-
...common,
|
|
33
|
-
type: "RLogical" /* RType.Logical */,
|
|
34
|
-
content: (0, values_1.boolean2ts)(content)
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
return {
|
|
39
|
-
...common,
|
|
40
|
-
type: "RNumber" /* RType.Number */,
|
|
41
|
-
content: (0, values_1.number2ts)(content)
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
exports.normalizeNumber = normalizeNumber;
|
|
46
|
-
//# sourceMappingURL=number.js.map
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizeString = void 0;
|
|
4
|
-
const meta_1 = require("../../../common/meta");
|
|
5
|
-
const values_1 = require("../../../../../../values");
|
|
6
|
-
const assert_1 = require("../../../../../../../../util/assert");
|
|
7
|
-
/**
|
|
8
|
-
* Normalize the given object as a R string (see {@link string2ts}).
|
|
9
|
-
* This requires you to check the corresponding name beforehand.
|
|
10
|
-
*
|
|
11
|
-
* @param config - The configuration used by the normalizer
|
|
12
|
-
* @param obj - The json object to extract the meta-information from
|
|
13
|
-
*/
|
|
14
|
-
function normalizeString(config, obj) {
|
|
15
|
-
const { location, content } = (0, meta_1.retrieveMetaStructure)(config, obj);
|
|
16
|
-
// based on https://www.rdocumentation.org/packages/utils/versions/3.6.2/topics/getParseData we do not get strings with 1000 characters or more within the text field.
|
|
17
|
-
// therefore, we recover the full string from the surrounding expr lexeme field
|
|
18
|
-
let stringContent = content;
|
|
19
|
-
if (stringContent.startsWith('[')) { // something like "[9999 chars quoted with '"']"
|
|
20
|
-
// ... as they are not stored by the R parser post-processor
|
|
21
|
-
(0, assert_1.guard)(config.currentLexeme !== undefined, 'need cur. lexeme for too long strings');
|
|
22
|
-
stringContent = config.currentLexeme;
|
|
23
|
-
}
|
|
24
|
-
return {
|
|
25
|
-
type: "RString" /* RType.String */,
|
|
26
|
-
location,
|
|
27
|
-
content: (0, values_1.string2ts)(stringContent),
|
|
28
|
-
lexeme: stringContent,
|
|
29
|
-
info: {}
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
exports.normalizeString = normalizeString;
|
|
33
|
-
//# sourceMappingURL=string.js.map
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.tryNormalizeSymbolWithNamespace = exports.tryNormalizeSymbolNoNamespace = void 0;
|
|
4
|
-
const meta_1 = require("../../../common/meta");
|
|
5
|
-
const model_1 = require("../../../../../model");
|
|
6
|
-
const strings_1 = require("../../../../../../../../util/strings");
|
|
7
|
-
const xml_to_json_1 = require("../../../common/xml-to-json");
|
|
8
|
-
// remove backticks from symbol
|
|
9
|
-
function removeBackticks(content) {
|
|
10
|
-
return (0, strings_1.startAndEndsWith)(content, '`') ? content.substring(1, content.length - 1) : content;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Normalize the given object as an R symbol without namespace information.
|
|
14
|
-
* For the variant with namespace information, see {@link tryNormalizeSymbolWithNamespace}.
|
|
15
|
-
*
|
|
16
|
-
* @param config - The configuration used by the normalizer
|
|
17
|
-
* @param symbol - The json object to extract the symbol from
|
|
18
|
-
*
|
|
19
|
-
* @returns The parsed symbol or `undefined` if the given object is not a symbol.
|
|
20
|
-
*/
|
|
21
|
-
function tryNormalizeSymbolNoNamespace(config, symbol) {
|
|
22
|
-
const name = symbol[xml_to_json_1.XML_NAME];
|
|
23
|
-
if (!(0, model_1.isSymbol)(name)) {
|
|
24
|
-
return undefined;
|
|
25
|
-
}
|
|
26
|
-
const { location, content } = (0, meta_1.retrieveMetaStructure)(config, symbol);
|
|
27
|
-
return {
|
|
28
|
-
type: "RSymbol" /* RType.Symbol */,
|
|
29
|
-
namespace: undefined,
|
|
30
|
-
location,
|
|
31
|
-
content: removeBackticks(content),
|
|
32
|
-
lexeme: content,
|
|
33
|
-
info: {}
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
exports.tryNormalizeSymbolNoNamespace = tryNormalizeSymbolNoNamespace;
|
|
37
|
-
/**
|
|
38
|
-
* Normalize the given object as an R symbol without namespace information.
|
|
39
|
-
* For the variant without namespace information, see {@link tryNormalizeSymbolNoNamespace}.
|
|
40
|
-
*
|
|
41
|
-
* @param config - The configuration used by the normalizer
|
|
42
|
-
* @param namespace - The json object to extract the namespace from
|
|
43
|
-
* @param symbol - The json object to extract the symbol from
|
|
44
|
-
*
|
|
45
|
-
* @returns The parsed symbol (with populated namespace information) or `undefined` if the given object is not a symbol.
|
|
46
|
-
*/
|
|
47
|
-
function tryNormalizeSymbolWithNamespace(config, [namespace, , symbol]) {
|
|
48
|
-
const name = symbol[xml_to_json_1.XML_NAME];
|
|
49
|
-
if (!(0, model_1.isSymbol)(name)) {
|
|
50
|
-
return undefined;
|
|
51
|
-
}
|
|
52
|
-
const { location, content } = (0, meta_1.retrieveMetaStructure)(config, symbol);
|
|
53
|
-
return {
|
|
54
|
-
type: "RSymbol" /* RType.Symbol */,
|
|
55
|
-
namespace: namespace[config.content],
|
|
56
|
-
location,
|
|
57
|
-
content: removeBackticks(content),
|
|
58
|
-
lexeme: content,
|
|
59
|
-
info: {}
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
exports.tryNormalizeSymbolWithNamespace = tryNormalizeSymbolWithNamespace;
|
|
63
|
-
//# sourceMappingURL=symbol.js.map
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalize = exports.normalizeLog = void 0;
|
|
4
|
-
const log_1 = require("../../../../../../util/log");
|
|
5
|
-
const config_1 = require("../common/config");
|
|
6
|
-
const model_1 = require("../../../model");
|
|
7
|
-
const xml_to_json_1 = require("../common/xml-to-json");
|
|
8
|
-
const root_1 = require("./internal/root");
|
|
9
|
-
exports.normalizeLog = log_1.log.getSubLogger({ name: 'v2-normalize' });
|
|
10
|
-
/**
|
|
11
|
-
* The main entry point to normalize the given R ast (using v2, which desugars the AST to function-calls only).
|
|
12
|
-
*
|
|
13
|
-
* @param xmlString - The XML string obtained probably by {@link retrieveXmlFromRCode} to normalization and desugar.
|
|
14
|
-
* @param tokenMap - The token replacement map in effect by the XML parser
|
|
15
|
-
* @param getId - The function to be used to generate unique ids for the nodes of the ast. It is up to you to ensure that the ids are unique!
|
|
16
|
-
*
|
|
17
|
-
* @returns The normalized and decorated AST (i.e., as a doubly linked tree)
|
|
18
|
-
*/
|
|
19
|
-
async function normalize(xmlString, tokenMap, getId = (0, model_1.deterministicCountingIdGenerator)(0)) {
|
|
20
|
-
const config = { ...config_1.DEFAULT_XML_PARSER_CONFIG, tokenMap, currentLexeme: undefined };
|
|
21
|
-
const object = await (0, xml_to_json_1.xlm2jsonObject)(config, xmlString);
|
|
22
|
-
return (0, model_1.decorateAst)((0, root_1.normalizeRoot)(config, object), getId);
|
|
23
|
-
}
|
|
24
|
-
exports.normalize = normalize;
|
|
25
|
-
//# sourceMappingURL=normalize.js.map
|