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 529B

12345678910111213141516171819202122232425
  1. const Env = require('../src/env')
  2. const Evaluator = require('../src/evaluator')
  3. const Lexer = require('../src/lexer')
  4. const Parser = require('../src/parser')
  5. const scan = source => {
  6. const lexer = new Lexer()
  7. return lexer.scan(source)
  8. }
  9. const parse = source => {
  10. const parser = new Parser()
  11. return parser.parse(scan(source))
  12. }
  13. const evaluate = source => {
  14. const evaluator = new Evaluator()
  15. return evaluator.eval(parse(source), new Env())
  16. }
  17. module.exports = {
  18. evaluate: evaluate,
  19. parse: parse,
  20. scan: scan,
  21. }