import { ParseTreeVisitor } from 'antlr4';
import { ProgramContext } from "./tccScriptParser";
import { GlobalStmtContext } from "./tccScriptParser";
import { BlockStmtContext } from "./tccScriptParser";
import { StmtContext } from "./tccScriptParser";
import { SimpleStmtContext } from "./tccScriptParser";
import { FlowStmtContext } from "./tccScriptParser";
import { BlockContext } from "./tccScriptParser";
import { BlockLineContext } from "./tccScriptParser";
import { VariableDeclarationStmtContext } from "./tccScriptParser";
import { DeclareAssignContext } from "./tccScriptParser";
import { AgainAssignContext } from "./tccScriptParser";
import { AgainAssignNameContext } from "./tccScriptParser";
import { VarModifierContext } from "./tccScriptParser";
import { BlockSequenceContext } from "./tccScriptParser";
import { ExpressionSequenceContext } from "./tccScriptParser";
import { ExpressionBlockSequenceContext } from "./tccScriptParser";
import { VarBlockStmtContext } from "./tccScriptParser";
import { VarSingleContext } from "./tccScriptParser";
import { VarMultipleContext } from "./tccScriptParser";
import { BlockExpressionContext } from "./tccScriptParser";
import { ParenthesizedExpressionContext } from "./tccScriptParser";
import { AdditiveExpressionContext } from "./tccScriptParser";
import { RelationalExpressionContext } from "./tccScriptParser";
import { TernaryExpressionContext } from "./tccScriptParser";
import { LogicalAndExpressionContext } from "./tccScriptParser";
import { NameExpressionContext } from "./tccScriptParser";
import { LiteralExpressionContext } from "./tccScriptParser";
import { LogicalOrExpressionContext } from "./tccScriptParser";
import { UnaryExpressionContext } from "./tccScriptParser";
import { NotExpressionContext } from "./tccScriptParser";
import { MemberIndexExpressionContext } from "./tccScriptParser";
import { MethodExpressionContext } from "./tccScriptParser";
import { EqualityExpressionContext } from "./tccScriptParser";
import { MultiplicativeExpressionContext } from "./tccScriptParser";
import { BrackethesizedContext } from "./tccScriptParser";
import { ArgumentsContext } from "./tccScriptParser";
import { ArgumentContext } from "./tccScriptParser";
import { IfStatementContext } from "./tccScriptParser";
import { ForToStatementContext } from "./tccScriptParser";
import { LiteralContext } from "./tccScriptParser";
import { MethodStmtContext } from "./tccScriptParser";
import { MethodElementContext } from "./tccScriptParser";
import { MethodNameContext } from "./tccScriptParser";
import { ArrowFunctionContext } from "./tccScriptParser";
import { ArrowFunctionParametersContext } from "./tccScriptParser";
import { FormalParameterListContext } from "./tccScriptParser";
import { FormalParameterArgContext } from "./tccScriptParser";
import { AssignmentOperatorContext } from "./tccScriptParser";
import { TypeArrayContext } from "./tccScriptParser";
import { TypeGatherContext } from "./tccScriptParser";
import { IdentifierContext } from "./tccScriptParser";
import { TypeNameContext } from "./tccScriptParser";
import { NameContext } from "./tccScriptParser";
/**
 * This interface defines a complete generic visitor for a parse tree produced
 * by `tccScriptParser`.
 *
 * @param <Result> The return type of the visit operation. Use `void` for
 * operations with no return type.
 */
