final public void waveform() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case ABS:
    case NOT:
    case NULL:
    case based_literal:
    case basic_identifier:
    case bit_string_literal:
    case character_literal:
    case decimal_literal:
    case extended_identifier:
    case string_literal:
    case ADD:
    case SUB:
    case 152:
      waveform_element();
      label_20:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case 150:
          ;
          break;
        default:
          jj_la1[77] = jj_gen;
          break label_20;
        }
        jj_consume_token(150);
        waveform_element();
      }
      break;
    case UNAFFECTED:
      jj_consume_token(UNAFFECTED);
      break;
    default:
      jj_la1[78] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }