const Compiler = require("../src/compiler"); const Lexer = require("../src/lexer"); const Parser = require("../src/parser"); const Resolver = require("../src/resolver"); const scan = source => { const lexer = new Lexer(); return lexer.scan(source); }; const parse = source => { const parser = new Parser(scan(source)); return parser.parse(); }; const resolve = (source, context) => { const resolver = new Resolver(); return resolver.resolve(parse(source), context); }; const compile = (source, context) => { const compiler = new Compiler(parse(source), context); return compiler.compile(); }; module.exports = { scan: scan, parse: parse, compile: compile, resolve: resolve }; console.log( require("util").inspect(resolve("(p :class pClass)", { pClass: "lorem" }), { depth: null }) );