UNPKG

eggtended-js

Version:

A extended version of the Egg programming language from the Eloquent Javascript book.

30 lines (25 loc) 710 B
const { Value, Word, Apply, Regex } = require("../interp/ast.js"); const utils = require("../utils.js"); const json2AST = tree => { let obj = null; if (tree.type == "apply") { obj = new Apply(tree); obj.operator = json2AST(tree.operator); obj.args = tree.args.map(arg => json2AST(arg)); } else if (tree.type == "word") { obj = new Word(tree); obj.name = tree.name; } else if (tree.type == "value") { obj = new Value(tree); } else if (tree.type == "regex") { obj = new Regex(tree); obj.body = tree.body; obj.flags = tree.flags; } else { throw new SyntaxError(`Unrecognized token ${utils.ins(tree)}`); } return obj; }; module.exports = { json2AST };