@composita/symbols
Version:
Composita language symbols.
32 lines • 1.15 kB
TypeScript
import { ComponentSymbol, InterfaceSymbol } from './type-symbols';
export declare type ScopeSymbolType = ScopedSymbol | GlobalScopeSymbol;
declare enum GlobalScopeSymbolTag {
Tag = 0
}
export declare class GlobalScopeSymbol {
protected readonly _globalScopeSymbolTag: GlobalScopeSymbolTag;
}
export declare abstract class ScopedSymbol {
readonly scope: ScopeSymbolType;
constructor(scope: ScopeSymbolType);
}
export declare class ProgramScopeSymbol extends ScopedSymbol {
readonly name: string;
constructor(scope: GlobalScopeSymbol, name: string);
}
export declare abstract class NamedScopeSymbol extends ScopedSymbol {
readonly identifier: string;
constructor(scope: ScopeSymbolType, identifier: string);
}
declare enum BlockScopeSymbolTag {
Tag = 0
}
export declare class BlockScopeSymbol extends ScopedSymbol {
protected _blockScopeSymbolTag: BlockScopeSymbolTag;
}
export declare class ImplementationSymbol extends ScopedSymbol {
readonly interfaceSymbol: InterfaceSymbol;
constructor(scope: ComponentSymbol, interfaceSymbol: InterfaceSymbol);
}
export {};
//# sourceMappingURL=scope-symbols.d.ts.map