protected void onAmpersand() {
    onSplit();

    for (int i = position + 1; i < text.length(); i++) {
      char c = text.charAt(i);

      if (c >= 'a' && c <= 'z' || c >= '0' && c <= '9' || c == '#') {
        continue;
      }
      if (c == ';') {
        position = i;
        lastSplit = i;
        return;
      }

      // not a valid escape sequence
      break;
    }
  }