public void visitStatement(StatementContext statement) {
   if (statement.expression() != null) {
     new ExpressionVisitor(symbolTable, method).visitExpression(statement.expression());
   } else if (statement.assignment() != null) {
     new AssignmentVisitor(symbolTable, method).visitAssignment(statement.assignment());
   } else if (statement.block() != null) {
     visitBlock(statement.block());
   } else if (statement.jumpStatement() != null) {
     visitJumpStatement(statement.jumpStatement());
   } else if (statement.IF() != null) {
     new IfStatementVisitor(this, symbolTable, method).visitIfStatement(statement);
   } else if (statement.forStatement() != null) {
     new CycleStatementVisitor(this, symbolTable, method)
         .visitForStatement(statement.forStatement());
   } else if (statement.WHILE() != null) {
     new CycleStatementVisitor(this, symbolTable, method).visitWhileStatement(statement);
   }
 }