大家应该注意到之前的代码不完整主要还是判断完指令后没有做处理,那是因为语法树还没定义,这期看看我们准备做个怎样的语法树。
首先,目标的语法树是个列表,里面包含了很多项,都是列表。每一项的格式为:
[<op>,<参数列表>]
很简单吧,比如对于if:
[if,<条件表达式,str>,<操作,list>]
对于del:
[del,<名称,str>]
那么还有一个问题就是关于列表的了。处理列表,其实就是链表,链表的新增与删除都很简单,malloc与free。Python就更直接了,必进Python本来就支持这一类型。
C语言先定义几个东西:
struct list{
struct list*next,
struct list*least,
void*data
};
struct str{
struct str*next,
struct str*least,
unsigned short data
};
然后就是一堆malloc与copy了。