def test_ast_single_statement(self): self.assertEqual( map_tree_to_values(ast(''' = a 5 ''')), [['=', 'a', '5']] )
def test_sexp_def_function(self): self.assertEqual( map_tree_to_values(ast(''' def test + 5 5 ''')[0]), ['def', 'test', [], 'int', ['+','5', '5']] )
def test_sexp_def_function(self): self.assertEqual( map_tree_to_values(ast(''' (c-def main () void (prn "hello")) ''')[0]), ['c-def', 'main', [], 'void', ['prn','"hello"']] )
def test_ast_block(self): self.assertEqual( map_tree_to_values(ast(''' c-def test return 5 ''')), [['c-def', 'test', [], 'void', ['return', '5']]] )
def test_lexp_def_function(self): a = map_tree_to_values(ast(''' c-def main prn "hello" ''')[0]) self.assertEqual( a, ['c-def', 'main', [], 'void', ['prn','"hello"']] )
def test_lexp_cond(self): self.assertEqual( map_tree_to_values(ast(''' cond (> 1 0) 1 (< 1 0) 0 else -1 ''')[0]), [ 'cond', [['>', '1', '0'], '1'], [['<', '1', '0'], '0'], ['else', '-1'] ] )
def test_ast_empty(self): self.assertEqual( ast(''' '''), [] )
def parse(text): return escape(ast(text))