Ejemplo n.º 1
0
 public virtual void VisitArrayDimensionCollection(IArrayDimensionCollection value)
 {
     for (int i = 0; i < value.Count; i++)
     {
         this.VisitArrayDimension(value[i]);
     }
 }
Ejemplo n.º 2
0
 public virtual void VisitArrayDimensionCollection(IArrayDimensionCollection value)
 {
     for (int i = 0; i < value.Count; i++)
     {
         VisitArrayDimension(value[i]);
     }
 }
        public virtual IArrayDimensionCollection TransformArrayDimensionCollection(IArrayDimensionCollection value)
        {
            IArrayDimension[] array = new IArrayDimension[value.Count];
            for (int i = 0; i < value.Count; i++)
            {
                array[i] = this.TransformArrayDimension(value[i]);
            }

            IArrayDimensionCollection target = new ArrayDimensionCollection();
            target.AddRange(array);
            return target;
        }
Ejemplo n.º 4
0
 private CArrayType(IType elem, IArrayDimensionCollection dim)
 {
     this.elem = elem;
     this.dim  = dim;
 }
Ejemplo n.º 5
0
 public static bool Compare(this IArrayDimensionCollection source, IArrayDimensionCollection n, Func<IArrayDimension, IArrayDimension, Action<string, string>, bool> checkitem, Action<string, string> errAct)
 {
     return Compare<IArrayDimension>(source,n,checkitem,errAct);
 }
Ejemplo n.º 6
0
 public static bool Compare(this IArrayDimensionCollection source, IArrayDimensionCollection n, Func<IArrayDimension, IArrayDimension, bool> checkitem)
 {
     return Compare<IArrayDimension>(source,n,checkitem);
 }
Ejemplo n.º 7
0
 public static bool Compare(this IArrayDimensionCollection source, IArrayDimensionCollection n)
 {
     return Compare<IArrayDimension>(source,n);
 }
        private string GetTypeText(IType value)
        {
            ITypeReference typeReference = value as ITypeReference;

            if (typeReference != null)
            {
                string specialName = this.GetTypeSpecialNameText(typeReference);
                if ((specialName != null) && (specialName.Length > 0))
                {
                    return(specialName);
                }

                string typeReferenceText = this.GetTypeReferenceText(typeReference);
                return(typeReferenceText);
            }

            IPointerType pointerType = value as IPointerType;

            if (pointerType != null)
            {
                return(this.GetTypeText(pointerType.ElementType) + "*");
            }

            IReferenceType referenceType = value as IReferenceType;

            if (referenceType != null)
            {
                return(this.GetTypeText(referenceType.ElementType) + "&");
            }

            IArrayType arrayType = value as IArrayType;

            if (arrayType != null)
            {
                using (StringWriter writer = new StringWriter(CultureInfo.InvariantCulture))
                {
                    writer.Write(this.GetTypeText(arrayType.ElementType));
                    writer.Write("[");

                    IArrayDimensionCollection dimensions = arrayType.Dimensions;
                    for (int i = 0; i < dimensions.Count; i++)
                    {
                        if (i != 0)
                        {
                            writer.Write(",");
                        }

                        int lowerBound = dimensions[i].LowerBound;
                        int upperBound = dimensions[i].UpperBound;

                        if (lowerBound != -1)
                        {
                            writer.Write(lowerBound.ToString(CultureInfo.InvariantCulture));
                        }

                        if ((lowerBound != -1) || (upperBound != -1))
                        {
                            writer.Write(":");
                        }

                        if (upperBound != -1)
                        {
                            writer.Write(upperBound.ToString(CultureInfo.InvariantCulture));
                        }
                    }

                    writer.Write("]");
                    return(writer.ToString());
                }
            }

            IOptionalModifier optionalModifier = value as IOptionalModifier;

            if (optionalModifier != null)
            {
                return("{optional:" + this.GetTypeText(optionalModifier.Modifier) + "}" + this.GetTypeText(optionalModifier.ElementType));
            }

            IRequiredModifier requiredModifier = value as IRequiredModifier;

            if (requiredModifier != null)
            {
                return("{required:" + this.GetTypeText(requiredModifier.Modifier) + "}" + this.GetTypeText(requiredModifier.ElementType));
            }

            IFunctionPointer functionPointer = value as IFunctionPointer;

            if (functionPointer != null)
            {
                using (StringWriter writer = new StringWriter(CultureInfo.InvariantCulture))
                {
                    writer.Write("*");
                    writer.Write("(");

                    for (int i = 0; i < functionPointer.Parameters.Count; i++)
                    {
                        if (i != 0)
                        {
                            writer.Write(",");
                        }

                        writer.Write(this.GetTypeText(functionPointer.Parameters[i].ParameterType));
                    }

                    writer.Write(")");
                    writer.Write(":");
                    writer.Write(this.GetTypeText(functionPointer.ReturnType.Type));
                    return(writer.ToString());
                }
            }

            IGenericParameter genericParameter = value as IGenericParameter;

            if (genericParameter != null)
            {
                return(genericParameter.Name);
            }

            IGenericArgument genericArgument = value as IGenericArgument;

            if (genericArgument != null)
            {
                ITypeReference genericType = genericArgument.Owner as ITypeReference;
                if (genericType != null)
                {
                    return("<!" + genericArgument.Position.ToString(CultureInfo.InvariantCulture) + ">");
                }

                IMethodReference genericMethod = genericArgument.Owner as IMethodReference;
                if (genericMethod != null)
                {
                    return("<!!" + genericArgument.Position.ToString(CultureInfo.InvariantCulture) + ">");
                }
            }

            throw new NotSupportedException("Invalid type in code identifier.");
        }
Ejemplo n.º 9
0
 public static bool Compare(this IArrayDimensionCollection source, IArrayDimensionCollection n, Func <IArrayDimension, IArrayDimension, Action <string, string>, bool> checkitem, Action <string, string> errAct)
 {
     return(Compare <IArrayDimension>(source, n, checkitem, errAct));
 }
Ejemplo n.º 10
0
 public static bool Compare(this IArrayDimensionCollection source, IArrayDimensionCollection n, Func <IArrayDimension, IArrayDimension, bool> checkitem)
 {
     return(Compare <IArrayDimension>(source, n, checkitem));
 }
Ejemplo n.º 11
0
 public static bool Compare(this IArrayDimensionCollection source, IArrayDimensionCollection n)
 {
     return(Compare <IArrayDimension>(source, n));
 }