aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Api/Runtime
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api/Runtime')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/BagofAnswers.cs28
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/FindallAnswers.cs8
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor1.cs9
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor2.cs8
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor3.cs8
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Parser.cs13
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Variable.cs4
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YP.cs35
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YPCompiler.cs63
9 files changed, 146 insertions, 30 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
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/FindallAnswers.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/FindallAnswers.cs
index 28709e1..fbb173e 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/FindallAnswers.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/FindallAnswers.cs
@@ -81,8 +81,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
81 public static IEnumerable<bool> findall(object Template, IEnumerable<bool> goal, object Bag) 81 public static IEnumerable<bool> findall(object Template, IEnumerable<bool> goal, object Bag)
82 { 82 {
83 FindallAnswers findallAnswers = new FindallAnswers(Template); 83 FindallAnswers findallAnswers = new FindallAnswers(Template);
84 // disable warning on l1, don't see how we can
85 // code this differently
86 #pragma warning disable 0168
84 foreach (bool l1 in goal) 87 foreach (bool l1 in goal)
85 findallAnswers.add(); 88 findallAnswers.add();
89 #pragma warning restore 0168
86 return findallAnswers.result(Bag); 90 return findallAnswers.result(Bag);
87 } 91 }
88 92
@@ -95,8 +99,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
95 public static List<object> findallArray(object Template, IEnumerable<bool> goal) 99 public static List<object> findallArray(object Template, IEnumerable<bool> goal)
96 { 100 {
97 FindallAnswers findallAnswers = new FindallAnswers(Template); 101 FindallAnswers findallAnswers = new FindallAnswers(Template);
102 // disable warning on l1, don't see how we can
103 // code this differently
104 #pragma warning disable 0168
98 foreach (bool l1 in goal) 105 foreach (bool l1 in goal)
99 findallAnswers.add(); 106 findallAnswers.add();
107 #pragma warning restore 0168
100 return findallAnswers.resultArray(); 108 return findallAnswers.resultArray();
101 } 109 }
102 } 110 }
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor1.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor1.cs
index 3c0c1c4..69fbeee 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor1.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor1.cs
@@ -57,14 +57,23 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
57 Functor1 argFunctor = (Functor1)arg; 57 Functor1 argFunctor = (Functor1)arg;
58 if (_name.Equals(argFunctor._name)) 58 if (_name.Equals(argFunctor._name))
59 { 59 {
60 // disable warning on l1, don't see how we can
61 // code this differently
62 #pragma warning disable 0168
60 foreach (bool l1 in YP.unify(_arg1, argFunctor._arg1)) 63 foreach (bool l1 in YP.unify(_arg1, argFunctor._arg1))
61 yield return false; 64 yield return false;
65 #pragma warning restore 0168
62 } 66 }
63 } 67 }
64 else if (arg is Variable) 68 else if (arg is Variable)
65 { 69 {
70 // disable warning on l1, don't see how we can
71 // code this differently
72 #pragma warning disable 0168
66 foreach (bool l1 in ((Variable)arg).unify(this)) 73 foreach (bool l1 in ((Variable)arg).unify(this))
67 yield return false; 74 yield return false;
75 #pragma warning restore 0168
76
68 } 77 }
69 } 78 }
70 79
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor2.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor2.cs
index 596b763..7e4f27d 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor2.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor2.cs
@@ -59,17 +59,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
59 Functor2 argFunctor = (Functor2)arg; 59 Functor2 argFunctor = (Functor2)arg;
60 if (_name.Equals(argFunctor._name)) 60 if (_name.Equals(argFunctor._name))
61 { 61 {
62 // disable warning on l1, don't see how we can
63 // code this differently
64 #pragma warning disable 0168
62 foreach (bool l1 in YP.unify(_arg1, argFunctor._arg1)) 65 foreach (bool l1 in YP.unify(_arg1, argFunctor._arg1))
63 { 66 {
64 foreach (bool l2 in YP.unify(_arg2, argFunctor._arg2)) 67 foreach (bool l2 in YP.unify(_arg2, argFunctor._arg2))
65 yield return false; 68 yield return false;
66 } 69 }
70 #pragma warning restore 0168
67 } 71 }
68 } 72 }
69 else if (arg is Variable) 73 else if (arg is Variable)
70 { 74 {
75 // disable warning on l1, don't see how we can
76 // code this differently
77 #pragma warning disable 0168
71 foreach (bool l1 in ((Variable)arg).unify(this)) 78 foreach (bool l1 in ((Variable)arg).unify(this))
72 yield return false; 79 yield return false;
80 #pragma warning restore 0168
73 } 81 }
74 } 82 }
75 83
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor3.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor3.cs
index 041cceb..6ef8327 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor3.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Functor3.cs
@@ -61,6 +61,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
61 Functor3 argFunctor = (Functor3)arg; 61 Functor3 argFunctor = (Functor3)arg;
62 if (_name.Equals(argFunctor._name)) 62 if (_name.Equals(argFunctor._name))
63 { 63 {
64 // disable warning on l1, l2, l3 don't see how we can
65 // code this differently
66 #pragma warning disable 0168
64 foreach (bool l1 in YP.unify(_arg1, argFunctor._arg1)) 67 foreach (bool l1 in YP.unify(_arg1, argFunctor._arg1))
65 { 68 {
66 foreach (bool l2 in YP.unify(_arg2, argFunctor._arg2)) 69 foreach (bool l2 in YP.unify(_arg2, argFunctor._arg2))
@@ -69,12 +72,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
69 yield return false; 72 yield return false;
70 } 73 }
71 } 74 }
75 #pragma warning restore 0168
72 } 76 }
73 } 77 }
74 else if (arg is Variable) 78 else if (arg is Variable)
75 { 79 {
80 // disable warning on l1, don't see how we can
81 // code this differently
82 #pragma warning disable 0168
76 foreach (bool l1 in ((Variable)arg).unify(this)) 83 foreach (bool l1 in ((Variable)arg).unify(this))
77 yield return false; 84 yield return false;
85 #pragma warning restore 0168
78 } 86 }
79 } 87 }
80 88
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Parser.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Parser.cs
index 105b556..e9dd8f1 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Parser.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Parser.cs
@@ -44,6 +44,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
44 yield return false; 44 yield return false;
45 } 45 }
46 46
47 // disable warning about unused variables: the following code
48 // is infested with it.
49 #pragma warning disable 0168, 0219
50
47 // Debug: Hand-modify this central predicate to do tail recursion. 51 // Debug: Hand-modify this central predicate to do tail recursion.
48 public static IEnumerable<bool> read_tokens(object arg1, object arg2, object arg3) 52 public static IEnumerable<bool> read_tokens(object arg1, object arg2, object arg3)
49 { 53 {
@@ -188,7 +192,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
188 // Compiler output follows. 192 // Compiler output follows.
189 193
190 class YPInnerClass { } 194 class YPInnerClass { }
191 static Type getDeclaringClass() { return typeof(YPInnerClass).DeclaringType; } 195 // static Type getDeclaringClass() { return typeof(YPInnerClass).DeclaringType; }
192 196
193 public static IEnumerable<bool> parseInput(object TermList) 197 public static IEnumerable<bool> parseInput(object TermList)
194 { 198 {
@@ -224,10 +228,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
224 if (YP.termEqual(Term, Atom.a(@"end_of_file"))) 228 if (YP.termEqual(Term, Atom.a(@"end_of_file")))
225 { 229 {
226 yield break; 230 yield break;
227 goto cutIf1; 231 // unreachable code:
232 // goto cutIf1;
228 } 233 }
229 yield return false; 234 yield return false;
230 cutIf1: 235 // cutIf1:
231 { } 236 { }
232 } 237 }
233 } 238 }
@@ -4452,6 +4457,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
4452 { } 4457 { }
4453 } 4458 }
4454 } 4459 }
4455 4460 #pragma warning restore 0168
4456 } 4461 }
4457} 4462}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Variable.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Variable.cs
index 2b5b0f1..8e2aa7e 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Variable.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/Variable.cs
@@ -92,8 +92,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
92 } 92 }
93 else 93 else
94 { 94 {
95 // disable warning on l1, don't see how we can
96 // code this differently
97 #pragma warning disable 0168
95 foreach (bool l1 in YP.unify(this, arg)) 98 foreach (bool l1 in YP.unify(this, arg))
96 yield return false; 99 yield return false;
100 #pragma warning restore 0168
97 } 101 }
98 } 102 }
99 103
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YP.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YP.cs
index 74704aa..f0e8147 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YP.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YP.cs
@@ -572,6 +572,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
572 572
573 Variable Name = new Variable(); 573 Variable Name = new Variable();
574 Variable ArgList = new Variable(); 574 Variable ArgList = new Variable();
575 // disable warning on l1, don't see how we can
576 // code this differently
577 #pragma warning disable 0168
575 foreach (bool l1 in new ListPair(Name, ArgList).unify(List)) 578 foreach (bool l1 in new ListPair(Name, ArgList).unify(List))
576 { 579 {
577 object[] args = ListPair.toArray(ArgList); 580 object[] args = ListPair.toArray(ArgList);
@@ -585,6 +588,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
585 588
586 return YP.unify(Term, Functor.make((Atom)YP.getValue(Name), args)); 589 return YP.unify(Term, Functor.make((Atom)YP.getValue(Name), args));
587 } 590 }
591 #pragma warning restore 0168
588 592
589 return YP.fail(); 593 return YP.fail();
590 } 594 }
@@ -597,11 +601,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
597 601
598 if (!(Term is Variable)) 602 if (!(Term is Variable))
599 { 603 {
604 // disable warning on l1, don't see how we can
605 // code this differently
606 #pragma warning disable 0168
600 foreach (bool l1 in YP.unify(FunctorName, getFunctorName(Term))) 607 foreach (bool l1 in YP.unify(FunctorName, getFunctorName(Term)))
601 { 608 {
602 foreach (bool l2 in YP.unify(Arity, getFunctorArgs(Term).Length)) 609 foreach (bool l2 in YP.unify(Arity, getFunctorArgs(Term).Length))
603 yield return false; 610 yield return false;
604 } 611 }
612 #pragma warning restore 0168
605 } 613 }
606 else 614 else
607 throw new NotImplementedException("Debug: must finish functor/3"); 615 throw new NotImplementedException("Debug: must finish functor/3");
@@ -621,8 +629,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
621 if (argNumberInt >= 1 && argNumberInt <= termArgs.Length) 629 if (argNumberInt >= 1 && argNumberInt <= termArgs.Length)
622 { 630 {
623 // The first ArgNumber is at 1, not 0. 631 // The first ArgNumber is at 1, not 0.
632 // disable warning on l1, don't see how we can
633 // code this differently
634 #pragma warning disable 0168
624 foreach (bool l1 in YP.unify(Value, termArgs[argNumberInt - 1])) 635 foreach (bool l1 in YP.unify(Value, termArgs[argNumberInt - 1]))
625 yield return false; 636 yield return false;
637 #pragma warning restore 0168
626 } 638 }
627 } 639 }
628 } 640 }
@@ -814,8 +826,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
814 object[] args = new object[] { Priority, Specifier, Operator }; 826 object[] args = new object[] { Priority, Specifier, Operator };
815 foreach (object[] answer in _operatorTable) 827 foreach (object[] answer in _operatorTable)
816 { 828 {
829 // disable warning on l1, don't see how we can
830 // code this differently
831 #pragma warning disable 0168
817 foreach (bool l1 in YP.unifyArrays(args, answer)) 832 foreach (bool l1 in YP.unifyArrays(args, answer))
818 yield return false; 833 yield return false;
834 #pragma warning restore 0168
819 } 835 }
820 } 836 }
821 837
@@ -847,12 +863,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
847 int afterInt = atomAtom._name.Length - (beforeInt + lengthInt); 863 int afterInt = atomAtom._name.Length - (beforeInt + lengthInt);
848 if (afterInt >= 0) 864 if (afterInt >= 0)
849 { 865 {
866 // disable warning on l1, don't see how we can
867 // code this differently
868 #pragma warning disable 0168
850 foreach (bool l1 in YP.unify(After, afterInt)) 869 foreach (bool l1 in YP.unify(After, afterInt))
851 { 870 {
852 foreach (bool l2 in YP.unify 871 foreach (bool l2 in YP.unify
853 (Sub_atom, Atom.a(atomAtom._name.Substring(beforeInt, lengthInt)))) 872 (Sub_atom, Atom.a(atomAtom._name.Substring(beforeInt, lengthInt))))
854 yield return false; 873 yield return false;
855 } 874 }
875 #pragma warning restore 0168
856 } 876 }
857 } 877 }
858 878
@@ -1201,9 +1221,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
1201 if (arity == 2 && (name == Atom.a(",") || name == Atom.a(";") || name == Atom.DOT)) 1221 if (arity == 2 && (name == Atom.a(",") || name == Atom.a(";") || name == Atom.DOT))
1202 return false; 1222 return false;
1203 // Use the same mapping to static predicates in YP as the compiler. 1223 // Use the same mapping to static predicates in YP as the compiler.
1224 // disable warning on l1, don't see how we can
1225 // code this differently
1226 #pragma warning disable 0168
1204 foreach (bool l1 in YPCompiler.functorCallYPFunctionName(name, arity, new Variable())) 1227 foreach (bool l1 in YPCompiler.functorCallYPFunctionName(name, arity, new Variable()))
1205 return false; 1228 return false;
1206 // Debug: Do we need to check if name._module is null? 1229 // Debug: Do we need to check if name._module is null?
1230 #pragma warning restore 0168
1207 return true; 1231 return true;
1208 } 1232 }
1209 1233
@@ -1342,9 +1366,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
1342 1366
1343 foreach (NameArity key in _predicatesStore.Keys) 1367 foreach (NameArity key in _predicatesStore.Keys)
1344 { 1368 {
1369 // disable warning on l1, don't see how we can
1370 // code this differently
1371 #pragma warning disable 0168
1345 foreach (bool l1 in YP.unify 1372 foreach (bool l1 in YP.unify
1346 (new Functor2(Atom.SLASH, key._name, key._arity), NameSlashArity)) 1373 (new Functor2(Atom.SLASH, key._name, key._arity), NameSlashArity))
1347 yield return false; 1374 yield return false;
1375 #pragma warning restore 0168
1348 } 1376 }
1349 } 1377 }
1350 1378
@@ -1414,7 +1442,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
1414 /// <returns></returns> 1442 /// <returns></returns>
1415 public static void script_event(object script_event, object script_params) 1443 public static void script_event(object script_event, object script_params)
1416 { 1444 {
1417 string function = ((Atom)YP.getValue(script_event))._name; 1445 // string function = ((Atom)YP.getValue(script_event))._name;
1418 object[] array = ListPair.toArray(script_params); 1446 object[] array = ListPair.toArray(script_params);
1419 if (array == null) 1447 if (array == null)
1420 return; // YP.fail(); 1448 return; // YP.fail();
@@ -1600,11 +1628,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
1600 if (_exception != null) 1628 if (_exception != null)
1601 { 1629 {
1602 bool didUnify = false; 1630 bool didUnify = false;
1631 // disable warning on l1, don't see how we can
1632 // code this differently
1633 #pragma warning disable 0168
1603 foreach (bool l1 in YP.unify(_exception._term, Catcher)) 1634 foreach (bool l1 in YP.unify(_exception._term, Catcher))
1604 { 1635 {
1605 didUnify = true; 1636 didUnify = true;
1606 yield return false; 1637 yield return false;
1607 } 1638 }
1639 #pragma warning restore 0168
1640
1608 if (!didUnify) 1641 if (!didUnify)
1609 throw _exception; 1642 throw _exception;
1610 } 1643 }
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YPCompiler.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YPCompiler.cs
index c2040c9..d6115ce 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YPCompiler.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YPCompiler.cs
@@ -209,14 +209,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
209 object[] functorArgs = YP.getFunctorArgs(Term); 209 object[] functorArgs = YP.getFunctorArgs(Term);
210 210
211 Variable pred = new Variable(); 211 Variable pred = new Variable();
212 // disable warning on l1, don't see how we can
213 // code this differently
214 #pragma warning disable 0168
212 foreach (bool l1 in ((CompilerState)State)._pred.match 215 foreach (bool l1 in ((CompilerState)State)._pred.match
213 (new object[] { functorName, functorArgs.Length, pred, Atom.a("det") })) 216 (new object[] { functorName, functorArgs.Length, pred, Atom.a("det") }))
214 { 217 {
215 if (CompilerState.isNoneOut(YP.getFunctorArgs(pred.getValue()))) 218 if (CompilerState.isNoneOut(YP.getFunctorArgs(pred.getValue())))
216 { 219 {
217 return true; 220 return true;
218 } 221 }
219 } 222 }
223 #pragma warning restore 0168
220 224
221 return false; 225 return false;
222 } 226 }
@@ -228,14 +232,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
228 object[] functorArgs = YP.getFunctorArgs(Term); 232 object[] functorArgs = YP.getFunctorArgs(Term);
229 233
230 Variable pred = new Variable(); 234 Variable pred = new Variable();
235 // disable warning on l1, don't see how we can
236 // code this differently
237 #pragma warning disable 0168
231 foreach (bool l1 in ((CompilerState)State)._pred.match 238 foreach (bool l1 in ((CompilerState)State)._pred.match
232 (new object[] { functorName, functorArgs.Length, pred, Atom.a("semidet") })) 239 (new object[] { functorName, functorArgs.Length, pred, Atom.a("semidet") }))
233 { 240 {
234 if (CompilerState.isNoneOut(YP.getFunctorArgs(pred.getValue()))) 241 if (CompilerState.isNoneOut(YP.getFunctorArgs(pred.getValue())))
235 { 242 {
236 return true; 243 return true;
237 } 244 }
238 } 245 }
246 #pragma warning restore 0168
239 247
240 return false; 248 return false;
241 } 249 }
@@ -275,6 +283,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
275 } 283 }
276 } 284 }
277 285
286 // disable warning unused variables, the following code is
287 // infested with it.
288 #pragma warning disable 0168, 0219
289
278 /// <summary> 290 /// <summary>
279 /// Use makeFunctionPseudoCode, convertFunctionCSharp and compileAnonymousFunction 291 /// Use makeFunctionPseudoCode, convertFunctionCSharp and compileAnonymousFunction
280 /// to return an anonymous YP.IClause for the Head and Body of a rule clause. 292 /// to return an anonymous YP.IClause for the Head and Body of a rule clause.
@@ -3939,12 +3951,12 @@ namespace Temporary {
3939 YP.nl(); 3951 YP.nl();
3940 convertStatementListCSharp(RestStatements, Level); 3952 convertStatementListCSharp(RestStatements, Level);
3941 return; 3953 return;
3942 goto cutIf1; 3954 // goto cutIf1;
3943 } 3955 }
3944 convertStatementListCSharp(RestStatements, Level); 3956 convertStatementListCSharp(RestStatements, Level);
3945 return; 3957 return;
3946 cutIf1: 3958 // cutIf1:
3947 { } 3959 // { }
3948 } 3960 }
3949 } 3961 }
3950 { 3962 {
@@ -4111,12 +4123,12 @@ namespace Temporary {
4111 YP.write(Atom.a(@", ")); 4123 YP.write(Atom.a(@", "));
4112 convertArgListCSharp(Tail); 4124 convertArgListCSharp(Tail);
4113 return; 4125 return;
4114 goto cutIf1; 4126 // goto cutIf1;
4115 } 4127 }
4116 convertArgListCSharp(Tail); 4128 convertArgListCSharp(Tail);
4117 return; 4129 return;
4118 cutIf1: 4130 // cutIf1:
4119 { } 4131 // { }
4120 } 4132 }
4121 } 4133 }
4122 } 4134 }
@@ -4266,13 +4278,13 @@ namespace Temporary {
4266 YP.put_code(Code); 4278 YP.put_code(Code);
4267 convertStringCodesCSharp(RestCodes); 4279 convertStringCodesCSharp(RestCodes);
4268 return; 4280 return;
4269 goto cutIf1; 4281 // goto cutIf1;
4270 } 4282 }
4271 YP.put_code(Code); 4283 YP.put_code(Code);
4272 convertStringCodesCSharp(RestCodes); 4284 convertStringCodesCSharp(RestCodes);
4273 return; 4285 return;
4274 cutIf1: 4286 // cutIf1:
4275 { } 4287 // { }
4276 } 4288 }
4277 } 4289 }
4278 } 4290 }
@@ -4623,12 +4635,12 @@ namespace Temporary {
4623 YP.write(Atom.a(@", ")); 4635 YP.write(Atom.a(@", "));
4624 convertArgListJavascript(Tail); 4636 convertArgListJavascript(Tail);
4625 return; 4637 return;
4626 goto cutIf1; 4638 // goto cutIf1;
4627 } 4639 }
4628 convertArgListJavascript(Tail); 4640 convertArgListJavascript(Tail);
4629 return; 4641 return;
4630 cutIf1: 4642 // cutIf1:
4631 { } 4643 // { }
4632 } 4644 }
4633 } 4645 }
4634 } 4646 }
@@ -4777,7 +4789,7 @@ namespace Temporary {
4777 YP.put_code(Code); 4789 YP.put_code(Code);
4778 convertStringCodesJavascript(RestCodes); 4790 convertStringCodesJavascript(RestCodes);
4779 return; 4791 return;
4780 goto cutIf1; 4792 // goto cutIf1;
4781 } 4793 }
4782 if (YP.termEqual(Code, 92)) 4794 if (YP.termEqual(Code, 92))
4783 { 4795 {
@@ -4785,13 +4797,13 @@ namespace Temporary {
4785 YP.put_code(Code); 4797 YP.put_code(Code);
4786 convertStringCodesJavascript(RestCodes); 4798 convertStringCodesJavascript(RestCodes);
4787 return; 4799 return;
4788 goto cutIf1; 4800 // goto cutIf1;
4789 } 4801 }
4790 YP.put_code(Code); 4802 YP.put_code(Code);
4791 convertStringCodesJavascript(RestCodes); 4803 convertStringCodesJavascript(RestCodes);
4792 return; 4804 return;
4793 cutIf1: 4805 // cutIf1:
4794 { } 4806 // { }
4795 } 4807 }
4796 } 4808 }
4797 } 4809 }
@@ -5420,12 +5432,12 @@ namespace Temporary {
5420 YP.write(Atom.a(@", ")); 5432 YP.write(Atom.a(@", "));
5421 convertArgListPython(Tail); 5433 convertArgListPython(Tail);
5422 return; 5434 return;
5423 goto cutIf1; 5435 // goto cutIf1;
5424 } 5436 }
5425 convertArgListPython(Tail); 5437 convertArgListPython(Tail);
5426 return; 5438 return;
5427 cutIf1: 5439 // cutIf1:
5428 { } 5440 // { }
5429 } 5441 }
5430 } 5442 }
5431 } 5443 }
@@ -5573,7 +5585,7 @@ namespace Temporary {
5573 YP.put_code(Code); 5585 YP.put_code(Code);
5574 convertStringCodesPython(RestCodes); 5586 convertStringCodesPython(RestCodes);
5575 return; 5587 return;
5576 goto cutIf1; 5588 // goto cutIf1;
5577 } 5589 }
5578 if (YP.termEqual(Code, 92)) 5590 if (YP.termEqual(Code, 92))
5579 { 5591 {
@@ -5581,13 +5593,13 @@ namespace Temporary {
5581 YP.put_code(Code); 5593 YP.put_code(Code);
5582 convertStringCodesPython(RestCodes); 5594 convertStringCodesPython(RestCodes);
5583 return; 5595 return;
5584 goto cutIf1; 5596 // goto cutIf1;
5585 } 5597 }
5586 YP.put_code(Code); 5598 YP.put_code(Code);
5587 convertStringCodesPython(RestCodes); 5599 convertStringCodesPython(RestCodes);
5588 return; 5600 return;
5589 cutIf1: 5601 // cutIf1:
5590 { } 5602 // { }
5591 } 5603 }
5592 } 5604 }
5593 } 5605 }
@@ -5646,6 +5658,7 @@ namespace Temporary {
5646 } 5658 }
5647 } 5659 }
5648 } 5660 }
5661 #pragma warning restore 0168
5649 5662
5650 } 5663 }
5651} 5664}