LogicControl.LogicParser.TraverseFunctionDeclaration C# (CSharp) Method

TraverseFunctionDeclaration() private method

private TraverseFunctionDeclaration ( GOLD.Reduction functionDeclaration ) : void
functionDeclaration GOLD.Reduction
return void
        private void TraverseFunctionDeclaration(Reduction functionDeclaration)
        {
            var returnType = (string)((Reduction)functionDeclaration[0].Data)[0].Data;
            var name = (string)functionDeclaration[1].Data;
            var parameterDeclarations = (Reduction)functionDeclaration[3].Data;
            var optionalSemantic = (Reduction)functionDeclaration[5].Data;
            var statements = functionDeclaration.Count() >= 9 ? (Reduction)functionDeclaration[7].Data : null;

            this.Functions.Add(
                new LogicFunction
                {
                    Name = name,
                    ReturnSemantic = this.ParseOptionalSemantic(optionalSemantic),
                    ReturnType = returnType,
                    Parameters = this.ParseParameters(parameterDeclarations),
                    Statements = statements == null ? new List<LogicStatement>() : this.ParseStatements(statements) 
                });
        }