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; }
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 ""; } }
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; } }