StatementGroupNode* ParserClass::StatementGroup() { StatementGroupNode *sgn = new StatementGroupNode(); while (true) { StatementNode *statement = Statement(); if (statement == NULL) { return sgn; } else { sgn->AddStatement(statement); } } }
StatementGroupNode * ParserClass::StatementGroup() { StatementGroupNode * sgn = new StatementGroupNode(); bool loop = true; while (loop) { StatementNode * sn = this->Statement(); if (sn == NULL) { loop = false; } else { sgn->AddStatement(sn); } } return sgn; }
StatementGroupNode * Parser::StatementGroup(){ StatementGroupNode * stategroup = new StatementGroupNode; while(true){ Token next_token = scan->PeekNextToken(); if(next_token.GetTokenType() == IDENTIFIER_TOKEN){ AssignmentStatementNode * asn = Assignment(); stategroup->AddStatement(asn); MSG("Adding a AssignmentStatementNode."); } else if(next_token.GetTokenType() == COUT_TOKEN){ CoutStatementNode * csn = Cout(); stategroup->AddStatement(csn); MSG("Adding a CoutStatementNode."); } else if(next_token.GetTokenType() == INT_TOKEN){ DeclarationStatementNode * dsn = Declaration(); stategroup->AddStatement(dsn); MSG("Adding a DeclarationStatementNode."); } else if(next_token.GetTokenType() == IF_TOKEN){ IfStatementNode * ifs = If(); stategroup->AddStatement(ifs); MSG("Adding a IfStatementNode."); } else if(next_token.GetTokenType() == WHILE_TOKEN){ WhileStatementNode * wfs = While(); stategroup->AddStatement(wfs); MSG("Adding a WhileStatementNode."); } else if(next_token.GetTokenType() == DO_TOKEN){ DoStatementNode * wfs = DoWhile(); stategroup->AddStatement(wfs); MSG("Adding a WhileStatementNode."); } else break; } return stategroup; }