public static void Add(global::Zeze.Gen.ModuleSpace space, Type type) { String fullName = space.Path(".", type.Name); if (Types.ContainsKey(fullName)) { throw new Exception("duplicate type: " + fullName); } Types.Add(fullName, type); }
private TypeList(global::Zeze.Gen.ModuleSpace space, String key, String value) { if (key != null && key.Length > 0) { throw new Exception(Name + " type does not need a key. " + key); } ValueType = Type.Compile(space, value, null, null); //if (ValueType is TypeBinary) // throw new Exception(Name + " Error : value type is binary."); if (ValueType is TypeDynamic) { throw new Exception(Name + " Error : value type is dynamic."); } }
private TypeMap(global::Zeze.Gen.ModuleSpace space, String key, String value) { if (key.Length == 0) { throw new Exception("map type need a key"); } if (value.Length == 0) { throw new Exception("map type need a value"); } KeyType = Type.Compile(space, key, null, null); if (!KeyType.IsKeyable) { throw new Exception("map key need a keyable type"); } ValueType = Type.Compile(space, value, null, null); //if (ValueType is TypeBinary) // throw new Exception(Name + " Error : value type is binary."); if (ValueType is TypeDynamic) { throw new Exception(Name + " Error : value type is dynamic."); } }
public static Type Compile(global::Zeze.Gen.ModuleSpace space, String name) { return(Compile(space, name, null, null)); }