Skip to content

Commit

Permalink
Added the once predicate
Browse files Browse the repository at this point in the history
  • Loading branch information
fairlight1337 committed Oct 12, 2016
1 parent 94de9cb commit c324edd
Showing 1 changed file with 30 additions and 14 deletions.
44 changes: 30 additions & 14 deletions src/gdaplanner/Prolog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -268,21 +268,37 @@ namespace gdaplanner {
}
}
} else if(exQueryBound.match("(not ?a)", mapResolution)) {
if(solPrior.index() == -1) {
Expression exA = mapResolution["?a"];
Solution solTemp;

try {
solTemp = this->unify(exA, solPrior, bdgBindings);
} catch(SolutionsExhausted seException) {
solTemp.setValid(false);
}
if(solPrior.index() == -1) {
Expression exA = mapResolution["?a"];
Solution solTemp;

if(!solTemp.valid()) {
solResult = Solution();
solResult.index() = 0;
}
}
try {
solTemp = this->unify(exA, solPrior, bdgBindings);
} catch(SolutionsExhausted seException) {
solTemp.setValid(false);
}

if(!solTemp.valid()) {
solResult = Solution();
solResult.index() = 0;
}
}
} else if(exQueryBound.match("(once ?a)", mapResolution)) {
if(solPrior.index() == -1) {
Expression exA = mapResolution["?a"];
Solution solTemp;

try {
solTemp = this->unify(exA, solPrior, bdgBindings);
} catch(SolutionsExhausted seException) {
solTemp.setValid(false);
}

if(solTemp.valid()) {
solResult = solTemp;
solResult.index() = 0;
}
}
} else if(exQueryBound.match("(1- ?value ?newvalue)", mapResolution)) {
Expression exValue = mapResolution["?value"];
Expression exNewValue = mapResolution["?newvalue"];
Expand Down

0 comments on commit c324edd

Please sign in to comment.