UNPKG

@gobstones/gobstones-parser

Version:
64 lines 2.73 kB
import { ASTConstructorDeclaration, ASTDef, ASTDefFunction, ASTDefInteractiveProgram, ASTDefProcedure, ASTDefProgram, ASTDefType } from './ast'; import { SourceReader } from './reader'; import { Token } from './token'; declare class FieldDescriptor { private _typeName; private _constructorName; private _index; constructor(typeName: string, constructorName: string, index: number); get typeName(): string; get constructorName(): string; get index(): number; } export declare const LocalVariable: unique symbol; export declare const LocalParameter: unique symbol; export declare const LocalIndex: unique symbol; export declare class SymbolTable { private _program; private _isInteractiveProgram; private _procedures; private _procedureParameters; private _functions; private _functionParameters; private _types; private _typeConstructors; private _constructors; private _constructorType; private _constructorFields; private _localNames; private _fields; constructor(); get program(): any; isInteractiveProgram(): boolean; isProcedure(name: string): boolean; allProcedureNames(): string[]; procedureDefinition(name: string): ASTDefProcedure; procedureParameters(name: string): string[]; isFunction(name: string): boolean; allFunctionNames(): string[]; functionDefinition(name: string): ASTDefFunction; functionParameters(name: string): string[]; isType(name: string): boolean; typeDefinition(name: string): ASTDefType; typeConstructors(name: string): string[]; isConstructor(name: string): boolean; constructorDeclaration(name: string): ASTConstructorDeclaration; constructorType(name: string): string; constructorFields(name: string): string[]; isField(name: string): boolean; fieldDescriptor(name: string): FieldDescriptor[]; defProgram(definition: ASTDefProgram | ASTDefInteractiveProgram): void; defInteractiveProgram(definition: ASTDefInteractiveProgram): void; defProcedure(definition: ASTDefProcedure): void; defFunction(definition: ASTDefFunction): void; defType(definition: ASTDefType): void; _declareConstructor(typeName: string, constructorDeclaration: ASTConstructorDeclaration): void; _declareField(startPos: SourceReader, endPos: SourceReader, typeName: string, constructorName: string, fieldName: string, index: number): void; addNewLocalName(localName: Token, category: symbol): void; setLocalName(localName: Token, category: symbol): void; removeLocalName(localName: Token): void; exitScope(): void; getAttributes(globalName: string): Record<string, ASTDef>; } export {}; //# sourceMappingURL=symtable.d.ts.map