Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
parse_link_destination.py84 linesDownload Raw Back to helpers
1"""2Parse link destination3"""4 5from ..common.utils import charCodeAt, unescapeAll6 7 8class _Result:9    __slots__ = ("ok", "pos", "str")10 11    def __init__(self) -> None:12        self.ok = False13        self.pos = 014        self.str = ""15 16 17def parseLinkDestination(string: str, pos: int, maximum: int) -> _Result:18    start = pos19    result = _Result()20 21    if charCodeAt(string, pos) == 0x3C:  # /* < */22        pos += 123        while pos < maximum:24            code = charCodeAt(string, pos)25            if code == 0x0A:  # /* \n */)26                return result27            if code == 0x3C:  # / * < * /28                return result29            if code == 0x3E:  # /* > */) {30                result.pos = pos + 131                result.str = unescapeAll(string[start + 1 : pos])32                result.ok = True33                return result34 35            if code == 0x5C and pos + 1 < maximum:  # \36                pos += 237                continue38 39            pos += 140 41        # no closing '>'42        return result43 44    # this should be ... } else { ... branch45 46    level = 047    while pos < maximum:48        code = charCodeAt(string, pos)49 50        if code is None or code == 0x20:51            break52 53        # ascii control characters54        if code < 0x20 or code == 0x7F:55            break56 57        if code == 0x5C and pos + 1 < maximum:58            if charCodeAt(string, pos + 1) == 0x20:59                break60            pos += 261            continue62 63        if code == 0x28:  # /* ( */)64            level += 165            if level > 32:66                return result67 68        if code == 0x29:  # /* ) */)69            if level == 0:70                break71            level -= 172 73        pos += 174 75    if start == pos:76        return result77    if level != 0:78        return result79 80    result.str = unescapeAll(string[start:pos])81    result.pos = pos82    result.ok = True83    return result84 
codekingpro/portable-devtools · Team Ai