block statement instead of progn).
(+ (+ 1 2)
(* 3 4)
(+ 5
(* 6 7)))
This evaluate to (+ 3 12 47), which is 62.
['(', '+', '(', '+', 1, 2, ')', '(', '*', 3, 4, ')', '(', '+', 5, '(', '*', 6, 7, ')', ')', ')', EOF]
['+',
['+', 1, 2],
['*', 3, 4],
['+', 5,
['*', 6, 7]
]
]
code = '''
(block
(function fib (n)
(if (< n 2)
1
(+ (fib (- n 1))
(fib (- n 2))
)
)
)
(set x 0)
(while (< x 10)
(block
(output x (fib x))
(set x (+ x 1))
)
)
)
'''