示例#1
0
        public static IEnumerable<Error> ResolveType(IType type, Node var)
        {
            var errors = new List<Error>();

            switch (type.GetTypeInfo())
            {
                case TypeInfo.Integer:
                case TypeInfo.Real:
                    break;
                case TypeInfo.Ref:
                    var t = (RefType)type;
                    errors.AddRange(ResolveRefType(t, var));
                    break;
            }

            return errors;
        }
示例#2
0
 private static string MakeString(IType type)
 {
     switch (type.GetTypeInfo())
     {
         case TypeInfo.Integer:
             return "int";
         case TypeInfo.Real:
             return "double";
         case TypeInfo.Ref:
             return type.ToString();
         default:
             return "";
     }
 }
示例#3
0
文件: Emitter.cs 项目: BooMWax/ifmo
 private static Type GetType(IType type)
 {
     switch (type.GetTypeInfo())
     {
         case TypeInfo.Integer:
             return typeof (int);
         case TypeInfo.Real:
             return typeof (double);
         case TypeInfo.Ref:
             //return Type.GetType(type.ToString());
             var key = RecSym.Keys.First(x => x.Name.Text == type.ToString());
             return RecSym[key]; //.UnderlyingSystemType;
         default:
             return null;
     }
 }