Lisp格式到C格式的转换
- Lisp的函数调用格式为: (函数名 参数1 参数2 … 参数n)
- C的函数调用格式为:函数名(参数1, 参数2, …, 参数n)
- 现有五个整数的二元函数add、sub、mul、div、mod和一些使用这些函数的Lisp格式表达式,请实现一个程序转换器,将这些Lisp格式表达式转成C格式的表达式,如下表。
首先考虑的是,需要将操作符(add等)和操作数(1,2…)得到。
先把表达式两端无用括号去掉,然后以空格分隔成数组,并且记录(和)的个数来判断当前是否为一个完整的操作数(可能是单独的一个数或一个完整的表达式如 ( add 1 1 ))。
def split_s(ss):
pass
'''
add 1 1 => ["add", "1", "1"]
add ( add 1 1 ) ( sub 1 5 ) => ["add", "( add 1 1