Axiom.Compiler.Framework.PrologCodeGenerator.CompileGoalArguments C# (CSharp) Метод

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

private CompileGoalArguments ( ArrayList arguments ) : void
arguments System.Collections.ArrayList
Результат void
        private void CompileGoalArguments(ArrayList arguments)
        {
            for (int i = 0; i < arguments.Count; i++)
            {
                PrologCodeTerm term = (PrologCodeTerm)arguments[i];

                // TODO: check it's a nil atom then handle put conflicts
                if (term is PrologCodeEmptyList)
                {
                    ResolveConflicts(term, i);
                    _generator.Emit(OpCodes.Put_Constant, "[]", X(i));
                }

                else if (term is PrologCodeAtom)
                {
                    // Handle put conflicts here...
                    ResolveConflicts(term, i);
                    if (term is PrologCodeConstantAtom)
                    {
                        _generator.Emit(OpCodes.Put_Constant, ((PrologCodeConstantAtom)term).Value, X(i));
                    }
                    else if (term is PrologCodeStringAtom)
                    {
                        _generator.Emit(OpCodes.Put_Constant, ((PrologCodeStringAtom)term).Value, X(i));
                   }
                    else if (term is PrologCodeIntegerAtom)
                    {
                        _generator.Emit(OpCodes.Put_Constant, ((PrologCodeIntegerAtom)term).Value.ToString(), X(i));
                    }
                    else if (term is PrologCodeFloatAtom)
                    {
                        _generator.Emit(OpCodes.Put_Constant, ((PrologCodeFloatAtom)term).Value.ToString(), X(i));
                    }
                }
                else if (term is PrologCodeVariable)
                {
                    CompileGoalVariable((PrologCodeVariable)term, i);
                }
                else if (term is PrologCodePredicate || term is PrologCodeNonEmptyList)
                {
                    ResolveConflicts(term, i);
                    CompileGoalRecord(term, i);
                }
            }
        }