import { Token } from './token'; export interface Expr { getChildren(): Expr[]; rp(): string; toString(): string; } export declare class Leaf implements Expr { token: Token; constructor(token: Token); getChildren(): Expr[]; rp(): string; toString(): string; } export declare class Node implements Expr { operator: Token; operands: Expr[]; children: Expr[]; constructor(operator: Token, ...operands: Expr[]); getChildren(): Expr[]; rp(): string; toString(): string; } export declare class FunctionCall implements Expr { func: Expr; args: Expr[]; constructor(func: Expr, args?: Expr[]); getChildren(): Expr[]; rp(): string; toString(): string; } export declare class LambdaFunction implements Expr { body: Expr; parameters: Leaf[]; constructor(parameters: Token[], body: Expr); getChildren(): Expr[]; rp(): string; toString(): string; } //# sourceMappingURL=ast.d.ts.map