js-slang
Version:
Javascript-based implementations of Source, written in Typescript
38 lines (37 loc) • 1.52 kB
TypeScript
import { Visitor } from ".";
import { Atomic, Extended } from "../types/nodes/scheme-node-types";
/**
* Visitor implementation that prints the AST.
*/
export declare class Printer implements Visitor {
indentationLevel: number;
constructor(indentationLevel: number);
static create(): Printer;
increment(): Printer;
decrement(): Printer;
indent(): void;
display(value: any): void;
visitSequence(node: Atomic.Sequence): void;
visitNumericLiteral(node: Atomic.NumericLiteral): void;
visitBooleanLiteral(node: Atomic.BooleanLiteral): void;
visitStringLiteral(node: Atomic.StringLiteral): void;
visitLambda(node: Atomic.Lambda): void;
visitIdentifier(node: Atomic.Identifier): any;
visitDefinition(node: Atomic.Definition): any;
visitApplication(node: Atomic.Application): any;
visitConditional(node: Atomic.Conditional): any;
visitPair(node: Atomic.Pair): any;
visitNil(node: Atomic.Nil): any;
visitSymbol(node: Atomic.Symbol): any;
visitSpliceMarker(node: Atomic.SpliceMarker): any;
visitReassignment(node: Atomic.Reassignment): any;
visitImport(node: Atomic.Import): any;
visitExport(node: Atomic.Export): any;
visitVector(node: Atomic.Vector): void;
visitFunctionDefinition(node: Extended.FunctionDefinition): any;
visitLet(node: Extended.Let): any;
visitCond(node: Extended.Cond): any;
visitList(node: Extended.List): any;
visitBegin(node: Extended.Begin): any;
visitDelay(node: Extended.Delay): any;
}