baseTypes.js 560 B

1234567891011121314151617181920212223242526
  1. class BaseType {
  2. constructor(name, ord) {
  3. this.name = name;
  4. this.ord = ord;
  5. }
  6. get value () {
  7. return this.name;
  8. }
  9. isCompatible (another) {
  10. if(another instanceof BaseType) {
  11. return this.name === another.name && this.ord === another.ord;
  12. }
  13. return false;
  14. }
  15. }
  16. export const BaseTypes = Object.freeze({
  17. INTEGER: new BaseType("int", 0),
  18. REAL: new BaseType("real", 1),
  19. STRING: new BaseType("string", 2),
  20. BOOLEAN: new BaseType("bool", 3),
  21. VOID: new BaseType("void", 4),
  22. UNDEFINED: new BaseType("undefined", 5)
  23. })