pegjs-util
Version:
Utility Class for Peggy
19 lines (17 loc) • 658 B
JavaScript
var fs = require("fs")
var ASTY = require("asty")
var PEG = require("peggy")
var PEGUtil = require("./PEGUtil")
var asty = new ASTY()
var parser = PEG.generate(fs.readFileSync("sample.pegjs", "utf8"))
var result = PEGUtil.parse(parser, fs.readFileSync(process.argv[2], "utf8"), {
startRule: "start",
makeAST: function (line, column, offset, args) {
return asty.create.apply(asty, args).pos(line, column, offset)
}
})
if (result.error !== null)
console.log("ERROR: Parsing Failure:\n" +
PEGUtil.errorMessage(result.error, true).replace(/^/mg, "ERROR: "))
else
console.log(result.ast.dump().replace(/\n$/, ""))