Example #1
0
        public override string GetPhpCode(PhpEmitStyle style)
        {
            if (initializers == null || initializers.Length == 0)
            {
                return("array()");
            }
            style = style ?? new PhpEmitStyle();
            var przecinek = style.Compression == EmitStyleCompression.Beauty ? ", " : ",";
            var www       = style.Compression == EmitStyleCompression.Beauty ? " => " : "=>";


            var list = new List <string>();

            foreach (var initializeValue in initializers)
            {
                if (initializeValue is PhpAssignExpression)
                {
                    var assignExpression = initializeValue as PhpAssignExpression;
                    if (!string.IsNullOrEmpty(assignExpression.OptionalOperator))
                    {
                        throw new NotSupportedException();
                    }

                    if (assignExpression.Left is PhpArrayAccessExpression)
                    {
                        var left = assignExpression.Left as PhpArrayAccessExpression;
                        if (left.PhpArray is PhpThisExpression)
                        {
                            var o = left.Index + www + assignExpression.Right;
                            list.Add(o);
                            continue;
                        }
                        else
                        {
                            throw new NotSupportedException();
                        }
                    }
                    else if (assignExpression.Left is PhpInstanceFieldAccessExpression)
                    {
                        var l1 = assignExpression.Left as PhpInstanceFieldAccessExpression;
                        var fn = new PhpConstValue(l1.FieldName);
                        var o  = fn.GetPhpCode(style) + www + assignExpression.Right;
                        list.Add(o);
                        continue;
                    }
                    else
                    {
                        var o = assignExpression.Left.GetPhpCode(style) + www + assignExpression.Right;
                        list.Add(o);
                        continue;
                    }
                }
                else
                {
                    list.Add(initializeValue.GetPhpCode(style));
                }
            }
            return("array(" + string.Join(przecinek, list) + ")");
        }
        public override string GetPhpCode(PhpEmitStyle style)
        {
            if (initializers == null || initializers.Length == 0)
                return "array()";
            style = style ?? new PhpEmitStyle();
            var przecinek = style.Compression == EmitStyleCompression.Beauty ? ", " : ",";
            var www = style.Compression == EmitStyleCompression.Beauty ? " => " : "=>";


            var list = new List<string>();
            foreach (var initializeValue in initializers)
            {
                if (initializeValue is PhpAssignExpression)
                {
                    var assignExpression = initializeValue as PhpAssignExpression;
                    if (!string.IsNullOrEmpty(assignExpression.OptionalOperator))
                        throw new NotSupportedException();

                    if (assignExpression.Left is PhpArrayAccessExpression)
                    {
                        var left = assignExpression.Left as PhpArrayAccessExpression;
                        if (left.PhpArray is PhpThisExpression)
                        {
                            var o = left.Index + www + assignExpression.Right;
                            list.Add(o);
                            continue;
                        }
                        else
                            throw new NotSupportedException();
                    }
                    else if (assignExpression.Left is PhpInstanceFieldAccessExpression)
                    {
                        var l1 = assignExpression.Left as PhpInstanceFieldAccessExpression;
                        var fn = new PhpConstValue(l1.FieldName);
                        var o = fn.GetPhpCode(style) + www + assignExpression.Right;
                        list.Add(o);
                        continue;
                    }
                    else
                    {
                        var o = assignExpression.Left.GetPhpCode(style) + www + assignExpression.Right;
                        list.Add(o);
                        continue;
                    }
                }
                else
                    list.Add(initializeValue.GetPhpCode(style));
            }
            return "array(" + string.Join(przecinek, list) + ")";
        }