/** * SymbolTable maintains registry of words with its types */ declare class SymbolTable { private parent?; private readonly registry; /** * Create new symbol table * @param {SymbolTable | undefined}parent parent of the symbol table */ constructor(parent?: SymbolTable); /** * Register new phrase or word in symbol table * @param {string} phrase phrase * @param {Entity} entity type of the phrase * @throws {FcalError} if word is already registered */ set(phrase: string, entity: Entity): void; /** * search symbol table whether phrase is already registered * @param {string} phrase phrase or word * @returns {Entity} entity or type of the phrase */ get(phrase: string): Entity | undefined; } declare enum Entity { FUNCTION = "FUNCTION", VARIABLE = "VARIABLE", CONSTANT = "CONSTANT", OPERATION_PHRASE = "OPERATION PHRASE", NS = "NUMBER SYSTEM", UNIT = "UNIT", CONVERTER = "CONVERTER", SCALE = "SCALE" } export { Entity, SymbolTable };