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

12345678910111213141516171819
  1. const Lexer = require('./lexer')
  2. const Parser = require('./parser')
  3. const Compiler = require('./compiler')
  4. const util = require('util')
  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 compiler = new Compiler(tree, context)
  14. return compiler.compile()
  15. }