@gobstones/gobstones-lang
Version:
65 lines • 4.54 kB
TypeScript
import { ASTDefProgram, SymbolTable, ASTMain, ASTDefInteractiveProgram, ASTDefProcedure, ASTDefFunction, ASTNode, ASTStmtBlock, ASTStmtReturn, ASTStmtIf, ASTStmtRepeat, ASTStmtForeach, ASTStmtWhile, ASTStmtSwitch, ASTStmtAssignVariable, ASTStmtAssignTuple, ASTStmtProcedureCall, ASTPatternVariable, ASTPatternWildcard, ASTPatternNumber, ASTPatternStructure, ASTPatternTuple, ASTPatternTimeout, ASTNodeWithBranches, ASTExpr, ASTExprVariable, ASTExprConstantNumber, ASTExprConstantString, ASTExprChoose, ASTExprMatching, ASTExprList, ASTPattern, ASTExprRange, ASTExprTuple, ASTExprStructure, ASTExprStructureUpdate, ASTExprFunctionCall, SourceReader } from '@gobstones/gobstones-parser';
import { Code, Instruction } from './instruction';
export declare class Compiler {
private _symtable;
private _code;
private _nextLabel;
private _nextVariable;
private _primitives;
constructor(symtable: SymbolTable);
compile(ast: ASTMain): Code;
_compileMain(ast: ASTMain): void;
_compileDefProgram(definition: ASTDefProgram): void;
_compileDefInteractiveProgram(definition: ASTDefInteractiveProgram): void;
_compileDefProcedure(definition: ASTDefProcedure): void;
_compileDefFunction(definition: ASTDefFunction): void;
_compileStatement(statement: ASTNode): void;
_compileStmtBlock(block: ASTStmtBlock): void;
_compileStmtReturn(statement: ASTStmtReturn): void;
_compileStmtIf(statement: ASTStmtIf): void;
_compileStmtRepeat(statement: ASTStmtRepeat): void;
_compileStmtForeach(statement: ASTStmtForeach): void;
_compileMatchForeachPatternOrFail(pattern: ASTPattern): void;
_compileStmtWhile(statement: ASTStmtWhile): void;
_compileStmtSwitch(statement: ASTStmtSwitch): void;
_compileMatchBranches(statement: ASTNodeWithBranches, isMatching: boolean): void;
_compileStmtAssignVariable(statement: ASTStmtAssignVariable): void;
_compileStmtAssignTuple(statement: ASTStmtAssignTuple): void;
_compileStmtProcedureCall(statement: ASTStmtProcedureCall): void;
_compileStmtProcedureCallPrimitive(statement: ASTStmtProcedureCall): void;
_compileStmtProcedureCallUserDefined(statement: ASTStmtProcedureCall): void;
_compilePatternCheck(pattern: ASTPattern, targetLabel: string): void;
_compilePatternCheckWildcard(pattern: ASTPatternWildcard, targetLabel: string): void;
_compilePatternCheckVariable(pattern: ASTPatternVariable, targetLabel: string): void;
_compilePatternCheckNumber(pattern: ASTPatternNumber, targetLabel: string): void;
_compilePatternCheckStructure(pattern: ASTPatternStructure, targetLabel: string): void;
_compilePatternCheckTuple(pattern: ASTPatternTuple, targetLabel: string): void;
_compilePatternCheckTimeout(pattern: ASTPatternTimeout, targetLabel: string): void;
_compilePatternBind(pattern: ASTPattern): void;
_compilePatternBindVariable(pattern: ASTPatternVariable): void;
_compilePatternBindStructure(pattern: ASTPatternStructure): void;
_compilePatternBindTuple(pattern: ASTPatternTuple): void;
_compilePatternUnbind(pattern: ASTPatternVariable): void;
_compileExpression(expression: ASTExpr): void;
_compileExprVariable(expression: ASTExprVariable): void;
_compileExprConstantNumber(expression: ASTExprConstantNumber): void;
_compileExprConstantString(expression: ASTExprConstantString): void;
_compileExprChoose(expression: ASTExprChoose): void;
_compileExprMatching(expression: ASTExprMatching): void;
_compileExprList(expression: ASTExprList): void;
_compileExprRange(expression: ASTExprRange): void;
_compileExprTuple(expression: ASTExprTuple): void;
_compileExprStructure(expression: ASTExprStructure): void;
_compileExprStructureUpdate(expression: ASTExprStructureUpdate): void;
_compileExprFunctionCall(expression: ASTExprFunctionCall): void;
_compileExprFunctionCallAnd(expression: ASTExprFunctionCall): void;
_compileExprFunctionCallOr(expression: ASTExprFunctionCall): void;
_compileExprFunctionCallPrimitive(expression: ASTExprFunctionCall): void;
_compileExprFunctionCallUserDefined(expression: ASTExprFunctionCall): void;
_compileExprFunctionCallFieldAccessor(expression: ASTExprFunctionCall): void;
_produce(startPos: SourceReader, endPos: SourceReader, instruction: Instruction): void;
_produceList(startPos: SourceReader, endPos: SourceReader, instructions: Instruction[]): void;
_freshLabel(): string;
_freshVariable(): string;
}
//# sourceMappingURL=compiler.d.ts.map