UNPKG

@gobstones/gobstones-lang

Version:
65 lines 4.54 kB
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