예제 #1
0
        public override CiExpr Visit(CiAggregateInitializer expr, CiPriority parent)
        {
            CiType type = ((CiArrayStorageType)expr.Type).ElementType;

            Write("{ ");
            WriteCoercedLiterals(type, expr.Items);
            Write(" }");
            return(expr);
        }
예제 #2
0
        public override CiExpr Visit(CiAggregateInitializer expr, CiPriority parent)
        {
            CiNumericType number = ((CiArrayStorageType)expr.Type).ElementType as CiNumericType;

            if (number != null)
            {
                Write("new ");
                Write(GetArrayElementType(number));
                Write("Array(");
            }
            Write("[ ");
            WriteCoercedLiterals(null, expr.Items);
            Write(" ]");
            if (number != null)
            {
                Write(')');
            }
            return(expr);
        }
예제 #3
0
 public override CiExpr Visit(CiAggregateInitializer expr, CiPriority parent)
 {
     if (((CiArrayStorageType)expr.Type).ElementType is CiNumericType number)
     {
         char c = GetArrayCode(number);
         if (c == 'B')
         {
             Write("bytes(");
         }
         else
         {
             Include("array");
             Write("array.array(\"");
             Write(c);
             Write("\", ");
         }
         base.Visit(expr, parent);
         Write(')');
         return(expr);
     }
     return(base.Visit(expr, parent));
 }