You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
726 B
JavaScript

'use strict';
module.exports = function(body, options = {}) {
let expressionParser, parserOptions;
if (options.tracer != null) {
const pegjs = require("pegjs");
const fs = require("fs");
const path = require("path");
let grammar = fs.readFileSync(path.join(__dirname, "../src/expression.pegjs"), {encoding: "utf8"});
expressionParser = pegjs.generate(grammar, {
trace: true,
format: "commonjs",
dependencies: {
"reorderOperatorExpressions": path.join(__dirname, "./reorder-operator-expressions")
}
});
parserOptions = {
tracer: options.tracer
};
} else {
expressionParser = require("./expression");
parserOptions = {};
}
return expressionParser.parse(body, parserOptions);
}