这次课设在前面实验的基础上差不多从里到外的重写了一遍。前前后后课余时间弄了快一个月。大多数时间花在设计数据结构和debug上。
链接见文末
运行界面展示
举个文法栗子
H->S
S->void main ( ) { L }
S->Q
L->L ; Q
L->Q
Q->if ( B ) { L }
Q->if ( B ) { L } else { L }
Q->while ( B ) { L }
Q->do { L } while ( B ) ;
Q->T M ;
T->int
M->M , id
M->id
Q->A
A->id = E ;
E->E + E
E->E * E
E->E - E
E->E / E
E->- E
E->( E )
E->id
B->B || B
B->B && B
B->! B
B->( B )
B->id relop id
B->id
分析C语言代码块:
while(a < b)
{
if (c < d)
{
x = y + z;
}
}
记事本内容(分析结果):
还有分析的中间结果:
项目集族:
代码(赠baogao)
所有文件如下图:
传送门
提取码:vucu