UNPKG

@composita/symbols

Version:

Composita language symbols.

52 lines 1.96 kB
import { ScopeSymbolType, NamedScopeSymbol } from './scope-symbols'; import { GenericSymbol } from './generic-symbols'; declare enum TypeSymbolTag { Tag = 0 } export declare abstract class TypeSymbol extends NamedScopeSymbol { protected readonly _typeSymbolTag: TypeSymbolTag; } export declare class ConstantSymbol { readonly identifier: string; readonly type: TypeSymbol; constructor(identifier: string, type: TypeSymbol); } export declare class ProcedureSymbol extends NamedScopeSymbol { readonly parameters: Array<TypeSymbol>; readonly returnType: TypeSymbol; constructor(scope: ScopeSymbolType, identifier: string, parameters: Array<TypeSymbol>, returnType: TypeSymbol); } declare enum BuiltInTypeSymbolTag { Tag = 0 } export declare class BuiltInTypeSymbol extends TypeSymbol { protected readonly _builtInTypeSymbol = BuiltInTypeSymbolTag.Tag; } declare enum InterfaceSymbolTag { Tag = 0 } export declare class InterfaceSymbol extends TypeSymbol { protected readonly _interfaceSymbolTag = InterfaceSymbolTag.Tag; } declare enum ComponentSymbolTag { Tag = 0 } export declare class ComponentSymbol extends TypeSymbol { readonly genericType: GenericSymbol; readonly isEntryPoint: boolean; protected readonly _componentSymbolTag = ComponentSymbolTag.Tag; constructor(scope: ScopeSymbolType, identifier: string, genericType: GenericSymbol, isEntryPoint: boolean); } declare enum GenericComponentSymbolTag { Tag = 0 } export declare class GenericComponentSymbol extends ComponentSymbol { protected readonly _genericComponentSymbolTag: GenericComponentSymbolTag; constructor(scope: ScopeSymbolType, genericType: GenericSymbol); } export declare class MessageSymbol extends TypeSymbol { readonly parameters: Array<TypeSymbol>; constructor(scope: ScopeSymbolType, identifier: string, parameters: Array<TypeSymbol>); } export {}; //# sourceMappingURL=type-symbols.d.ts.map