final public void waveform_element() throws ParseException {
    if (jj_2_18(2147483647)) {
      jj_consume_token(NULL);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case AFTER:
        jj_consume_token(AFTER);
        expression();
        break;
      default:
        jj_la1[79] = jj_gen;
        ;
      }
    } else {
      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:
        expression();
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case AFTER:
          jj_consume_token(AFTER);
          expression();
          break;
        default:
          jj_la1[80] = jj_gen;
          ;
        }
        break;
      default:
        jj_la1[81] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }