const Env = require('./env') const Evaluator = require('./evaluator') const Lexer = require('./lexer') const OsloError = require('./osloError') const Parser = require('./parser') module.exports = function oslo(source, context) { const lexer = new Lexer() const tokens = lexer.scan(source) const parser = new Parser() const tree = parser.parse(tokens) if (tree.error) { return tree.error } const evaluator = new Evaluator() const evaluatedTree = evaluator.eval(tree, new Env()) if (evaluatedTree.constructor == OsloError) { return evaluatedTree } return '' }