const Compiler = require('../src/compiler') const Env = require('../src/env') const Evaluator = require('../src/evaluator') const Lexer = require('../src/lexer') const Parser = require('../src/parser') const scan = source => { const lexer = new Lexer() return lexer.scan(source) } const parse = source => { const parser = new Parser() return parser.parse(scan(source)) } const evaluate = source => { const evaluator = new Evaluator() return evaluator.eval(parse(source), new Env()) } const compile = source => { const compiler = new Compiler() return compiler.compile(evaluate(source)) } module.exports = { compile: compile, evaluate: evaluate, parse: parse, scan: scan, }