Ejemplo n.º 1
0
  StringPair extractString(Token t) {
    String string = t.getText();
    char quoteChar = string.charAt(0);
    int start = 0;
    int end;
    boolean ustring = false;
    boolean bstring = false;

    if (quoteChar == 'b' || quoteChar == 'B') {
      bstring = true;
      start++;
    }
    if (quoteChar == 'u' || quoteChar == 'U') {
      ustring = true;
      start++;
    }
    quoteChar = string.charAt(start);
    boolean raw = false;
    if (quoteChar == 'r' || quoteChar == 'R') {
      raw = true;
      start++;
    }
    int quotes = 3;
    if (string.length() - start == 2) {
      quotes = 1;
    }
    if (string.charAt(start) != string.charAt(start + 1)) {
      quotes = 1;
    }

    start = quotes + start;
    end = string.length() - quotes;
    string = string.substring(start, end);
    if (raw) {
      string = codecs.PyUnicode_DecodeRawUnicodeEscape(string, "strict");
    } else {
      string = PyString.decode_UnicodeEscape(string, 0, string.length(), "strict", true);
    }

    return new StringPair(string, ustring, bstring);
  }