http://www.zengl.com/html/genlanmu/zenglbianchengyuyan/article-4.html
文章越来越不通俗,
需要花精力理解
int express()
{
Node_Type *nodes = AST_nodes.nodes;
int state = START;
int p=-1;
bool IsMidTim_Div = FALSE;
int tmpnode = -1;
while(state!=DOWN)
{
curnode++;
switch(state)
{
case START:
状态机1();
break;
case INID:
状态机2();
break;
case INASSIGN:
状态机3();
break;
case INPLUS_MINIS:
状态机4();
break;
case INTIME_DIVIDE:
状态机5();
break;
default:
myexit("syntax error");
break;
}//switch
}//while
return p;
}
按照原话,这个express函数可以说是整个zengl编程语言核心部分 最复杂,最难理解的 部分。
下一步,一个一个状态机分析。