12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- const test = require('tape')
- const helpers = require('./helpers')
-
- const AST = require('../src/ast')
-
- test('compiles numbers', t => {
- t.plan(1)
-
- const result = helpers.compile('5')
-
- t.equal(result, '5')
- })
-
- test('compiles strings', t => {
- t.plan(1)
-
- const result = helpers.compile('"hello world"')
-
- t.equal(result, 'hello world')
- })
-
- test('compiles core function applications', t => {
- t.plan(4)
-
- let result = helpers.compile('(+ 10 8)')
- t.equal(result, '18')
-
- result = helpers.compile('(- 7 3)')
- t.equal(result, '4')
-
- result = helpers.compile('(* 9 3)')
- t.equal(result, '27')
-
- result = helpers.compile('(/ 10 2)')
- t.equal(result, '5')
- })
-
- test('compiles lambda expressions in the function position', t => {
- t.plan(2)
-
- let result = helpers.compile('((lambda (x) (+ x 1)) 2)')
- t.equal(result, '3')
-
- result = helpers.compile('((lambda (x y) (+ x y)) 2 3)')
- t.equal(result, '5')
- })
|