Axiom.Compiler.Framework.PrologCodeParser.ProcessForeignMethod C# (CSharp) Метод

ProcessForeignMethod() приватный Метод

private ProcessForeignMethod ( PrologCodePredicate p ) : void
p Axiom.Compiler.CodeObjectModel.PrologCodePredicate
Результат void
        private void ProcessForeignMethod(PrologCodePredicate p)
        {
            // :- foreign(functor(+term,...),'Assembly','Class','MethodName').
            PrologCodeMethod foreignMethod = new PrologCodeMethod();
            PrologCodePredicate predicateFunctor = (PrologCodePredicate)p.Arguments[0];

            // Add argument types
            foreignMethod.Arguments = GetForeignMethodArguments(predicateFunctor);
            foreignMethod.AssemblyName = GetAtomOrStringValue((PrologCodeTerm)p.Arguments[1]);
            foreignMethod.Class = GetAtomOrStringValue((PrologCodeTerm)p.Arguments[2]);
            foreignMethod.PredicateName = predicateFunctor.Name;
            foreignMethod.MethodName = predicateFunctor.Name.Replace("'", "");

            if (p.Arguments.Count == 4)
            {
                foreignMethod.MethodName = GetAtomOrStringValue((PrologCodeTerm)p.Arguments[3]);
            }

            // Add the method
            _codeUnit.Methods.Add(foreignMethod);
        }