一个简单的C语言编译器(28) bat<<"link "<<file<<".obj"<<endl; bat.close(); } return 0;}
文法:1: D->@()S. 程序->主函数2: S->@=E;. 赋值语句3: S->{W}. 组合语句4: S->i(G)S. if语句5: S->i(G)SeS. if-else语句6: S->w(G)S. while语句7: S->zL;. 变量定义8: S->@(E);. 函数调用9: W->WS. 多条语句列表10: W->S. 语句列表11: L->@. 变量名列表12: L->L,@. 多个变量名列表13: G->G&M. 逻辑表达式14: G->M.15: M->E>E. 关系表达式16: M->!M. 逻辑非表达式17: M->(G). 带括号的逻辑表达式18: E->E+T. 加法表达式19: E->T.20: T->T*F. 乘法表达式21: T->F.22: F->(E). 带括号的算术表达式23: F->@. 变量表达式24: F->n. 数字表达式示例代码#import system.outmain(){ int i; int s1,s2,s3; i=100; while(i<1000){ s1=i/100; s2=i/10%10; s3=i%10; if(s1<s2&&s2>s3) out(i); i=i+1; }}