Example #1
0
        public void Construct(CommonTree syntaxArrayInitializer)
        {
            var simpleReturnType = TreeHelper.GetReturnType(syntaxArrayInitializer.GetChild(0).Text);

            ReturnType = ReturnType.ArrayOf(simpleReturnType);


            //ArraySize
            var syntaxArraySize = syntaxArrayInitializer.GetChild(1).CastTo <CommonTree>();

            if (syntaxArraySize.ChildCount > 0)
            {
                var syntaxArraySizeExpression = syntaxArraySize.GetChild(0).CastTo <CommonTree>();
                ArraySize = TreeHelper.GetExpression(this, Scope, syntaxArraySizeExpression);
                ArraySize.Construct(syntaxArraySizeExpression);
            }

            //ArrayInitializationParameters
            var syntaxArrayInitializationParameters = syntaxArrayInitializer.GetChild(2).CastTo <CommonTree>();

            if (syntaxArrayInitializationParameters.ChildCount > 0)
            {
                syntaxArrayInitializationParameters.Children.Cast <CommonTree>()
                .ForEach(syntaxArrayInitializationParameter =>
                {
                    var parameterExpression =
                        TreeHelper.GetExpression(this, Scope, syntaxArrayInitializationParameter);
                    InitializationParameters.Add(parameterExpression);
                    parameterExpression.Construct(syntaxArrayInitializationParameter);
                });
            }
        }