final public void ClickOrKey(final WaitForAction wait) throws ParseException {
        Cells cells;
        Expression e;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case CLICK:
      jj_consume_token(CLICK);
                    ClickEvent event1 = new ClickEvent(p.getVariable("$lastClick"), p.getVariable("$lastClickTime"));
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case IN:
        jj_consume_token(IN);
        cells = Cells();
                                        event1.setFilter(cells);
        break;
      default:
        jj_la1[34] = jj_gen;
        ;
      }
                          wait.setEvent( event1 );
      break;
    case KEY:
      jj_consume_token(KEY);
                  KeyEvent event2 = new KeyEvent(p.getVariable("$lastKey"), p.getVariable("$lastKeyTime"));
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case IN:
        jj_consume_token(IN);
        e = StringExpression(IN_STRING);
                                                     event2.setFilter(e);
        break;
      default:
        jj_la1[35] = jj_gen;
        ;
      }
                          wait.setEvent( event2 );
      break;
    default:
      jj_la1[36] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }