void compileIfSt(void) { eat(KW_IF); compileCondition(); eat(KW_THEN); compileStatement(); if (lookAhead->tokenType == KW_ELSE) compileElseSt(); }
void compileIfSt(void) { assert("Parsing an if statement ...."); eat(KW_IF); compileCondition(); eat(KW_THEN); compileStatement(); if (lookAhead->tokenType == KW_ELSE) compileElseSt(); assert("If statement parsed ...."); }
void compileStatement(void) { switch (lookAhead->tokenType) { case TK_IDENT: compileAssignSt(); break; case KW_CALL: compileCallSt(); break; case KW_BEGIN: compileGroupSt(); break; case KW_IF: compileIfSt(); break; case KW_WHILE: compileWhileSt(); break; case KW_FOR: compileForSt(); break; // EmptySt needs to check FOLLOW tokens case SB_SEMICOLON: compileStatements2(); break; case KW_END: // eat(KW_END); // compileStatements2(); break; case KW_ELSE: compileElseSt(); break; // Error occurs default: error(ERR_INVALIDSTATEMENT, lookAhead->lineNo, lookAhead->colNo); break; } }