Exemplo n.º 1
0
 public int getNameToBackrefNumber(String name) {
   try {
     byte[] bytes = name.getBytes();
     return pattern.nameToBackrefNumber(bytes, 0, bytes.length, regs);
   } catch (JOniException je) {
     throw getRuntime().newIndexError(je.getMessage());
   }
 }
Exemplo n.º 2
0
 private int nameToBackrefNumber(RubyString str) {
   ByteList value = str.getByteList();
   try {
     return pattern.nameToBackrefNumber(
         value.getUnsafeBytes(), value.getBegin(), value.getBegin() + value.getRealSize(), regs);
   } catch (JOniException je) {
     throw getRuntime().newIndexError(je.getMessage());
   }
 }
Exemplo n.º 3
0
  // This returns a list of values in the order the names are defined (named capture local var
  // feature uses this).
  public IRubyObject[] getNamedBackrefValues(Ruby runtime) {
    if (pattern.numberOfNames() == 0) return NULL_ARRAY;

    IRubyObject[] values = new IRubyObject[pattern.numberOfNames()];

    int j = 0;
    for (Iterator<NameEntry> i = pattern.namedBackrefIterator(); i.hasNext(); ) {
      NameEntry e = i.next();

      int nth = pattern.nameToBackrefNumber(e.name, e.nameP, e.nameEnd, regs);
      values[j++] = RubyRegexp.nth_match(nth, this);
    }

    return values;
  }