import ASTVisitor from "../ast/ASTVisitor"; import { AnonymousFunctionExpr, LcForCExpr, LcForExpr, LcLetExpr, LetExpr } from "../ast/expressions"; import ScadFile from "../ast/ScadFile"; import { BlockStmt, FunctionDeclarationStmt, ModuleDeclarationStmt, ModuleInstantiationStmt } from "../ast/statements"; import NodeWithScope from "./NodeWithScope"; import Scope from "./Scope"; export interface ASTVisitorForNodesWithScopes extends ASTVisitor { visitBlockStmtWithScope(n: BlockStmtWithScope): R; visitLetExprWithScope(n: LetExprWithScope): R; visitScadFileWithScope(n: ScadFileWithScope): R; visitFunctionDeclarationStmtWithScope(n: FunctionDeclarationStmtWithScope): R; visitModuleDeclarationStmtWithScope(n: ModuleDeclarationStmtWithScope): R; visitLcLetExprWithScope(n: LcLetExprWithScope): R; visitLcForExprWithScope(n: LcForExprWithScope): R; visitLcForCExprWithScope(n: LcForCExprWithScope): R; visitModuleInstantiationStmtWithScope(n: ModuleInstantiationStmtWithScope): R; visitAnonymousFunctionExprWithScope(n: AnonymousFunctionExprWithScope): R; } export declare class BlockStmtWithScope extends BlockStmt implements NodeWithScope { scope: Scope; accept(visitor: ASTVisitorForNodesWithScopes): R; } export declare class LetExprWithScope extends LetExpr implements NodeWithScope { scope: Scope; accept(visitor: ASTVisitorForNodesWithScopes): R; } export declare class ScadFileWithScope extends ScadFile implements NodeWithScope { scope: Scope; accept(visitor: ASTVisitorForNodesWithScopes): R; } export declare class FunctionDeclarationStmtWithScope extends FunctionDeclarationStmt implements NodeWithScope { scope: Scope; accept(visitor: ASTVisitorForNodesWithScopes): R; } export declare class ModuleDeclarationStmtWithScope extends ModuleDeclarationStmt implements NodeWithScope { scope: Scope; accept(visitor: ASTVisitorForNodesWithScopes): R; } export declare class ModuleInstantiationStmtWithScope extends ModuleInstantiationStmt implements NodeWithScope { scope: Scope; accept(visitor: ASTVisitorForNodesWithScopes): R; } export declare class LcLetExprWithScope extends LcLetExpr implements NodeWithScope { scope: Scope; accept(visitor: ASTVisitorForNodesWithScopes): R; } export declare class LcForExprWithScope extends LcForExpr implements NodeWithScope { scope: Scope; accept(visitor: ASTVisitorForNodesWithScopes): R; } export declare class LcForCExprWithScope extends LcForCExpr implements NodeWithScope { scope: Scope; accept(visitor: ASTVisitorForNodesWithScopes): R; } export declare class AnonymousFunctionExprWithScope extends AnonymousFunctionExpr implements NodeWithScope { scope: Scope; accept(visitor: ASTVisitorForNodesWithScopes): R; }