@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
31 lines • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toUnnamedArgument = toUnnamedArgument;
exports.wrapArgumentsUnnamed = wrapArgumentsUnnamed;
const range_1 = require("../../../../../../util/range");
const r_function_call_1 = require("../../../../../../r-bridge/lang-4.x/ast/model/nodes/r-function-call");
const type_1 = require("../../../../../../r-bridge/lang-4.x/ast/model/type");
const voidRange = (0, range_1.rangeFrom)(-1, -1, -1, -1);
function toUnnamedArgument(node, idMap) {
if (node === undefined) {
return r_function_call_1.EmptyArgument;
}
const arg = {
type: type_1.RType.Argument,
lexeme: node.lexeme ?? '',
// is this correct?
location: node.location ?? voidRange,
info: {
...node.info,
id: node.info.id + '-arg'
},
name: undefined,
value: node
};
idMap.set(arg.info.id, node);
return arg;
}
function wrapArgumentsUnnamed(nodes, idMap) {
return nodes.map(n => n === r_function_call_1.EmptyArgument || n?.type === type_1.RType.Argument ? n : toUnnamedArgument(n, idMap));
}
//# sourceMappingURL=make-argument.js.map