@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
34 lines • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.sliceDirectionParser = sliceDirectionParser;
exports.sliceCriterionParser = sliceCriterionParser;
exports.sliceCriteriaParser = sliceCriteriaParser;
const slice_direction_1 = require("../../../util/slice-direction");
/**
* Checks whether the given argument represents a slicing direction with an `f` suffix.
*/
function sliceDirectionParser(argument) {
const endBracket = argument.indexOf(')');
return argument[endBracket + 1] === 'f' ? slice_direction_1.SliceDirection.Forward : slice_direction_1.SliceDirection.Backward;
}
/**
* Parses a single slicing criterion from the given argument.
*/
function sliceCriterionParser(argument) {
if (argument?.startsWith('(') && argument.includes(')')) {
const endBracket = argument.indexOf(')');
return argument.slice(1, endBracket);
}
}
/**
* Parses multiple slicing criteria from the given argument.
*/
function sliceCriteriaParser(argument) {
if (argument?.startsWith('(') && argument.includes(')')) {
const endBracket = argument.indexOf(')');
const criteriaPart = argument.slice(1, endBracket);
const criteria = criteriaPart.split(';');
return criteria;
}
}
//# sourceMappingURL=slice-query-parser.js.map