import ScadFile from "./ast/ScadFile"; import { UnaryOpExpr, BinaryOpExpr, TernaryExpr, ArrayLookupExpr, LiteralExpr, RangeExpr, VectorExpr, LookupExpr, MemberLookupExpr, FunctionCallExpr, LetExpr, AssertExpr, EchoExpr, LcIfExpr, LcEachExpr, LcForExpr, LcForCExpr, LcLetExpr, GroupingExpr, AnonymousFunctionExpr } from "./ast/expressions"; import { UseStmt, IncludeStmt, ModuleInstantiationStmt, ModuleDeclarationStmt, FunctionDeclarationStmt, BlockStmt, NoopStmt, IfElseStatement } from "./ast/statements"; import { ASTVisitorForNodesWithScopes, BlockStmtWithScope, LetExprWithScope, ScadFileWithScope, FunctionDeclarationStmtWithScope, ModuleDeclarationStmtWithScope, LcLetExprWithScope, LcForExprWithScope, LcForCExprWithScope, ModuleInstantiationStmtWithScope, AnonymousFunctionExprWithScope } from "./semantic/nodesWithScopes"; import AssignmentNode from "./ast/AssignmentNode"; import ASTNode from "./ast/ASTNode"; import ErrorNode from "./ast/ErrorNode"; export default class ASTMutator implements ASTVisitorForNodesWithScopes { visitScadFile(n: ScadFile): ASTNode; visitAssignmentNode(n: AssignmentNode): ASTNode; visitUnaryOpExpr(n: UnaryOpExpr): ASTNode; visitBinaryOpExpr(n: BinaryOpExpr): ASTNode; visitTernaryExpr(n: TernaryExpr): ASTNode; visitArrayLookupExpr(n: ArrayLookupExpr): ASTNode; visitLiteralExpr(n: LiteralExpr): ASTNode; visitRangeExpr(n: RangeExpr): ASTNode; visitVectorExpr(n: VectorExpr): ASTNode; visitLookupExpr(n: LookupExpr): ASTNode; visitMemberLookupExpr(n: MemberLookupExpr): ASTNode; visitFunctionCallExpr(n: FunctionCallExpr): ASTNode; visitLetExpr(n: LetExpr): ASTNode; visitAssertExpr(n: AssertExpr): ASTNode; visitEchoExpr(n: EchoExpr): ASTNode; visitLcIfExpr(n: LcIfExpr): ASTNode; visitLcEachExpr(n: LcEachExpr): ASTNode; visitLcForExpr(n: LcForExpr): ASTNode; visitLcForCExpr(n: LcForCExpr): ASTNode; visitLcLetExpr(n: LcLetExpr): ASTNode; visitGroupingExpr(n: GroupingExpr): ASTNode; visitUseStmt(n: UseStmt): ASTNode; visitIncludeStmt(n: IncludeStmt): ASTNode; visitModuleInstantiationStmt(n: ModuleInstantiationStmt): ASTNode; visitModuleDeclarationStmt(n: ModuleDeclarationStmt): ASTNode; visitFunctionDeclarationStmt(n: FunctionDeclarationStmt): ASTNode; visitBlockStmt(n: BlockStmt): ASTNode; visitNoopStmt(n: NoopStmt): ASTNode; visitIfElseStatement(n: IfElseStatement): ASTNode; visitErrorNode(n: ErrorNode): ASTNode; visitAnonymousFunctionExpr(n: AnonymousFunctionExpr): ASTNode; visitBlockStmtWithScope(n: BlockStmtWithScope): ASTNode; visitLetExprWithScope(n: LetExprWithScope): ASTNode; visitScadFileWithScope(n: ScadFileWithScope): ASTNode; visitFunctionDeclarationStmtWithScope(n: FunctionDeclarationStmtWithScope): ASTNode; visitModuleDeclarationStmtWithScope(n: ModuleDeclarationStmtWithScope): ASTNode; visitModuleInstantiationStmtWithScope(n: ModuleInstantiationStmtWithScope): ModuleInstantiationStmtWithScope; visitLcLetExprWithScope(n: LcLetExprWithScope): ASTNode; visitLcForExprWithScope(n: LcForExprWithScope): ASTNode; visitLcForCExprWithScope(n: LcForCExprWithScope): ASTNode; visitAnonymousFunctionExprWithScope(n: AnonymousFunctionExprWithScope): AnonymousFunctionExprWithScope; }