Axiom.Compiler.Framework.PrologCompiler.GenerateMethod C# (CSharp) Метод

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

private GenerateMethod ( CodeTypeDeclaration classType, ProcedureInstruction pi ) : void
classType System.CodeDom.CodeTypeDeclaration
pi Axiom.Runtime.Instructions.ProcedureInstruction
Результат void
        private void GenerateMethod(CodeTypeDeclaration classType, ProcedureInstruction pi)
        {
            CodeMemberMethod method = new CodeMemberMethod();
            method.Name = pi.ProcedureName;
            method.ReturnType = new CodeTypeReference("System.Boolean");
            method.Attributes = MemberAttributes.Public;
            string objectStatement = "new object [] { ";
            for (int i = 0; i < pi.Arity; i++)
            {
                method.Parameters.Add(new CodeParameterDeclarationExpression("System.Object", "arg" + (i + 1)));
                objectStatement += "arg" + (i + 1);

                if (i == pi.Arity - 1)
                {
                    objectStatement += " }";
                }
                else
                {
                    objectStatement += ", ";
                }
            }

            method.Statements.Add(new CodeSnippetStatement("return machine.Call(\"" + pi.ProcedureName + "\", " + pi.Arity + ", " + objectStatement + ", _more);"));
            classType.Members.Add(method);
        }