Example #1
0
 def test_basics(self):
     code = """
     (set! x 3)
     (+ x 2)
     (if y p q)
     (define a (if (= 2 3) (* 3 3) (* 4 4)))
     """
     tokens = tokenize(code)
     actT = []
     while tokens:
         actT.append(parse(tokens))
     expT = [['set!', 'x', 3],
             ['+', 'x', 2],
             ['if', 'y', 'p', 'q'],
             ['define', 'a', 
                 ['if',
                     ['=', 2, 3],
                     ['*', 3, 3],
                     ['*', 4, 4]]]]
     self.assertEqual(expT, actT)
Example #2
0
 def test_empty_expression(self):
     code = '()'
     tokens = tokenize(code)
     self.assertEqual(tokens, ['(', ')'])
Example #3
0
 def test_expression_with_constant(self):
     code = '(set! x 23)'
     tokens = tokenize(code)
     self.assertEqual(tokens,
                     ['(', 'set!', 'x', '23', ')'])
Example #4
0
 def test_set_expression(self):
     code = '(+ x y)'
     tokens = tokenize(code)
     self.assertEqual(tokens, ['(', '+', 'x', 'y', ')'])