whole_func_string: function toHebon(s) {
          var hebon = '';
          var lastHebon = '';
          var lastChar = '';
          var i = 0;
          while (i < s.length) {
              var hr = getHebon(s, i);
              if (hr.c == 'っ') {
                  // 'っち'
                  var nextHr = getHebon(s, i + 1);
                  if (nextHr.h != null) {
                      if (nextHr.h.indexOf('CH') == 0) {
                          hr.h = 'T';
                      }
                      else {
                          hr.h = nextHr.h.substring(0, 1);
                      }
                  }
              }
              else if (hr.c == 'ん') {
                  // B,M,P の前の 'ん' は 'M' とする。
                  var nextHr = getHebon(s, i + 1);
                  if (nextHr.h != null && 'BMP'.indexOf(nextHr.h.charAt(0)) != -1) {
                      hr.h = 'M';
                  }
                  else {
                      hr.h = 'N';
                  }
              }
              else if (hr.c == 'ー') {
                  // 長音は無視
                  hr.h = '';
              }
              if (hr.h != null) {
                  // 変換できる文字の場合
                  if (lastHebon != null) {
                      // 連続する母音の除去
                      var htest = lastHebon + hr.h;
                      if (htest.length > 2) {
                          htest = htest.substring(htest.length - 2);
                      }
                      if (aaSet[htest]) {
                          hr.h = '';
                      }
                  }
                  hebon += hr.h;
              }
              else {
                  // 変換できない文字の場合
                  hebon += hr.c;
              }
              lastHebon = hr.h;
              lastChar = hr.c;
              i += hr.c.length;
          }
          return hebon;
      }
func_code_string: function toHebon(s) {
          var hebon = '';
          var lastHebon = '';
          var lastChar = '';
          var i = 0;
          while (i < s.length) {
              var hr = getHebon(s, i);
              if (hr.c == 'っ') {
                  // 'っち'
                  var nextHr = getHebon(s, i + 1);
                  if (nextHr.h != null) {
                      if (nextHr.h.indexOf('CH') == 0) {
                          hr.h = 'T';
                      }
                      else {
                          hr.h = nextHr.h.substring(0, 1);
                      }
                  }
              }
              else if (hr.c == 'ん') {
                  // B,M,P の前の 'ん' は 'M' とする。
                  var nextHr = getHebon(s, i + 1);
                  if (nextHr.h != null && 'BMP'.indexOf(nextHr.h.charAt(0)) != -1) {
                      hr.h = 'M';
                  }
                  else {
                      hr.h = 'N';
                  }
              }
              else if (hr.c == 'ー') {
                  // 長音は無視
                  hr.h = '';
              }
              if (hr.h != null) {
                  // 変換できる文字の場合
                  if (lastHebon != null) {
                      // 連続する母音の除去
                      var htest = lastHebon + hr.h;
                      if (htest.length > 2) {
                          htest = htest.substring(htest.length - 2);
                      }
                      if (aaSet[htest]) {
                          hr.h = '';
                      }
                  }
                  hebon += hr.h;
              }
              else {
                  // 変換できない文字の場合
                  hebon += hr.c;
              }
              lastHebon = hr.h;
              lastChar = hr.c;
              i += hr.c.length;
          }
          return hebon;
      }
func_documentation_string: 全角ひらがなをヘボン式ローマ字で半角英文字に変換します。