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.

core.js 697B

1234567891011121314
  1. const AST = require('./ast')
  2. module.exports = {
  3. '+': (a, b) => new AST.Number({ value: a.value + b.value }),
  4. '-': (a, b) => new AST.Number({ value: a.value - b.value }),
  5. '*': (a, b) => new AST.Number({ value: a.value * b.value }),
  6. '/': (a, b) => new AST.Number({ value: a.value / b.value }),
  7. '=': (a, b) => new AST.Boolean({ value: a.value === b.value }),
  8. '>': (a, b) => new AST.Boolean({ value: a.value > b.value }),
  9. '<': (a, b) => new AST.Boolean({ value: a.value < b.value }),
  10. '>=': (a, b) => new AST.Boolean({ value: a.value >= b.value }),
  11. '<=': (a, b) => new AST.Boolean({ value: a.value <= b.value }),
  12. 'list': (...args) => { return new AST.List({ elements: args }) },
  13. }