だから私はベクトルを再帰的に構築しようとしています.これを見ると、私はそれをかなり間違っていると思い始めます. 次のコードは、各反復の結果を含むベクトルを返しますか、それとも、各反復で実際には再帰呼び出しで構築されない新しいベクトルを作成するだけですか? 私が間違っている場合、再帰的にベクトルを作成するにはどうすればよいですか...建設的な助けをよろしくお願いします!
std::vector<ParameterClass> recursiveParser :: parseParamList()
{
std::vector<ParameterClass> paramVector;
if (lexicator->getCurrentToken()->getTokenType() == STRING) {
paramVector.push_back(ParameterClass(*lexicator->getCurrentToken()));
lexicator->advance();
parseParamList();
} else if (lexicator->getCurrentToken()->getTokenType() == ID) {
paramVector.push_back(ParameterClass(*lexicator->getCurrentToken()));
lexicator->advance();
parseParamList();
} else {
// so as to not fail in Expression, i need to check to see that there is a
// left paren indicating that there should be an expression
if (lexicator->getCurrentToken()->getTokenType() == LEFT_PAREN) {
paramVector.push_back(ParameterClass(parseExpression()));
lexicator->advance();
parseParamList();
}
}
return paramVector;
}