/* <Parameter List> ::= <Parameter> <Parameter List Prime> */ bool SyntaxAnalyzer::ParameterList() { if(Parameter()) { ParameterListPrime(); return paramList; } else { // end of paramlist return paramList; } }
vector<ParameterNode*> Parser::ParameterList() { if(currenttoken->type == ParameterVariable || IsType(currenttoken) ) { ParameterNode * parameter =ParameterDeclaration(); vector<ParameterNode*> list =ParameterListPrime(); list.insert(list.begin(),parameter); return list; } else { vector<ParameterNode*> list; return list; } }
vector<ParameterNode*> Parser::ParameterListPrime() { if(currenttoken->type == Coma) { ConsumeToken(); ParameterNode* parameter=ParameterDeclaration(); vector<ParameterNode*> list=ParameterListPrime(); list.insert(list.begin(),parameter); return list; } else { vector<ParameterNode*> list; return list; } }