code: function dec_val() {
      var ret = this.seq(
          this.istringf('d'),
          decChar,
          this.mightf(
              this.choicef(
                  dec_string,
                  dec_range)));
      var r3 = ret[3];
      if (r3) {
          if (typeof(r3) === "string") {
              // series of concatenated bit values
              return ret[2] + r3;
          } else {
              // range
              r3.setFirst(ret[2]);
              return r3;
          }
      }
      return ret[2];
  }
docs: dec-val        =  "d" 1*DIGIT [ 1*("." 1*DIGIT) / ("-" 1*DIGIT) ]