Changeset 24 for cpp/f8-to-f1/conv_f8tof1.cpp
- Timestamp:
- 06/28/09 19:40:32 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
cpp/f8-to-f1/conv_f8tof1.cpp
r23 r24 189 189 prodIter != this->productions.end(); prodIter++) { 190 190 vector<SubProduction> *subproductions = &(prodIter->second->subproductions); 191 for (int i = 0; i < subproductions->size(); i++) { 192 if (subproductions->at(i).actions.size() == 0) { 193 subproductions->erase(subproductions->begin() + i); 191 for (vector<SubProduction>::iterator i = subproductions->begin(); i != subproductions->end(); /*nothing*/) { 192 if ((*i).actions.size() == 0) { 193 i = subproductions->erase(i); 194 } else { 195 i++; 194 196 } 195 197 } … … 213 215 subProdIter != subproductions->end(); subProdIter++) { 214 216 SubProduction *sp = &(*subProdIter); 215 for (int actionIter = 0; actionIter < sp->actions.size(); actionIter++) { 216 ActionStrP *actionstrp = &(sp->actions.at(actionIter)); 217 if (actionstrp->action != NULL) { 217 for (vector<ActionStrP>::iterator actionIter = sp->actions.begin(); 218 actionIter != sp->actions.end(); /*nothing*/) { 219 bool deleted = false; 220 if ((*actionIter).action != NULL) { 218 221 vector<SString>::iterator result = find(emptyProductionNames.begin(), emptyProductionNames.end(), 219 actionstrp->action->name);222 (*actionIter).action->name); 220 223 if (result != emptyProductionNames.end()) { //emptyProductionNames contains the action name 221 sp->actions.erase(sp->actions.begin() + actionIter); 222 } 224 actionIter = sp->actions.erase(actionIter); 225 deleted = true; 226 } 227 } 228 if (!deleted) { 229 actionIter++; 223 230 } 224 231 } … … 702 709 subProdIter != prodIter->second->subproductions.end(); subProdIter++) { 703 710 SubProduction subProduction = *subProdIter; 704 for (int i = 0; i < subProduction.actions.size(); i++) { 705 if (subProduction.actions.at(i).action == NULL) { 706 subProduction.actions.erase(subProduction.actions.begin() + i); 711 for (vector<ActionStrP>::iterator i = subProduction.actions.begin(); 712 i != subProduction.actions.end(); /*nothing*/) { 713 if ((*i).action == NULL) { 714 i = subProduction.actions.erase(i); 715 } else { 716 i++; 707 717 } 708 718 }
Note: See TracChangeset
for help on using the changeset viewer.