internal static PlTerm ToPLCS(Term args) { if (args is Atom) { return(new PlTerm(args.name())); } if (args is jpl.Variable) { return(new PlTerm((uint)GetField(args, "term_"))); } if (args is jpl.Float) { return(new PlTerm(args.doubleValue())); } if (args is jpl.Integer) { return(new PlTerm(args.longValue())); } if (args is jpl.Compound) { return(PlTerm.PlCompound(args.name(), ToPLCSV(args.args()))); } if (args is jpl.JRef) { var jref = (jpl.JRef)args;// return new PlTerm(args.doubleValue()); var obj = jref.@ref(); var t = new PlTerm(); t.FromObject(obj); return(t); } throw new ArgumentOutOfRangeException(); }
private static PlTerm ToPlListTypes(Type[] terms) { PlTerm listOf = ATOM_NIL; for (int i = terms.Length - 1; i >= 0; i--) { PlTerm term = typeToSpec(terms[i]); listOf = PlTerm.PlCompound(".", term, listOf); } return(listOf); }
private static PlTerm ToPlListParams(ParameterInfo[] terms) { PlTerm listOf = ATOM_NIL; for (int i = terms.Length - 1; i >= 0; i--) { PlTerm term = typeToSpec(terms[i].ParameterType); listOf = PlTerm.PlCompound(".", term, listOf); } return(listOf); }
private static PlTerm ToPlList(PlTerm[] terms) { int termLen = terms.Length; if (termLen == 0) { return(ATOM_NIL); } termLen--; PlTerm ret = listOfOne(terms[termLen]); while (--termLen >= 0) { ret = PlTerm.PlCompound(".", terms[termLen], ret); } return(ret); }
public object Read(string line, TextWriter @delegate) { return(new Nullable <PlTerm>(PlTerm.PlCompound(line))); }
private static PlTerm FunctorTerm(string functor, int arity) { return(PlTerm.PlCompound(functor, new PlTermV(arity))); }
private static PlTerm listOfOne(PlTerm term) { return(PlTerm.PlCompound(".", term, ATOM_NIL)); }
public static PlTerm PlC(string decl, PlTermV termV) { return(PlTerm.PlCompound(decl, termV)); }
public static PlTerm PlC(string decl, params PlTerm[] plTerms) { return(PlTerm.PlCompound(decl, plTerms)); }