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.

helpers.js 822B

12345678910111213141516171819202122232425262728293031323334353637
  1. const Compiler = require("../src/compiler");
  2. const Lexer = require("../src/lexer");
  3. const Parser = require("../src/parser");
  4. const Resolver = require("../src/resolver");
  5. const scan = source => {
  6. const lexer = new Lexer();
  7. return lexer.scan(source);
  8. };
  9. const parse = source => {
  10. const parser = new Parser(scan(source));
  11. return parser.parse();
  12. };
  13. const resolve = (source, context) => {
  14. const resolver = new Resolver();
  15. return resolver.resolve(parse(source), context);
  16. };
  17. const compile = (source, context) => {
  18. const compiler = new Compiler(parse(source), context);
  19. return compiler.compile();
  20. };
  21. module.exports = {
  22. scan: scan,
  23. parse: parse,
  24. compile: compile,
  25. resolve: resolve
  26. };
  27. console.log(
  28. require("util").inspect(resolve("(p :class pClass)", { pClass: "lorem" }), {
  29. depth: null
  30. })
  31. );