@gobstones/gobstones-parser
Version:
Gobstones parser
64 lines • 2.73 kB
TypeScript
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