mirror of
https://github.com/opensim/opensim.git
synced 2026-08-11 20:05:33 +08:00
Mantis#1931. Thank you kindly, Kinoc for a patch that:
* Yield Prolog 1.0.1 Released : it passes all but 9 of the 421 tests in the ISO Prolog test suite (97.8%) . * support dynamic predicates and rules. * support 'import' to use external static functions improves connection to C# functions * Matches Yield Prolog r831
This commit is contained in:
@@ -53,6 +53,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
|
||||
{
|
||||
}
|
||||
|
||||
// disable warning on l1, don't see how we can
|
||||
// code this differently
|
||||
#pragma warning disable 0168
|
||||
/// If arg is another Functor3, then succeed (yield once) if this and arg have the
|
||||
/// same name and all functor args unify, otherwise fail (don't yield).
|
||||
/// If arg is a Variable, then call its unify to unify with this.
|
||||
/// Otherwise fail (don't yield).
|
||||
public IEnumerable<bool> unify(object arg)
|
||||
{
|
||||
arg = YP.getValue(arg);
|
||||
@@ -61,9 +68,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
|
||||
Functor3 argFunctor = (Functor3)arg;
|
||||
if (_name.Equals(argFunctor._name))
|
||||
{
|
||||
// disable warning: don't see how we can code this differently short
|
||||
// of rewriting the whole thing
|
||||
#pragma warning disable 0168
|
||||
foreach (bool l1 in YP.unify(_arg1, argFunctor._arg1))
|
||||
{
|
||||
foreach (bool l2 in YP.unify(_arg2, argFunctor._arg2))
|
||||
@@ -72,19 +76,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
|
||||
yield return false;
|
||||
}
|
||||
}
|
||||
#pragma warning restore 0168
|
||||
}
|
||||
}
|
||||
else if (arg is Variable)
|
||||
{
|
||||
// disable warning: don't see how we can code this differently short
|
||||
// of rewriting the whole thing
|
||||
#pragma warning disable 0168
|
||||
foreach (bool l1 in ((Variable)arg).unify(this))
|
||||
yield return false;
|
||||
#pragma warning restore 0168
|
||||
}
|
||||
}
|
||||
#pragma warning restore 0168
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user