UNPKG

@nomicfoundation/slang

Version:

A modular set of compiler APIs empowering the next generation of Solidity code analysis and developer tooling. Written in Rust and distributed in multiple languages.

602 lines 77.1 kB
import { NonterminalNode, Node, TerminalNode } from "./index.mjs"; /** Abstract class to rewrite a CST. */ export declare abstract class BaseRewriter { /** Replaces the `node` with a new node. If the result is `undefined`, the node is removed from the tree. This function typically the entry point of the rewrite operation. */ rewriteNode(node: Node): Node | undefined; /** Rewrites a non-terminal node. Typically called from `rewriteNode`. */ rewriteNonterminalNode(node: NonterminalNode): Node | undefined; /** Rewrites a terminal node. Typically called from `rewriteNode`. */ rewriteTerminalNode(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AbicoderPragma` node, recursively traversing the children (unless overriden). */ rewriteAbicoderPragma(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `AbicoderVersion` node, recursively traversing the children (unless overriden). */ rewriteAbicoderVersion(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `AdditiveExpression` node, recursively traversing the children (unless overriden). */ rewriteAdditiveExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `AddressType` node, recursively traversing the children (unless overriden). */ rewriteAddressType(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `AndExpression` node, recursively traversing the children (unless overriden). */ rewriteAndExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ArgumentsDeclaration` node, recursively traversing the children (unless overriden). */ rewriteArgumentsDeclaration(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ArrayExpression` node, recursively traversing the children (unless overriden). */ rewriteArrayExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ArrayTypeName` node, recursively traversing the children (unless overriden). */ rewriteArrayTypeName(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ArrayValues` node, recursively traversing the children (unless overriden). */ rewriteArrayValues(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `AssemblyFlags` node, recursively traversing the children (unless overriden). */ rewriteAssemblyFlags(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `AssemblyFlagsDeclaration` node, recursively traversing the children (unless overriden). */ rewriteAssemblyFlagsDeclaration(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `AssemblyStatement` node, recursively traversing the children (unless overriden). */ rewriteAssemblyStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `AssignmentExpression` node, recursively traversing the children (unless overriden). */ rewriteAssignmentExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `BitwiseAndExpression` node, recursively traversing the children (unless overriden). */ rewriteBitwiseAndExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `BitwiseOrExpression` node, recursively traversing the children (unless overriden). */ rewriteBitwiseOrExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `BitwiseXorExpression` node, recursively traversing the children (unless overriden). */ rewriteBitwiseXorExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `Block` node, recursively traversing the children (unless overriden). */ rewriteBlock(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `BreakStatement` node, recursively traversing the children (unless overriden). */ rewriteBreakStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `CallOptions` node, recursively traversing the children (unless overriden). */ rewriteCallOptions(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `CallOptionsExpression` node, recursively traversing the children (unless overriden). */ rewriteCallOptionsExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `CatchClause` node, recursively traversing the children (unless overriden). */ rewriteCatchClause(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `CatchClauseError` node, recursively traversing the children (unless overriden). */ rewriteCatchClauseError(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `CatchClauses` node, recursively traversing the children (unless overriden). */ rewriteCatchClauses(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ConditionalExpression` node, recursively traversing the children (unless overriden). */ rewriteConditionalExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ConstantDefinition` node, recursively traversing the children (unless overriden). */ rewriteConstantDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ConstructorAttribute` node, recursively traversing the children (unless overriden). */ rewriteConstructorAttribute(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ConstructorAttributes` node, recursively traversing the children (unless overriden). */ rewriteConstructorAttributes(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ConstructorDefinition` node, recursively traversing the children (unless overriden). */ rewriteConstructorDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ContinueStatement` node, recursively traversing the children (unless overriden). */ rewriteContinueStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ContractDefinition` node, recursively traversing the children (unless overriden). */ rewriteContractDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ContractMember` node, recursively traversing the children (unless overriden). */ rewriteContractMember(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ContractMembers` node, recursively traversing the children (unless overriden). */ rewriteContractMembers(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ContractSpecifier` node, recursively traversing the children (unless overriden). */ rewriteContractSpecifier(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ContractSpecifiers` node, recursively traversing the children (unless overriden). */ rewriteContractSpecifiers(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `DecimalNumberExpression` node, recursively traversing the children (unless overriden). */ rewriteDecimalNumberExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `DoWhileStatement` node, recursively traversing the children (unless overriden). */ rewriteDoWhileStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ElementaryType` node, recursively traversing the children (unless overriden). */ rewriteElementaryType(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ElseBranch` node, recursively traversing the children (unless overriden). */ rewriteElseBranch(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `EmitStatement` node, recursively traversing the children (unless overriden). */ rewriteEmitStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `EnumDefinition` node, recursively traversing the children (unless overriden). */ rewriteEnumDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `EnumMembers` node, recursively traversing the children (unless overriden). */ rewriteEnumMembers(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `EqualityExpression` node, recursively traversing the children (unless overriden). */ rewriteEqualityExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ErrorDefinition` node, recursively traversing the children (unless overriden). */ rewriteErrorDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ErrorParameter` node, recursively traversing the children (unless overriden). */ rewriteErrorParameter(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ErrorParameters` node, recursively traversing the children (unless overriden). */ rewriteErrorParameters(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ErrorParametersDeclaration` node, recursively traversing the children (unless overriden). */ rewriteErrorParametersDeclaration(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `EventDefinition` node, recursively traversing the children (unless overriden). */ rewriteEventDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `EventParameter` node, recursively traversing the children (unless overriden). */ rewriteEventParameter(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `EventParameters` node, recursively traversing the children (unless overriden). */ rewriteEventParameters(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `EventParametersDeclaration` node, recursively traversing the children (unless overriden). */ rewriteEventParametersDeclaration(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ExperimentalFeature` node, recursively traversing the children (unless overriden). */ rewriteExperimentalFeature(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ExperimentalPragma` node, recursively traversing the children (unless overriden). */ rewriteExperimentalPragma(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ExponentiationExpression` node, recursively traversing the children (unless overriden). */ rewriteExponentiationExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `Expression` node, recursively traversing the children (unless overriden). */ rewriteExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ExpressionStatement` node, recursively traversing the children (unless overriden). */ rewriteExpressionStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `FallbackFunctionAttribute` node, recursively traversing the children (unless overriden). */ rewriteFallbackFunctionAttribute(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `FallbackFunctionAttributes` node, recursively traversing the children (unless overriden). */ rewriteFallbackFunctionAttributes(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `FallbackFunctionDefinition` node, recursively traversing the children (unless overriden). */ rewriteFallbackFunctionDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ForStatement` node, recursively traversing the children (unless overriden). */ rewriteForStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ForStatementCondition` node, recursively traversing the children (unless overriden). */ rewriteForStatementCondition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ForStatementInitialization` node, recursively traversing the children (unless overriden). */ rewriteForStatementInitialization(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `FunctionAttribute` node, recursively traversing the children (unless overriden). */ rewriteFunctionAttribute(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `FunctionAttributes` node, recursively traversing the children (unless overriden). */ rewriteFunctionAttributes(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `FunctionBody` node, recursively traversing the children (unless overriden). */ rewriteFunctionBody(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `FunctionCallExpression` node, recursively traversing the children (unless overriden). */ rewriteFunctionCallExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `FunctionDefinition` node, recursively traversing the children (unless overriden). */ rewriteFunctionDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `FunctionName` node, recursively traversing the children (unless overriden). */ rewriteFunctionName(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `FunctionType` node, recursively traversing the children (unless overriden). */ rewriteFunctionType(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `FunctionTypeAttribute` node, recursively traversing the children (unless overriden). */ rewriteFunctionTypeAttribute(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `FunctionTypeAttributes` node, recursively traversing the children (unless overriden). */ rewriteFunctionTypeAttributes(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `HexNumberExpression` node, recursively traversing the children (unless overriden). */ rewriteHexNumberExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `HexStringLiteral` node, recursively traversing the children (unless overriden). */ rewriteHexStringLiteral(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `HexStringLiterals` node, recursively traversing the children (unless overriden). */ rewriteHexStringLiterals(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `IdentifierPath` node, recursively traversing the children (unless overriden). */ rewriteIdentifierPath(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `IfStatement` node, recursively traversing the children (unless overriden). */ rewriteIfStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ImportAlias` node, recursively traversing the children (unless overriden). */ rewriteImportAlias(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ImportClause` node, recursively traversing the children (unless overriden). */ rewriteImportClause(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ImportDeconstruction` node, recursively traversing the children (unless overriden). */ rewriteImportDeconstruction(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ImportDeconstructionSymbol` node, recursively traversing the children (unless overriden). */ rewriteImportDeconstructionSymbol(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ImportDeconstructionSymbols` node, recursively traversing the children (unless overriden). */ rewriteImportDeconstructionSymbols(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ImportDirective` node, recursively traversing the children (unless overriden). */ rewriteImportDirective(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `IndexAccessEnd` node, recursively traversing the children (unless overriden). */ rewriteIndexAccessEnd(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `IndexAccessExpression` node, recursively traversing the children (unless overriden). */ rewriteIndexAccessExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `InequalityExpression` node, recursively traversing the children (unless overriden). */ rewriteInequalityExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `InheritanceSpecifier` node, recursively traversing the children (unless overriden). */ rewriteInheritanceSpecifier(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `InheritanceType` node, recursively traversing the children (unless overriden). */ rewriteInheritanceType(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `InheritanceTypes` node, recursively traversing the children (unless overriden). */ rewriteInheritanceTypes(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `InterfaceDefinition` node, recursively traversing the children (unless overriden). */ rewriteInterfaceDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `InterfaceMembers` node, recursively traversing the children (unless overriden). */ rewriteInterfaceMembers(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `LibraryDefinition` node, recursively traversing the children (unless overriden). */ rewriteLibraryDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `LibraryMembers` node, recursively traversing the children (unless overriden). */ rewriteLibraryMembers(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `MappingKey` node, recursively traversing the children (unless overriden). */ rewriteMappingKey(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `MappingKeyType` node, recursively traversing the children (unless overriden). */ rewriteMappingKeyType(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `MappingType` node, recursively traversing the children (unless overriden). */ rewriteMappingType(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `MappingValue` node, recursively traversing the children (unless overriden). */ rewriteMappingValue(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `MemberAccessExpression` node, recursively traversing the children (unless overriden). */ rewriteMemberAccessExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ModifierAttribute` node, recursively traversing the children (unless overriden). */ rewriteModifierAttribute(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ModifierAttributes` node, recursively traversing the children (unless overriden). */ rewriteModifierAttributes(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ModifierDefinition` node, recursively traversing the children (unless overriden). */ rewriteModifierDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ModifierInvocation` node, recursively traversing the children (unless overriden). */ rewriteModifierInvocation(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `MultiplicativeExpression` node, recursively traversing the children (unless overriden). */ rewriteMultiplicativeExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `NamedArgument` node, recursively traversing the children (unless overriden). */ rewriteNamedArgument(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `NamedArgumentGroup` node, recursively traversing the children (unless overriden). */ rewriteNamedArgumentGroup(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `NamedArguments` node, recursively traversing the children (unless overriden). */ rewriteNamedArguments(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `NamedArgumentsDeclaration` node, recursively traversing the children (unless overriden). */ rewriteNamedArgumentsDeclaration(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `NamedImport` node, recursively traversing the children (unless overriden). */ rewriteNamedImport(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `NewExpression` node, recursively traversing the children (unless overriden). */ rewriteNewExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `NumberUnit` node, recursively traversing the children (unless overriden). */ rewriteNumberUnit(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `OrExpression` node, recursively traversing the children (unless overriden). */ rewriteOrExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `OverridePaths` node, recursively traversing the children (unless overriden). */ rewriteOverridePaths(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `OverridePathsDeclaration` node, recursively traversing the children (unless overriden). */ rewriteOverridePathsDeclaration(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `OverrideSpecifier` node, recursively traversing the children (unless overriden). */ rewriteOverrideSpecifier(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `Parameter` node, recursively traversing the children (unless overriden). */ rewriteParameter(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `Parameters` node, recursively traversing the children (unless overriden). */ rewriteParameters(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ParametersDeclaration` node, recursively traversing the children (unless overriden). */ rewriteParametersDeclaration(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `PathImport` node, recursively traversing the children (unless overriden). */ rewritePathImport(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `PositionalArguments` node, recursively traversing the children (unless overriden). */ rewritePositionalArguments(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `PositionalArgumentsDeclaration` node, recursively traversing the children (unless overriden). */ rewritePositionalArgumentsDeclaration(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `PostfixExpression` node, recursively traversing the children (unless overriden). */ rewritePostfixExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `Pragma` node, recursively traversing the children (unless overriden). */ rewritePragma(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `PragmaDirective` node, recursively traversing the children (unless overriden). */ rewritePragmaDirective(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `PrefixExpression` node, recursively traversing the children (unless overriden). */ rewritePrefixExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ReceiveFunctionAttribute` node, recursively traversing the children (unless overriden). */ rewriteReceiveFunctionAttribute(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ReceiveFunctionAttributes` node, recursively traversing the children (unless overriden). */ rewriteReceiveFunctionAttributes(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ReceiveFunctionDefinition` node, recursively traversing the children (unless overriden). */ rewriteReceiveFunctionDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ReturnStatement` node, recursively traversing the children (unless overriden). */ rewriteReturnStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ReturnsDeclaration` node, recursively traversing the children (unless overriden). */ rewriteReturnsDeclaration(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `RevertStatement` node, recursively traversing the children (unless overriden). */ rewriteRevertStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ShiftExpression` node, recursively traversing the children (unless overriden). */ rewriteShiftExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `SimpleVersionLiteral` node, recursively traversing the children (unless overriden). */ rewriteSimpleVersionLiteral(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `SourceUnit` node, recursively traversing the children (unless overriden). */ rewriteSourceUnit(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `SourceUnitMember` node, recursively traversing the children (unless overriden). */ rewriteSourceUnitMember(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `SourceUnitMembers` node, recursively traversing the children (unless overriden). */ rewriteSourceUnitMembers(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `StateVariableAttribute` node, recursively traversing the children (unless overriden). */ rewriteStateVariableAttribute(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `StateVariableAttributes` node, recursively traversing the children (unless overriden). */ rewriteStateVariableAttributes(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `StateVariableDefinition` node, recursively traversing the children (unless overriden). */ rewriteStateVariableDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `StateVariableDefinitionValue` node, recursively traversing the children (unless overriden). */ rewriteStateVariableDefinitionValue(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `Statement` node, recursively traversing the children (unless overriden). */ rewriteStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `Statements` node, recursively traversing the children (unless overriden). */ rewriteStatements(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `StorageLayoutSpecifier` node, recursively traversing the children (unless overriden). */ rewriteStorageLayoutSpecifier(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `StorageLocation` node, recursively traversing the children (unless overriden). */ rewriteStorageLocation(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `StringExpression` node, recursively traversing the children (unless overriden). */ rewriteStringExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `StringLiteral` node, recursively traversing the children (unless overriden). */ rewriteStringLiteral(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `StringLiterals` node, recursively traversing the children (unless overriden). */ rewriteStringLiterals(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `StructDefinition` node, recursively traversing the children (unless overriden). */ rewriteStructDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `StructMember` node, recursively traversing the children (unless overriden). */ rewriteStructMember(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `StructMembers` node, recursively traversing the children (unless overriden). */ rewriteStructMembers(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ThrowStatement` node, recursively traversing the children (unless overriden). */ rewriteThrowStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `TryStatement` node, recursively traversing the children (unless overriden). */ rewriteTryStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `TupleDeconstructionElement` node, recursively traversing the children (unless overriden). */ rewriteTupleDeconstructionElement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `TupleDeconstructionElements` node, recursively traversing the children (unless overriden). */ rewriteTupleDeconstructionElements(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `TupleDeconstructionStatement` node, recursively traversing the children (unless overriden). */ rewriteTupleDeconstructionStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `TupleExpression` node, recursively traversing the children (unless overriden). */ rewriteTupleExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `TupleMember` node, recursively traversing the children (unless overriden). */ rewriteTupleMember(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `TupleValue` node, recursively traversing the children (unless overriden). */ rewriteTupleValue(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `TupleValues` node, recursively traversing the children (unless overriden). */ rewriteTupleValues(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `TypeExpression` node, recursively traversing the children (unless overriden). */ rewriteTypeExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `TypeName` node, recursively traversing the children (unless overriden). */ rewriteTypeName(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `TypedTupleMember` node, recursively traversing the children (unless overriden). */ rewriteTypedTupleMember(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `UncheckedBlock` node, recursively traversing the children (unless overriden). */ rewriteUncheckedBlock(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `UnicodeStringLiteral` node, recursively traversing the children (unless overriden). */ rewriteUnicodeStringLiteral(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `UnicodeStringLiterals` node, recursively traversing the children (unless overriden). */ rewriteUnicodeStringLiterals(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `UnnamedFunctionAttribute` node, recursively traversing the children (unless overriden). */ rewriteUnnamedFunctionAttribute(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `UnnamedFunctionAttributes` node, recursively traversing the children (unless overriden). */ rewriteUnnamedFunctionAttributes(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `UnnamedFunctionDefinition` node, recursively traversing the children (unless overriden). */ rewriteUnnamedFunctionDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `UntypedTupleMember` node, recursively traversing the children (unless overriden). */ rewriteUntypedTupleMember(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `UserDefinedValueTypeDefinition` node, recursively traversing the children (unless overriden). */ rewriteUserDefinedValueTypeDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `UsingAlias` node, recursively traversing the children (unless overriden). */ rewriteUsingAlias(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `UsingClause` node, recursively traversing the children (unless overriden). */ rewriteUsingClause(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `UsingDeconstruction` node, recursively traversing the children (unless overriden). */ rewriteUsingDeconstruction(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `UsingDeconstructionSymbol` node, recursively traversing the children (unless overriden). */ rewriteUsingDeconstructionSymbol(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `UsingDeconstructionSymbols` node, recursively traversing the children (unless overriden). */ rewriteUsingDeconstructionSymbols(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `UsingDirective` node, recursively traversing the children (unless overriden). */ rewriteUsingDirective(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `UsingOperator` node, recursively traversing the children (unless overriden). */ rewriteUsingOperator(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `UsingTarget` node, recursively traversing the children (unless overriden). */ rewriteUsingTarget(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `VariableDeclarationStatement` node, recursively traversing the children (unless overriden). */ rewriteVariableDeclarationStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `VariableDeclarationType` node, recursively traversing the children (unless overriden). */ rewriteVariableDeclarationType(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `VariableDeclarationValue` node, recursively traversing the children (unless overriden). */ rewriteVariableDeclarationValue(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `VersionExpression` node, recursively traversing the children (unless overriden). */ rewriteVersionExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `VersionExpressionSet` node, recursively traversing the children (unless overriden). */ rewriteVersionExpressionSet(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `VersionExpressionSets` node, recursively traversing the children (unless overriden). */ rewriteVersionExpressionSets(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `VersionLiteral` node, recursively traversing the children (unless overriden). */ rewriteVersionLiteral(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `VersionOperator` node, recursively traversing the children (unless overriden). */ rewriteVersionOperator(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `VersionPragma` node, recursively traversing the children (unless overriden). */ rewriteVersionPragma(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `VersionRange` node, recursively traversing the children (unless overriden). */ rewriteVersionRange(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `VersionTerm` node, recursively traversing the children (unless overriden). */ rewriteVersionTerm(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `WhileStatement` node, recursively traversing the children (unless overriden). */ rewriteWhileStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulArguments` node, recursively traversing the children (unless overriden). */ rewriteYulArguments(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulAssignmentOperator` node, recursively traversing the children (unless overriden). */ rewriteYulAssignmentOperator(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulBlock` node, recursively traversing the children (unless overriden). */ rewriteYulBlock(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulBreakStatement` node, recursively traversing the children (unless overriden). */ rewriteYulBreakStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulColonAndEqual` node, recursively traversing the children (unless overriden). */ rewriteYulColonAndEqual(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulContinueStatement` node, recursively traversing the children (unless overriden). */ rewriteYulContinueStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulDefaultCase` node, recursively traversing the children (unless overriden). */ rewriteYulDefaultCase(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulEqualAndColon` node, recursively traversing the children (unless overriden). */ rewriteYulEqualAndColon(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulExpression` node, recursively traversing the children (unless overriden). */ rewriteYulExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulForStatement` node, recursively traversing the children (unless overriden). */ rewriteYulForStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulFunctionCallExpression` node, recursively traversing the children (unless overriden). */ rewriteYulFunctionCallExpression(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulFunctionDefinition` node, recursively traversing the children (unless overriden). */ rewriteYulFunctionDefinition(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulIfStatement` node, recursively traversing the children (unless overriden). */ rewriteYulIfStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulLabel` node, recursively traversing the children (unless overriden). */ rewriteYulLabel(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulLeaveStatement` node, recursively traversing the children (unless overriden). */ rewriteYulLeaveStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulLiteral` node, recursively traversing the children (unless overriden). */ rewriteYulLiteral(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulParameters` node, recursively traversing the children (unless overriden). */ rewriteYulParameters(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulParametersDeclaration` node, recursively traversing the children (unless overriden). */ rewriteYulParametersDeclaration(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulPath` node, recursively traversing the children (unless overriden). */ rewriteYulPath(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulPaths` node, recursively traversing the children (unless overriden). */ rewriteYulPaths(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulReturnsDeclaration` node, recursively traversing the children (unless overriden). */ rewriteYulReturnsDeclaration(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulStackAssignmentOperator` node, recursively traversing the children (unless overriden). */ rewriteYulStackAssignmentOperator(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulStackAssignmentStatement` node, recursively traversing the children (unless overriden). */ rewriteYulStackAssignmentStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulStatement` node, recursively traversing the children (unless overriden). */ rewriteYulStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulStatements` node, recursively traversing the children (unless overriden). */ rewriteYulStatements(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulSwitchCase` node, recursively traversing the children (unless overriden). */ rewriteYulSwitchCase(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulSwitchCases` node, recursively traversing the children (unless overriden). */ rewriteYulSwitchCases(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulSwitchStatement` node, recursively traversing the children (unless overriden). */ rewriteYulSwitchStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulValueCase` node, recursively traversing the children (unless overriden). */ rewriteYulValueCase(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulVariableAssignmentStatement` node, recursively traversing the children (unless overriden). */ rewriteYulVariableAssignmentStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulVariableDeclarationStatement` node, recursively traversing the children (unless overriden). */ rewriteYulVariableDeclarationStatement(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulVariableDeclarationValue` node, recursively traversing the children (unless overriden). */ rewriteYulVariableDeclarationValue(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `YulVariableNames` node, recursively traversing the children (unless overriden). */ rewriteYulVariableNames(node: NonterminalNode): Node | undefined; /** @virtual Rewrites a `ABIEncoderV2Keyword` node. */ rewriteABIEncoderV2Keyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AbicoderKeyword` node. */ rewriteAbicoderKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AbicoderV1Keyword` node. */ rewriteAbicoderV1Keyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AbicoderV2Keyword` node. */ rewriteAbicoderV2Keyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AbstractKeyword` node. */ rewriteAbstractKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AddressKeyword` node. */ rewriteAddressKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AfterKeyword` node. */ rewriteAfterKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AliasKeyword` node. */ rewriteAliasKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `Ampersand` node. */ rewriteAmpersand(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AmpersandAmpersand` node. */ rewriteAmpersandAmpersand(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AmpersandEqual` node. */ rewriteAmpersandEqual(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AnonymousKeyword` node. */ rewriteAnonymousKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `ApplyKeyword` node. */ rewriteApplyKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AsKeyword` node. */ rewriteAsKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AssemblyKeyword` node. */ rewriteAssemblyKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `Asterisk` node. */ rewriteAsterisk(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AsteriskAsterisk` node. */ rewriteAsteriskAsterisk(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AsteriskEqual` node. */ rewriteAsteriskEqual(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AtKeyword` node. */ rewriteAtKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `AutoKeyword` node. */ rewriteAutoKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `Bang` node. */ rewriteBang(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `BangEqual` node. */ rewriteBangEqual(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `Bar` node. */ rewriteBar(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `BarBar` node. */ rewriteBarBar(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `BarEqual` node. */ rewriteBarEqual(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `BoolKeyword` node. */ rewriteBoolKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `BreakKeyword` node. */ rewriteBreakKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `ByteKeyword` node. */ rewriteByteKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `BytesKeyword` node. */ rewriteBytesKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `CallDataKeyword` node. */ rewriteCallDataKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `Caret` node. */ rewriteCaret(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `CaretEqual` node. */ rewriteCaretEqual(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `CaseKeyword` node. */ rewriteCaseKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `CatchKeyword` node. */ rewriteCatchKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `CloseBrace` node. */ rewriteCloseBrace(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `CloseBracket` node. */ rewriteCloseBracket(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `CloseParen` node. */ rewriteCloseParen(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `Colon` node. */ rewriteColon(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `ColonEqual` node. */ rewriteColonEqual(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `Comma` node. */ rewriteComma(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `ConstantKeyword` node. */ rewriteConstantKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `ConstructorKeyword` node. */ rewriteConstructorKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `ContinueKeyword` node. */ rewriteContinueKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `ContractKeyword` node. */ rewriteContractKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `CopyOfKeyword` node. */ rewriteCopyOfKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `DaysKeyword` node. */ rewriteDaysKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `DecimalLiteral` node. */ rewriteDecimalLiteral(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `DefaultKeyword` node. */ rewriteDefaultKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `DefineKeyword` node. */ rewriteDefineKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `DeleteKeyword` node. */ rewriteDeleteKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `DoKeyword` node. */ rewriteDoKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `DoubleQuotedHexStringLiteral` node. */ rewriteDoubleQuotedHexStringLiteral(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `DoubleQuotedStringLiteral` node. */ rewriteDoubleQuotedStringLiteral(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `DoubleQuotedUnicodeStringLiteral` node. */ rewriteDoubleQuotedUnicodeStringLiteral(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `DoubleQuotedVersionLiteral` node. */ rewriteDoubleQuotedVersionLiteral(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `ElseKeyword` node. */ rewriteElseKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `EmitKeyword` node. */ rewriteEmitKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `EndOfLine` node. */ rewriteEndOfLine(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `EnumKeyword` node. */ rewriteEnumKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `Equal` node. */ rewriteEqual(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `EqualColon` node. */ rewriteEqualColon(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `EqualEqual` node. */ rewriteEqualEqual(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `EqualGreaterThan` node. */ rewriteEqualGreaterThan(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `ErrorKeyword` node. */ rewriteErrorKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `EtherKeyword` node. */ rewriteEtherKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `EventKeyword` node. */ rewriteEventKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `ExperimentalKeyword` node. */ rewriteExperimentalKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `ExternalKeyword` node. */ rewriteExternalKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `FallbackKeyword` node. */ rewriteFallbackKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `FalseKeyword` node. */ rewriteFalseKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `FinalKeyword` node. */ rewriteFinalKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `FinneyKeyword` node. */ rewriteFinneyKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `FixedKeyword` node. */ rewriteFixedKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `ForKeyword` node. */ rewriteForKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `FromKeyword` node. */ rewriteFromKeyword(node: TerminalNode): Node | undefined; /** @virtual Rewrites a `FunctionKeyword` node. */ rewriteFunctionKeyword(node: TerminalNode): Node | undef