public static final TCon LONG = con(BUILTIN, "Long");
public static final TCon FLOAT = con(BUILTIN, "Float");
public static final TCon DOUBLE = con(BUILTIN, "Double");
-
- public static final TCon BOOLEAN_ARRAY = con(BUILTIN, "BooleanArray");
- public static final TCon BYTE_ARRAY = con(BUILTIN, "ByteArray");
- public static final TCon CHARACTER_ARRAY = con(BUILTIN, "CharacterArray");
- public static final TCon SHORT_ARRAY = con(BUILTIN, "ShortArray");
- public static final TCon INTEGER_ARRAY = con(BUILTIN, "IntegerArray");
- public static final TCon LONG_ARRAY = con(BUILTIN, "LongArray");
- public static final TCon FLOAT_ARRAY = con(BUILTIN, "FloatArray");
- public static final TCon DOUBLE_ARRAY = con(BUILTIN, "DoubleArray");
public static final TCon STRING = con(BUILTIN, "String");
public static final TCon ARROW = con(BUILTIN, "->");
public static final TCon TYPEABLE = con(BUILTIN, "Typeable");
public static final TCon SERIALIZABLE = con(BUILTIN, "Serializable");
public static final TCon VEC_COMP = con(BUILTIN, "VecComp");
+ public static final TCon CLASS = con(BUILTIN, "Class");
public static final TCon BINDING = con(BUILTIN, "Binding");
public static final TCon TYPE = con(BUILTIN, "Type");
public static final TCon ADDITIVE = con("Prelude", "Additive");
public static final TCon MONAD = con("Prelude", "Monad");
+ public static final TCon MONAD_E = con("Prelude", "MonadE");
public static final TCon INTEGRAL = con("Prelude", "Integral");
public static final TCon RING = con("Prelude", "Ring");
public static final TCon ORDERED_RING = con("Prelude", "OrderedRing");
public static final TUnion NO_EFFECTS = new TUnion();
public static final TCon PROC = con(BUILTIN, "Proc");
+ public static final TCon EXCEPTION = con(BUILTIN, "Exception");
public static final TCon BRANCH_POINT = con(BUILTIN, "BranchPoint");
+
+ public static final TCon CHRContext = con(BUILTIN, "CHRContext");
+
+ public static final Type BOOLEAN_ARRAY = vector(BOOLEAN);
+ public static final Type BYTE_ARRAY = vector(BYTE);
+ public static final Type CHARACTER_ARRAY = vector(CHARACTER);
+ public static final Type SHORT_ARRAY = vector(SHORT);
+ public static final Type INTEGER_ARRAY = vector(INTEGER);
+ public static final Type LONG_ARRAY = vector(LONG);
+ public static final Type FLOAT_ARRAY = vector(FLOAT);
+ public static final Type DOUBLE_ARRAY = vector(DOUBLE);
private volatile static TCon[] tupleCache = new TCon[] {
UNIT, null
}
};
-
+
public static boolean isPrimitive(Type type) {
return type == BOOLEAN || type == BYTE || type == CHARACTER || type == SHORT ||
type == INTEGER || type == LONG || type == FLOAT || type == DOUBLE || type == STRING;
return result;
}
+ public static TPred[] replace(TPred[] types, TVar[] from, Type[] to) {
+ if(types.length == 0)
+ return TPred.EMPTY_ARRAY;
+ TPred[] result = new TPred[types.length];
+ for(int i=0;i<types.length;++i)
+ result[i] = (TPred)types[i].replace(from, to);
+ return result;
+ }
+
public static <T extends Type> Type[] replace(Type[] types, THashMap<TVar, T> map) {
if(types.length == 0)
return Type.EMPTY_ARRAY;
public static Type union(Type effect1, Type effect2) {
return new TUnion(effect1, effect2);
}
+
+ public static Type union(Type effect1, Type effect2, Type effect3) {
+ return new TUnion(effect1, effect2, effect3);
+ }
public static Type union(List<Type> effects) {
if(effects.size() == 0)
return parseType(new TypeElaborationContext(environment), text);
}
- public static Type parseType(ITypeEnvironment environment, THashMap<String, TVar> localTypeVars, String text) throws SCLTypeParseException {
- return parseType(new TypeElaborationContext(localTypeVars, environment), text);
- }
-
public static Type parseType(String text) throws SCLTypeParseException {
return parseType(new TypeElaborationContext(DUMMY_TYPE_ENVIRONMENT), text);
}
-
- public static Type parseType(THashMap<String, TVar> localTypeVars, String text) throws SCLTypeParseException {
- return parseType(new TypeElaborationContext(localTypeVars, DUMMY_TYPE_ENVIRONMENT), text);
- }
private static Type parseType(TypeElaborationContext context, String text) throws SCLTypeParseException {
SCLParserImpl parser = new SCLParserImpl(new StringReader(text));