UNPKG

@eagleoutice/flowr-dev

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

27 lines 1.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.signatureParameterSpec = signatureParameterSpec; exports.matchArgumentsToSignature = matchArgumentsToSignature; exports.argumentForParameter = argumentForParameter; const linker_1 = require("../../dataflow/internal/linker"); /** the {@link pMatch} parameter spec of a *known* signature: every formal maps to itself as its own target */ function signatureParameterSpec(signature) { const spec = {}; for (const p of signature) { spec[p.name] = p.name; } return spec; } /** * {@link pMatch|Matches} a call's `args` against a *known* signature (typically from the signature database via * `PackageSignatureSource.functions(pkg)`), returning per parameter name the id(s) bound to it, e.g. * `matchArgumentsToSignature(ggplotCall.args, ggplotSignature).get('data')`. */ function matchArgumentsToSignature(args, signature) { return (0, linker_1.pMatch)(args, signatureParameterSpec(signature)); } /** the id(s) {@link matchArgumentsToSignature} binds to a single `parameter`, `undefined` if nothing is */ function argumentForParameter(args, signature, parameter) { return matchArgumentsToSignature(args, signature).get(parameter); } //# sourceMappingURL=signature-match.js.map