js-slang
Version:
Javascript-based implementations of Source, written in Typescript
27 lines (26 loc) • 1.29 kB
TypeScript
import { Comment, Program, SourceLocation } from 'estree';
import { StepperBaseNode } from '../interface';
import { StepperStatement } from './Statement';
import { StepperExpression, StepperPattern } from '.';
export declare class StepperProgram implements Program, StepperBaseNode {
type: 'Program';
sourceType: 'script' | 'module';
body: StepperStatement[];
comments?: Comment[] | undefined;
leadingComments?: Comment[] | undefined;
trailingComments?: Comment[] | undefined;
loc?: SourceLocation | null | undefined;
range?: [number, number] | undefined;
isContractible(): boolean;
isOneStepPossible(): boolean;
contract(): StepperProgram;
oneStep(): StepperProgram;
static create(node: Program): StepperProgram;
constructor(body: StepperStatement[], // TODO: Add support for variable declaration
comments?: Comment[] | undefined, leadingComments?: Comment[] | undefined, trailingComments?: Comment[] | undefined, loc?: SourceLocation | null | undefined, range?: [number, number] | undefined);
substitute(id: StepperPattern, value: StepperExpression): StepperBaseNode;
scanAllDeclarationNames(): string[];
freeNames(): string[];
allNames(): string[];
rename(before: string, after: string): StepperProgram;
}