@composita/symbols
Version:
Composita language symbols.
52 lines • 1.96 kB
TypeScript
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