/** @{inheritDoc} */
    @Override
    public void visit(final Factor n) {
      if (n.getOperand() instanceof Identifier) {
        final Identifier id = (Identifier) n.getOperand();
        if (id.getToken().equals("visit")) {
          final Call c = (Call) n.getOp(0);
          if (c.getArgsSize() == 1) {
            c.addArg(ASTFactory.createFactorExpr(original.clone()));
            return;
          }
        }
      }

      super.visit(n);
    }
 /** {@inheritDoc} */
 @Override
 public void accept(final AbstractVisitorNoArg v) {
   v.visit(this);
 }
 /** @{inheritDoc} */
 @Override
 public void visit(final StopStatement n) {
   stops.add(lastVisit);
   super.visit(n);
 }
 /** @{inheritDoc} */
 @Override
 public void visit(final VisitStatement n) {
   lastVisit = n;
   super.visit(n);
 }