class BaseType {
constructor(name, ord) {
this.name = name;
this.ord = ord;
}
get value () {
return this.name;
}
isCompatible (another) {
if(another instanceof BaseType) {
return this.name === another.name && this.ord === another.ord;
}
return false;
}
}
// Base types names are the same as i18n ui type keys
export const BaseTypes = Object.freeze({
INTEGER: new BaseType("integer", 0),
REAL: new BaseType("real", 1),
STRING: new BaseType("text", 2),
BOOLEAN: new BaseType("boolean", 3),
VOID: new BaseType("void", 4),
UNDEFINED: new BaseType("undefined", 5)
})