aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/BagofAnswers.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/BagofAnswers.cs')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/BagofAnswers.cs28
1 files changed, 28 insertions, 0 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/BagofAnswers.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/BagofAnswers.cs
index 70c1b5a..c52adb1 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/BagofAnswers.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/BagofAnswers.cs
@@ -127,19 +127,27 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
127 // No unbound free variables, so we only filled one bag. If empty, bagof fails. 127 // No unbound free variables, so we only filled one bag. If empty, bagof fails.
128 if (_findallBagArray.Count > 0) 128 if (_findallBagArray.Count > 0)
129 { 129 {
130 // disable warning on l1, don't see how we can
131 // code this differently
132 #pragma warning disable 0168
130 foreach (bool l1 in bagArrayVariable.unify(_findallBagArray)) 133 foreach (bool l1 in bagArrayVariable.unify(_findallBagArray))
131 yield return false; 134 yield return false;
135 #pragma warning restore 0168
132 } 136 }
133 } 137 }
134 else 138 else
135 { 139 {
136 foreach (KeyValuePair<object[], List<object>> valuesAndBag in _bagForFreeVariables) 140 foreach (KeyValuePair<object[], List<object>> valuesAndBag in _bagForFreeVariables)
137 { 141 {
142 // disable warning on l1 and l2, don't see how we can
143 // code this differently
144 #pragma warning disable 0168
138 foreach (bool l1 in YP.unifyArrays(_freeVariables, valuesAndBag.Key)) 145 foreach (bool l1 in YP.unifyArrays(_freeVariables, valuesAndBag.Key))
139 { 146 {
140 foreach (bool l2 in bagArrayVariable.unify(valuesAndBag.Value)) 147 foreach (bool l2 in bagArrayVariable.unify(valuesAndBag.Value))
141 yield return false; 148 yield return false;
142 } 149 }
150 #pragma warning restore 0168
143 // Debug: Should we free memory of the answers already returned? 151 // Debug: Should we free memory of the answers already returned?
144 } 152 }
145 } 153 }
@@ -153,11 +161,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
153 public IEnumerable<bool> result(object Bag) 161 public IEnumerable<bool> result(object Bag)
154 { 162 {
155 Variable bagArrayVariable = new Variable(); 163 Variable bagArrayVariable = new Variable();
164 // disable warning on l1, don't see how we can
165 // code this differently
166 #pragma warning disable 0168
156 foreach (bool l1 in resultArray(bagArrayVariable)) 167 foreach (bool l1 in resultArray(bagArrayVariable))
157 { 168 {
158 foreach (bool l2 in YP.unify(Bag, ListPair.make((List<object>)bagArrayVariable.getValue()))) 169 foreach (bool l2 in YP.unify(Bag, ListPair.make((List<object>)bagArrayVariable.getValue())))
159 yield return false; 170 yield return false;
160 } 171 }
172 #pragma warning restore 0168
161 } 173 }
162 174
163 /// <summary> 175 /// <summary>
@@ -169,6 +181,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
169 public IEnumerable<bool> resultSet(object Bag) 181 public IEnumerable<bool> resultSet(object Bag)
170 { 182 {
171 Variable bagArrayVariable = new Variable(); 183 Variable bagArrayVariable = new Variable();
184 // disable warning on l1, don't see how we can
185 // code this differently
186 #pragma warning disable 0168
172 foreach (bool l1 in resultArray(bagArrayVariable)) 187 foreach (bool l1 in resultArray(bagArrayVariable))
173 { 188 {
174 List<object> bagArray = (List<object>)bagArrayVariable.getValue(); 189 List<object> bagArray = (List<object>)bagArrayVariable.getValue();
@@ -176,14 +191,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
176 foreach (bool l2 in YP.unify(Bag, ListPair.makeWithoutRepeatedTerms(bagArray))) 191 foreach (bool l2 in YP.unify(Bag, ListPair.makeWithoutRepeatedTerms(bagArray)))
177 yield return false; 192 yield return false;
178 } 193 }
194 #pragma warning restore 0168
179 } 195 }
180 196
181 public static IEnumerable<bool> bagofArray 197 public static IEnumerable<bool> bagofArray
182 (object Template, object Goal, IEnumerable<bool> goalIterator, Variable bagArrayVariable) 198 (object Template, object Goal, IEnumerable<bool> goalIterator, Variable bagArrayVariable)
183 { 199 {
184 BagofAnswers bagOfAnswers = new BagofAnswers(Template, Goal); 200 BagofAnswers bagOfAnswers = new BagofAnswers(Template, Goal);
201 // disable warning on l1, don't see how we can
202 // code this differently
203 #pragma warning disable 0168
185 foreach (bool l1 in goalIterator) 204 foreach (bool l1 in goalIterator)
186 bagOfAnswers.add(); 205 bagOfAnswers.add();
206 #pragma warning restore 0168
187 return bagOfAnswers.resultArray(bagArrayVariable); 207 return bagOfAnswers.resultArray(bagArrayVariable);
188 } 208 }
189 209
@@ -191,8 +211,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
191 (object Template, object Goal, IEnumerable<bool> goalIterator, object Bag) 211 (object Template, object Goal, IEnumerable<bool> goalIterator, object Bag)
192 { 212 {
193 BagofAnswers bagOfAnswers = new BagofAnswers(Template, Goal); 213 BagofAnswers bagOfAnswers = new BagofAnswers(Template, Goal);
214 // disable warning on l1, don't see how we can
215 // code this differently
216 #pragma warning disable 0168
194 foreach (bool l1 in goalIterator) 217 foreach (bool l1 in goalIterator)
195 bagOfAnswers.add(); 218 bagOfAnswers.add();
219 #pragma warning restore 0168
196 return bagOfAnswers.result(Bag); 220 return bagOfAnswers.result(Bag);
197 } 221 }
198 222
@@ -200,8 +224,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
200 (object Template, object Goal, IEnumerable<bool> goalIterator, object Bag) 224 (object Template, object Goal, IEnumerable<bool> goalIterator, object Bag)
201 { 225 {
202 BagofAnswers bagOfAnswers = new BagofAnswers(Template, Goal); 226 BagofAnswers bagOfAnswers = new BagofAnswers(Template, Goal);
227 // disable warning on l1, don't see how we can
228 // code this differently
229 #pragma warning disable 0168
203 foreach (bool l1 in goalIterator) 230 foreach (bool l1 in goalIterator)
204 bagOfAnswers.add(); 231 bagOfAnswers.add();
232 #pragma warning restore 0168
205 return bagOfAnswers.resultSet(Bag); 233 return bagOfAnswers.resultSet(Bag);
206 } 234 }
207 235