@composita/symbols
Version:
Composita language symbols.
52 lines • 1.75 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.ImplementationSymbol = exports.BlockScopeSymbol = exports.NamedScopeSymbol = exports.ProgramScopeSymbol = exports.ScopedSymbol = exports.GlobalScopeSymbol = void 0;
var GlobalScopeSymbolTag;
(function (GlobalScopeSymbolTag) {
GlobalScopeSymbolTag[GlobalScopeSymbolTag["Tag"] = 0] = "Tag";
})(GlobalScopeSymbolTag || (GlobalScopeSymbolTag = {}));
class GlobalScopeSymbol {
constructor() {
this._globalScopeSymbolTag = GlobalScopeSymbolTag.Tag;
}
}
exports.GlobalScopeSymbol = GlobalScopeSymbol;
class ScopedSymbol {
constructor(scope) {
this.scope = scope;
}
}
exports.ScopedSymbol = ScopedSymbol;
class ProgramScopeSymbol extends ScopedSymbol {
constructor(scope, name) {
super(scope);
this.name = name;
}
}
exports.ProgramScopeSymbol = ProgramScopeSymbol;
class NamedScopeSymbol extends ScopedSymbol {
constructor(scope, identifier) {
super(scope);
this.identifier = identifier;
}
}
exports.NamedScopeSymbol = NamedScopeSymbol;
var BlockScopeSymbolTag;
(function (BlockScopeSymbolTag) {
BlockScopeSymbolTag[BlockScopeSymbolTag["Tag"] = 0] = "Tag";
})(BlockScopeSymbolTag || (BlockScopeSymbolTag = {}));
class BlockScopeSymbol extends ScopedSymbol {
constructor() {
super(...arguments);
this._blockScopeSymbolTag = BlockScopeSymbolTag.Tag;
}
}
exports.BlockScopeSymbol = BlockScopeSymbol;
class ImplementationSymbol extends ScopedSymbol {
constructor(scope, interfaceSymbol) {
super(scope);
this.interfaceSymbol = interfaceSymbol;
}
}
exports.ImplementationSymbol = ImplementationSymbol;
//# sourceMappingURL=scope-symbols.js.map
;