void QEvalInstrucGenerator::appendEdgeQueryInstruc(std::queue<QEvalInstruc>& instrucQueue, const QueryData &qData, std::vector<bool> &qtClausePushed) { if (!qData.getQueryTarget().isBool()) { appendEdgeQueryOnePath(instrucQueue, qData, qData.getQueryTarget().getTarArgIdx(), qtClausePushed); } arg_idx_t target; bool finded = false; for (int i = 0; i < (int)qtClausePushed.size(); i++) { if (!qtClausePushed[i]) { target = *(qData.getQEvalClause(i)->inVarArgIdxSet.begin()); finded = true; } } while (finded) { appendEdgeQueryOnePath(instrucQueue, qData, target, qtClausePushed); finded = false; for (int i = 0; i < (int)qtClausePushed.size(); i++) { if (!qtClausePushed[i]) { target = *(qData.getQEvalClause(i)->inVarArgIdxSet.begin()); finded = true; } } } }