Esempio n. 1
0
        //------------------------------------------------------------
        // TypeInfo生成
        static TypeInfo createTypeInfo(
            TypePath aTP
            , bool aIsConst
            , bool aIsIn
            , bool aIsRef
            )
        {
            BuiltInType builtInType = aTP.BuiltInType;

            TypeInfo.TypeKind kind = TypeInfo.TypeKind.VALUE;
            if (builtInType == BuiltInType.Void)
            {
                kind = TypeInfo.TypeKind.UNKNOWN;
            }
            if (aIsIn)
            {
                if (aTP.BuiltInType == BuiltInType.Unknown)
                {
                    aIsConst = true;
                    aIsRef   = true;
                }
                else
                {
                    aIsConst = true;
                }
            }
            return(new TypeInfo(
                       new TypeInfo.TypeSymbol(builtInType)
                       , kind
                       , new TypeInfo.TypeAttribute(aIsConst, aIsRef)
                       ));
        }
        //------------------------------------------------------------
        // TypeInfoを生成する。
        public TypeInfo CreateTypeInfo(TypePath typePath)
        {
            BuiltInType builtInType = typePath.BuiltInType;

            TypeInfo.TypeKind kind = TypeInfo.TypeKind.VALUE;
            if (builtInType == BuiltInType.Void)
            {
                kind = TypeInfo.TypeKind.UNKNOWN;
            }
            return(new TypeInfo(
                       new TypeInfo.TypeSymbol(builtInType)
                       , kind
                       , new TypeInfo.TypeAttribute(false, false)
                       ));
        }