UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

49 lines 1.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.normalizedAstToJson = normalizedAstToJson; exports.normalizedAstToQuads = normalizedAstToQuads; exports.printNormalizedAstToMermaid = printNormalizedAstToMermaid; exports.printNormalizedAstToMermaidUrl = printNormalizedAstToMermaidUrl; const json_1 = require("../../util/json"); const quads_1 = require("../../util/quads"); const ast_1 = require("../../util/mermaid/ast"); /** Should work with larger things as well */ function normalizedAstToJson(ast) { // we never serialize the idmap, as it just duplicates the ast, additionally we now miss the full-lexeme to further safe memory return JSON.stringify({ ...ast.ast, idMap: undefined }, (k, v) => { if (k === 'fullLexeme') { return undefined; } return (0, json_1.jsonReplacer)(k, v); }); } /** * Normalized AST to quads serialization this does not have multi-file support * @see {@link serialize2quads} * @see {@link QuadSerializationConfiguration} * @see {@link normalizedAstToMermaid} * @see {@link normalizedAstToMermaidUrl} * @see {@link printNormalizedAstToMermaidUrl} */ function normalizedAstToQuads(ast, config) { return (0, quads_1.serialize2quads)(ast.ast.files[0].root, config); } /** * Serialize the normalized AST to mermaid format * @see {@link normalizedAstToMermaid} * @see {@link normalizedAstToMermaidUrl} * @see {@link printNormalizedAstToMermaidUrl} */ function printNormalizedAstToMermaid(ast) { return (0, ast_1.normalizedAstToMermaid)(ast.ast); } /** * Serialize the normalized AST to a mermaid URL * @see {@link normalizedAstToMermaid} * @see {@link normalizedAstToMermaidUrl} * @see {@link printNormalizedAstToMermaid} */ function printNormalizedAstToMermaidUrl(ast) { return (0, ast_1.normalizedAstToMermaidUrl)(ast.ast); } //# sourceMappingURL=normalize-printer.js.map