Пример #1
0
 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();
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
 public object Read(string line, TextWriter @delegate)
 {
     return(new Nullable <PlTerm>(PlTerm.PlCompound(line)));
 }
Пример #6
0
 private static PlTerm FunctorTerm(string functor, int arity)
 {
     return(PlTerm.PlCompound(functor, new PlTermV(arity)));
 }
Пример #7
0
 private static PlTerm listOfOne(PlTerm term)
 {
     return(PlTerm.PlCompound(".", term, ATOM_NIL));
 }
Пример #8
0
 public static PlTerm PlC(string decl, PlTermV termV)
 {
     return(PlTerm.PlCompound(decl, termV));
 }
Пример #9
0
 public static PlTerm PlC(string decl, params PlTerm[] plTerms)
 {
     return(PlTerm.PlCompound(decl, plTerms));
 }