A templating language that looks like Lisp and compiles to HTML
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.js 653B

1234567891011121314151617181920212223242526
  1. const Lexer = require("./lexer");
  2. const Parser = require("./parser");
  3. const Resolver = require("./resolver");
  4. const Compiler = require("./compiler");
  5. module.exports = function oslo(source, context) {
  6. const lexer = new Lexer();
  7. const tokens = lexer.scan(source);
  8. const parser = new Parser(tokens);
  9. const tree = parser.parse();
  10. if (tree.error) {
  11. return tree;
  12. }
  13. const resolver = new Resolver();
  14. const resolvedTree = resolver.resolve(tree, context);
  15. const util = require("util");
  16. console.log(util.inspect(resolvedTree, { depth: null }));
  17. process.exit();
  18. const compiler = new Compiler(tree);
  19. return compiler.compile();
  20. };