//**// void statementlists(){ if (lookahead == IF){ //分支语句 switchStatement(); } else if (lookahead == id){ //赋值语句 assignment(); } else if (lookahead == WHILE){ //while语句 loopStatement(); } else if (lookahead == input){ //输入语句 inputStatement(); } else if (lookahead == output){ //输出 outputStatement(); } else if (lookahead == call){ //函数调用 functioncall(); } else if (lookahead == var){ //变量定义 varDefinition(); } else if (lookahead == begin){ //复合语句 complexStatementlists(); } }
int main(){ inputStatement(stdin, CHUNK, '\n'); // read input advance(); // move to first symbol E(); if(!match(END)){ printf("\n Invalid Input\n"); } else{ int i; for (i = 0; i <= op_index; i += 1) { printf("%s ",output[i].lexeme); } } return 0; }
int main(int argc, char* argv[]) { if (argc != 1) { printf("Usage: ReversePolish\n"); return 1; } char* infix = inputStatement(CHUNK,'\n'); int i; if(!validate(infix)){ printf("invalid input\n"); } else{ generate_postfix(); for(i = 0; i <= postfix_index; i++){ printf("%s ",postfix[i].lexeme); } clear_Stack(); evaluate(); } return 0; }