Example #1
0
        public override void HandleCodeParamType(Udbus.Parsing.ICodeParamType paramtype)
        {
            CodeArrayCreateExpression arrayExpr = paramtype.CreateArray();
            Udbus.Parsing.CodeParamArray arraytype = new Udbus.Parsing.CodeParamArray(arrayExpr);
            base.HandleCodeParamType(arraytype);

            if (this.QuExpressionBuilder == false)
            {
                IWriteExpressionBuilder exprbuilder = this.CreateArrayExpressionBuilder();

                // Use the array expression builder.
                SetExpressionBuilder(this, exprbuilder);
            }

            // Not quite sure about this.
            // Need to set owner's expression builder first, but then how do we know level of nesting ?
            if (owner.QuExpressionBuilder == false)
            {
                // Use this Array holder as owner's expression builder
                // (which will in turn delegate to it's expression builder).
                SetExpressionBuilder(owner, this);
            }

            owner.HandleCodeParamType(arraytype);
        }