Ejemplo n.º 1
0
        public IList GetPredicates(StringObject atom)
        {
            ArrayList result = new ArrayList();

            foreach (PrologObject fact in this.facts)
            {
                if (IsPredicate(fact, atom))
                {
                    result.Add(fact);
                }
            }

            return(result);
        }
Ejemplo n.º 2
0
        private bool IsPredicate(PrologObject fact, StringObject atom)
        {
            if (fact.Equals(atom))
            {
                return(true);
            }

            if (!(fact is StructureObject))
            {
                return(false);
            }

            StructureObject st = ((StructureObject)(fact));

            if (st.Functor.Equals(atom))
            {
                return(true);
            }

            if (!(st.Functor == IfPrimitive.GetInstance()))
            {
                return(false);
            }

            fact = st.Parameters[0];

            if (fact.Equals(atom))
            {
                return(true);
            }

            if (!(fact is StructureObject))
            {
                return(false);
            }

            st = (StructureObject)fact;

            if (st.Functor.Equals(atom))
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 3
0
 public IList GetPredicates(StringObject atom)
 {
     return(facts.GetPredicates(atom));
 }