export default class tccScriptParserVisitor<Result> extends ParseTreeVisitor<Result> {
    /**
     * Visit a parse tree produced by `tccScriptParser.program`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitProgram?: (ctx: ProgramContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.globalStmt`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitGlobalStmt?: (ctx: GlobalStmtContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.blockStmt`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitBlockStmt?: (ctx: BlockStmtContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.stmt`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitStmt?: (ctx: StmtContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.simpleStmt`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitSimpleStmt?: (ctx: SimpleStmtContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.flowStmt`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitFlowStmt?: (ctx: FlowStmtContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.block`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitBlock?: (ctx: BlockContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.blockLine`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitBlockLine?: (ctx: BlockLineContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.variableDeclarationStmt`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitVariableDeclarationStmt?: (ctx: VariableDeclarationStmtContext) => Result;
    /**
     * Visit a parse tree produced by the `DeclareAssign`
     * labeled alternative in `tccScriptParser.variableDeclarationList`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitDeclareAssign?: (ctx: DeclareAssignContext) => Result;
    /**
     * Visit a parse tree produced by the `AgainAssign`
     * labeled alternative in `tccScriptParser.variableDeclarationList`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitAgainAssign?: (ctx: AgainAssignContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.againAssignName`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitAgainAssignName?: (ctx: AgainAssignNameContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.varModifier`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitVarModifier?: (ctx: VarModifierContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.blockSequence`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitBlockSequence?: (ctx: BlockSequenceContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.expressionSequence`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitExpressionSequence?: (ctx: ExpressionSequenceContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.expressionBlockSequence`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitExpressionBlockSequence?: (ctx: ExpressionBlockSequenceContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.varBlockStmt`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitVarBlockStmt?: (ctx: VarBlockStmtContext) => Result;
    /**
     * Visit a parse tree produced by the `VarSingle`
     * labeled alternative in `tccScriptParser.varArrayDeclaration`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitVarSingle?: (ctx: VarSingleContext) => Result;
    /**
     * Visit a parse tree produced by the `VarMultiple`
     * labeled alternative in `tccScriptParser.varArrayDeclaration`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitVarMultiple?: (ctx: VarMultipleContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.blockExpression`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitBlockExpression?: (ctx: BlockExpressionContext) => Result;
    /**
     * Visit a parse tree produced by the `ParenthesizedExpression`
     * labeled alternative in `tccScriptParser.singleExpression`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitParenthesizedExpression?: (ctx: ParenthesizedExpressionContext) => Result;
    /**
     * Visit a parse tree produced by the `AdditiveExpression`
     * labeled alternative in `tccScriptParser.singleExpression`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitAdditiveExpression?: (ctx: AdditiveExpressionContext) => Result;
    /**
     * Visit a parse tree produced by the `RelationalExpression`
     * labeled alternative in `tccScriptParser.singleExpression`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitRelationalExpression?: (ctx: RelationalExpressionContext) => Result;
    /**
     * Visit a parse tree produced by the `TernaryExpression`
     * labeled alternative in `tccScriptParser.singleExpression`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitTernaryExpression?: (ctx: TernaryExpressionContext) => Result;
    /**
     * Visit a parse tree produced by the `LogicalAndExpression`
     * labeled alternative in `tccScriptParser.singleExpression`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitLogicalAndExpression?: (ctx: LogicalAndExpressionContext) => Result;
    /**
     * Visit a parse tree produced by the `NameExpression`
     * labeled alternative in `tccScriptParser.singleExpression`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitNameExpression?: (ctx: NameExpressionContext) => Result;
    /**
     * Visit a parse tree produced by the `LiteralExpression`
     * labeled alternative in `tccScriptParser.singleExpression`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitLiteralExpression?: (ctx: LiteralExpressionContext) => Result;
    /**
     * Visit a parse tree produced by the `LogicalOrExpression`
     * labeled alternative in `tccScriptParser.singleExpression`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitLogicalOrExpression?: (ctx: LogicalOrExpressionContext) => Result;
    /**
     * Visit a parse tree produced by the `UnaryExpression`
     * labeled alternative in `tccScriptParser.singleExpression`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitUnaryExpression?: (ctx: UnaryExpressionContext) => Result;
    /**
     * Visit a parse tree produced by the `NotExpression`
     * labeled alternative in `tccScriptParser.singleExpression`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitNotExpression?: (ctx: NotExpressionContext) => Result;
    /**
     * Visit a parse tree produced by the `MemberIndexExpression`
     * labeled alternative in `tccScriptParser.singleExpression`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitMemberIndexExpression?: (ctx: MemberIndexExpressionContext) => Result;
    /**
     * Visit a parse tree produced by the `MethodExpression`
     * labeled alternative in `tccScriptParser.singleExpression`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitMethodExpression?: (ctx: MethodExpressionContext) => Result;
    /**
     * Visit a parse tree produced by the `EqualityExpression`
     * labeled alternative in `tccScriptParser.singleExpression`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitEqualityExpression?: (ctx: EqualityExpressionContext) => Result;
    /**
     * Visit a parse tree produced by the `MultiplicativeExpression`
     * labeled alternative in `tccScriptParser.singleExpression`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitMultiplicativeExpression?: (ctx: MultiplicativeExpressionContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.brackethesized`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitBrackethesized?: (ctx: BrackethesizedContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.arguments`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitArguments?: (ctx: ArgumentsContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.argument`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitArgument?: (ctx: ArgumentContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.ifStatement`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitIfStatement?: (ctx: IfStatementContext) => Result;
    /**
     * Visit a parse tree produced by the `ForToStatement`
     * labeled alternative in `tccScriptParser.forStatement`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitForToStatement?: (ctx: ForToStatementContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.literal`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitLiteral?: (ctx: LiteralContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.methodStmt`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitMethodStmt?: (ctx: MethodStmtContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.methodElement`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitMethodElement?: (ctx: MethodElementContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.methodName`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitMethodName?: (ctx: MethodNameContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.arrowFunction`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitArrowFunction?: (ctx: ArrowFunctionContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.arrowFunctionParameters`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitArrowFunctionParameters?: (ctx: ArrowFunctionParametersContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.formalParameterList`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitFormalParameterList?: (ctx: FormalParameterListContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.formalParameterArg`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitFormalParameterArg?: (ctx: FormalParameterArgContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.assignmentOperator`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitAssignmentOperator?: (ctx: AssignmentOperatorContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.typeArray`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitTypeArray?: (ctx: TypeArrayContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.typeGather`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitTypeGather?: (ctx: TypeGatherContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.identifier`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitIdentifier?: (ctx: IdentifierContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.typeName`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitTypeName?: (ctx: TypeNameContext) => Result;
    /**
     * Visit a parse tree produced by `tccScriptParser.name`.
     * @param ctx the parse tree
     * @return the visitor result
     */
    visitName?: (ctx: NameContext) => Result;
}
