toylang
Version:
A toy programming language built with TypeScript for learning purposes
29 lines (28 loc) • 1.81 kB
TypeScript
import { Environment } from "./Environment";
import { tl } from "./typings";
import { CallableFunction } from "./CallableFunction";
export declare class Interpreter {
ast: tl.Program | null;
globals: Environment;
environment: Environment;
constructor();
execute(ast: tl.Program): string | number | boolean | void | CallableFunction | null;
visit(node: null | tl.Statement | tl.Expression | tl.UnaryExpression | tl.BinaryExpression | tl.CallExpression | tl.Program | tl.Literal | tl.Identifier): number | string | CallableFunction | null | boolean | void;
visitIdentifier(node: tl.Identifier): number | string | CallableFunction;
visitExpression(node: tl.ExpressionStatement): string | number | boolean | void | CallableFunction | null;
visitAssignmentExpression(node: tl.AssignmentExpression): any;
visitReturnStatement(node: tl.ReturnStatement): void;
visitFunctionDeclaration(node: tl.FunctionDeclaration): null;
visitCallExpression(node: tl.CallExpression): void;
visitVariableStatement(node: tl.VariableStatement): null;
visitBlockStatement(node: tl.BlockStatement): null;
executeBlock(statements: tl.Statement[], environment: Environment): void;
visitIfStatement(node: tl.IfStatement): null;
visitWhileStatement(node: tl.WhileStatement): null;
visitForStatement(node: tl.ForStatement): null;
visitBinaryExpression(node: tl.BinaryExpression): number | boolean;
visitLogicalExpression(node: tl.LogicalExpression): string | number | boolean | void | CallableFunction | null;
visitLiterals(node: tl.Literal): string | number | boolean | null;
visitUnaryExpression(node: tl.UnaryExpression): string | number | boolean | void | CallableFunction | null;
visitProgram(node: tl.Program): null;
}