const Lexer = require("./lexer"); const Parser = require("./parser"); const Resolver = require("./resolver"); const Compiler = require("./compiler"); module.exports = function oslo(source, context) { const lexer = new Lexer(); const tokens = lexer.scan(source); const parser = new Parser(tokens); const tree = parser.parse(); if (tree.error) { return tree; } const resolver = new Resolver(); const resolvedTree = resolver.resolve(tree, context); const util = require("util"); console.log(util.inspect(resolvedTree, { depth: null })); process.exit(); const compiler = new Compiler(tree); return compiler.compile(); };