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.cs33
1 files changed, 5 insertions, 28 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/BagofAnswers.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/BagofAnswers.cs
index c2bb0b7..4a4e052 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/BagofAnswers.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/BagofAnswers.cs
@@ -113,6 +113,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
113 } 113 }
114 } 114 }
115 115
116 // disable warning on l1, don't see how we can
117 // code this differently
118 #pragma warning disable 0168
119
116 /// <summary> 120 /// <summary>
117 /// For each result, unify the _freeVariables and unify bagArrayVariable with the associated bag. 121 /// For each result, unify the _freeVariables and unify bagArrayVariable with the associated bag.
118 /// </summary> 122 /// </summary>
@@ -127,27 +131,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
127 // No unbound free variables, so we only filled one bag. If empty, bagof fails. 131 // No unbound free variables, so we only filled one bag. If empty, bagof fails.
128 if (_findallBagArray.Count > 0) 132 if (_findallBagArray.Count > 0)
129 { 133 {
130// disable warning: don't see how we can code this differently short
131// of rewriting the whole thing
132#pragma warning disable 0168
133 foreach (bool l1 in bagArrayVariable.unify(_findallBagArray)) 134 foreach (bool l1 in bagArrayVariable.unify(_findallBagArray))
134 yield return false; 135 yield return false;
135#pragma warning restore 0168
136 } 136 }
137 } 137 }
138 else 138 else
139 { 139 {
140 foreach (KeyValuePair<object[], List<object>> valuesAndBag in _bagForFreeVariables) 140 foreach (KeyValuePair<object[], List<object>> valuesAndBag in _bagForFreeVariables)
141 { 141 {
142// disable warning: don't see how we can code this differently short
143// of rewriting the whole thing
144#pragma warning disable 0168
145 foreach (bool l1 in YP.unifyArrays(_freeVariables, valuesAndBag.Key)) 142 foreach (bool l1 in YP.unifyArrays(_freeVariables, valuesAndBag.Key))
146 { 143 {
147 foreach (bool l2 in bagArrayVariable.unify(valuesAndBag.Value)) 144 foreach (bool l2 in bagArrayVariable.unify(valuesAndBag.Value))
148 yield return false; 145 yield return false;
149 } 146 }
150#pragma warning restore 0168
151 // Debug: Should we free memory of the answers already returned? 147 // Debug: Should we free memory of the answers already returned?
152 } 148 }
153 } 149 }
@@ -161,15 +157,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
161 public IEnumerable<bool> result(object Bag) 157 public IEnumerable<bool> result(object Bag)
162 { 158 {
163 Variable bagArrayVariable = new Variable(); 159 Variable bagArrayVariable = new Variable();
164// disable warning: don't see how we can code this differently short
165// of rewriting the whole thing
166#pragma warning disable 0168
167 foreach (bool l1 in resultArray(bagArrayVariable)) 160 foreach (bool l1 in resultArray(bagArrayVariable))
168 { 161 {
169 foreach (bool l2 in YP.unify(Bag, ListPair.make((List<object>)bagArrayVariable.getValue()))) 162 foreach (bool l2 in YP.unify(Bag, ListPair.make((List<object>)bagArrayVariable.getValue())))
170 yield return false; 163 yield return false;
171 } 164 }
172#pragma warning restore 0168
173 } 165 }
174 166
175 /// <summary> 167 /// <summary>
@@ -181,9 +173,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
181 public IEnumerable<bool> resultSet(object Bag) 173 public IEnumerable<bool> resultSet(object Bag)
182 { 174 {
183 Variable bagArrayVariable = new Variable(); 175 Variable bagArrayVariable = new Variable();
184// disable warning: don't see how we can code this differently short
185// of rewriting the whole thing
186#pragma warning disable 0168
187 foreach (bool l1 in resultArray(bagArrayVariable)) 176 foreach (bool l1 in resultArray(bagArrayVariable))
188 { 177 {
189 List<object> bagArray = (List<object>)bagArrayVariable.getValue(); 178 List<object> bagArray = (List<object>)bagArrayVariable.getValue();
@@ -191,19 +180,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
191 foreach (bool l2 in YP.unify(Bag, ListPair.makeWithoutRepeatedTerms(bagArray))) 180 foreach (bool l2 in YP.unify(Bag, ListPair.makeWithoutRepeatedTerms(bagArray)))
192 yield return false; 181 yield return false;
193 } 182 }
194#pragma warning restore 0168
195 } 183 }
196 184
197 public static IEnumerable<bool> bagofArray 185 public static IEnumerable<bool> bagofArray
198 (object Template, object Goal, IEnumerable<bool> goalIterator, Variable bagArrayVariable) 186 (object Template, object Goal, IEnumerable<bool> goalIterator, Variable bagArrayVariable)
199 { 187 {
200 BagofAnswers bagOfAnswers = new BagofAnswers(Template, Goal); 188 BagofAnswers bagOfAnswers = new BagofAnswers(Template, Goal);
201// disable warning: don't see how we can code this differently short
202// of rewriting the whole thing
203#pragma warning disable 0168
204 foreach (bool l1 in goalIterator) 189 foreach (bool l1 in goalIterator)
205 bagOfAnswers.add(); 190 bagOfAnswers.add();
206#pragma warning restore 0168
207 return bagOfAnswers.resultArray(bagArrayVariable); 191 return bagOfAnswers.resultArray(bagArrayVariable);
208 } 192 }
209 193
@@ -211,12 +195,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
211 (object Template, object Goal, IEnumerable<bool> goalIterator, object Bag) 195 (object Template, object Goal, IEnumerable<bool> goalIterator, object Bag)
212 { 196 {
213 BagofAnswers bagOfAnswers = new BagofAnswers(Template, Goal); 197 BagofAnswers bagOfAnswers = new BagofAnswers(Template, Goal);
214// disable warning: don't see how we can code this differently short
215// of rewriting the whole thing
216#pragma warning disable 0168
217 foreach (bool l1 in goalIterator) 198 foreach (bool l1 in goalIterator)
218 bagOfAnswers.add(); 199 bagOfAnswers.add();
219#pragma warning restore 0168
220 return bagOfAnswers.result(Bag); 200 return bagOfAnswers.result(Bag);
221 } 201 }
222 202
@@ -224,14 +204,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
224 (object Template, object Goal, IEnumerable<bool> goalIterator, object Bag) 204 (object Template, object Goal, IEnumerable<bool> goalIterator, object Bag)
225 { 205 {
226 BagofAnswers bagOfAnswers = new BagofAnswers(Template, Goal); 206 BagofAnswers bagOfAnswers = new BagofAnswers(Template, Goal);
227// disable warning: don't see how we can code this differently short
228// of rewriting the whole thing
229#pragma warning disable 0168
230 foreach (bool l1 in goalIterator) 207 foreach (bool l1 in goalIterator)
231 bagOfAnswers.add(); 208 bagOfAnswers.add();
232#pragma warning restore 0168
233 return bagOfAnswers.resultSet(Bag); 209 return bagOfAnswers.resultSet(Bag);
234 } 210 }
211 #pragma warning restore 0168
235 212
236 /// <summary> 213 /// <summary>
237 /// A TermArrayEqualityComparer implements IEqualityComparer to compare two object arrays using YP.termEqual. 214 /// A TermArrayEqualityComparer implements IEqualityComparer to compare two object arrays using YP.termEqual.