fs = require('fs');
lex = require('./lex.js');
parse = require('./parse.js');
function debugExpr(expr)
{
const tokens = new lex.TokenStream(expr);
//console.log(tokens.getPrettyTokenList());
const parser = new parse.Parser(tokens);
const result = parser.statements();
if (result.error)
{
console.log("Error: " + result.error.msg + " on line " + result.error.line + " char " + result.error.pos);
let relevent = expr.substring(Math.max(0, result.error.inputPos - 50), result.error.inputPos + 1).trim();
const parts = relevent.split("\n");
relevent = parts[parts.length - 1];
console.log(relevent);
console.log(" ".repeat(Math.max(0, relevent.length - 1)) + "^");
}
else
{
console.format(parse.getPrettyAST(result));
}
}
debugExpr(fs.readFileSync(process.argv[2], "utf8"));