thaw-interpreter-types
Version:
TypeScript type information for thaw's interpreter code
22 lines • 1.04 kB
TypeScript
import { Stack } from 'thaw-common-utilities.ts';
import { IToken } from './itoken';
import { IProduction } from './iproduction';
import { GrammarSymbol } from '../enums/grammar-symbols';
import { LexicalAnalyzerSelector } from '../enums/lexical-analyzer-selectors';
import { ParserSelector } from '../enums/parser-selectors';
export declare type SemanticStackType = Stack<any>;
export interface IGrammar {
terminals: GrammarSymbol[];
nonTerminals: GrammarSymbol[];
startSymbol: GrammarSymbol;
productions: IProduction[];
languageName: string;
defaultLexicalAnalyzer: LexicalAnalyzerSelector;
defaultParser: ParserSelector;
selectorsOfCompatibleParsers: ParserSelector[];
executeSemanticAction(semanticStack: SemanticStackType, action: string): void;
tokenToSymbol(token: IToken): GrammarSymbol;
pushTokenOntoSemanticStack(semanticStack: SemanticStackType, tokenAsSymbol: GrammarSymbol, token: IToken): void;
findStartingProduction(): IProduction;
}
//# sourceMappingURL=igrammar.d.ts.map