void QTreeValidator::genVarArgTypeList(QueryData &queryData, std::vector<std::string>& decSynList, std::vector<DeclarationEntry*>& decList, std::vector<std::string>& decImplList) { std::vector<DecType> varArgTypeList; std::vector<DeclarationEntry*>::const_iterator decIter = decList.begin(); while (decIter != decList.end()) { DecType decType; DeclarationEntry *de = *decIter; switch (de->getDesignEntity()) { case DE_stmt: decType = STMT; break; case DE_assign: decType = ASSIGN; break; case DE_if: decType = IF; break; case DE_while: decType = WHILE; break; case DE_variable: decType = VAR; break; case DE_procedure: decType = PROC; break; case DE_constant: break; case DE_prog_line: decType = STMT; break; case DE_call: decType = CALL; break; default: ; assert(false); } if (de->getDesignEntity() == DE_constant) { decImplList.push_back(de->getSynonym()); } else { decSynList.push_back(de->getSynonym()); varArgTypeList.push_back(decType); } decIter++; } queryData.setVarDecTypeList(varArgTypeList); }