using Canon.Core.SyntaxNodes;

namespace Canon.Core.Abstractions;

public abstract class SyntaxNodeVisitor
{
    public virtual void PreVisit(AddOperator addOperator)
    {
    }

    public virtual void PostVisit(AddOperator addOperator)
    {
    }

    public virtual void PreVisit(BasicType basicType)
    {
    }

    public virtual void PostVisit(BasicType basicType)
    {
    }

    public virtual void PreVisit(CompoundStatement compoundStatement)
    {
    }

    public virtual void PostVisit(CompoundStatement compoundStatement)
    {
    }

    public virtual void PreVisit(ConstDeclaration constDeclaration)
    {
    }

    public virtual void PostVisit(ConstDeclaration constDeclaration)
    {
    }

    public virtual void PreVisit(ConstDeclarations constDeclarations)
    {
    }

    public virtual void PostVisit(ConstDeclarations constDeclarations)
    {
    }

    public virtual void PreVisit(ConstValue constValue)
    {
    }

    public virtual void PostVisit(ConstValue constValue)
    {
    }

    public virtual void PreVisit(ElsePart elsePart)
    {
    }

    public virtual void PostVisit(ElsePart elsePart)
    {
    }

    public virtual void PreVisit(Expression expression)
    {
    }

    public virtual void PostVisit(Expression expression)
    {
    }

    public virtual void PreVisit(ExpressionList expressionList)
    {
    }

    public virtual void PostVisit(ExpressionList expressionList)
    {
    }

    public virtual void PreVisit(Factor factor)
    {
    }

    public virtual void PostVisit(Factor factor)
    {
    }

    public virtual void PreVisit(FormalParameter formalParameter)
    {
    }

    public virtual void PostVisit(FormalParameter formalParameter)
    {
    }

    public virtual void PreVisit(IdentifierList identifierList)
    {
    }

    public virtual void PostVisit(IdentifierList identifierList)
    {
    }

    public virtual void PreVisit(IdentifierVarPart identifierVarPart)
    {
    }

    public virtual void PostVisit(IdentifierVarPart identifierVarPart)
    {
    }

    public virtual void PreVisit(MultiplyOperator multiplyOperator)
    {
    }

    public virtual void PostVisit(MultiplyOperator multiplyOperator)
    {
    }

    public virtual void PreVisit(Parameter parameter)
    {
    }

    public virtual void PostVisit(Parameter parameter)
    {
    }

    public virtual void PreVisit(ParameterList parameterList)
    {
    }

    public virtual void PostVisit(ParameterList parameterList)
    {
    }

    public virtual void PreVisit(Period period)
    {
    }

    public virtual void PostVisit(Period period)
    {
    }

    public virtual void PreVisit(ProcedureCall procedureCall)
    {
    }

    public virtual void PostVisit(ProcedureCall procedureCall)
    {
    }

    public virtual void PreVisit(ProgramBody programBody)
    {
    }

    public virtual void PostVisit(ProgramBody programBody)
    {
    }

    public virtual void PreVisit(ProgramHead programHead)
    {
    }

    public virtual void PostVisit(ProgramHead programHead)
    {
    }

    public virtual void PreVisit(ProgramStruct programStruct)
    {
    }

    public virtual void PostVisit(ProgramStruct programStruct)
    {
    }

    public virtual void PreVisit(RelationOperator relationOperator)
    {
    }

    public virtual void PostVisit(RelationOperator relationOperator)
    {
    }

    public virtual void PreVisit(SimpleExpression simpleExpression)
    {
    }

    public virtual void PostVisit(SimpleExpression simpleExpression)
    {
    }

    public virtual void PreVisit(Statement statement)
    {
    }

    public virtual void PostVisit(Statement statement)
    {
    }

    public virtual void PreVisit(StatementList statementList)
    {
    }

    public virtual void PostVisit(StatementList statementList)
    {
    }

    public virtual void PreVisit(Subprogram subprogram)
    {
    }

    public virtual void PostVisit(Subprogram subprogram)
    {
    }

    public virtual void PreVisit(SubprogramBody subprogramBody)
    {
    }

    public virtual void PostVisit(SubprogramBody subprogramBody)
    {
    }

    public virtual void PreVisit(SubprogramDeclarations subprogramDeclarations)
    {
    }

    public virtual void PostVisit(SubprogramDeclarations subprogramDeclarations)
    {
    }

    public virtual void PreVisit(SubprogramHead subprogramHead)
    {
    }

    public virtual void PostVisit(SubprogramHead subprogramHead)
    {
    }

    public virtual void PreVisit(Term term)
    {
    }

    public virtual void PostVisit(Term term)
    {
    }

    public virtual void PreVisit(TypeSyntaxNode typeSyntaxNode)
    {
    }

    public virtual void PostVisit(TypeSyntaxNode typeSyntaxNode)
    {
    }

    public virtual void PreVisit(ValueParameter valueParameter)
    {
    }

    public virtual void PostVisit(ValueParameter valueParameter)
    {
    }

    public virtual void PreVisit(VarDeclaration varDeclaration)
    {
    }

    public virtual void PostVisit(VarDeclaration varDeclaration)
    {
    }

    public virtual void PreVisit(VarDeclarations varDeclarations)
    {
    }

    public virtual void PostVisit(VarDeclarations varDeclarations)
    {
    }

    public virtual void PreVisit(Variable variable)
    {
    }

    public virtual void PostVisit(Variable variable)
    {
    }

    public virtual void PreVisit(VarParameter varParameter)
    {
    }

    public virtual void PostVisit(VarParameter varParameter)
    {
    }

    public virtual void PreVisit(TerminatedSyntaxNode terminatedSyntaxNode)
    {
    }

    public virtual void PostVisit(TerminatedSyntaxNode terminatedSyntaxNode)
    {
    }
}
