MCPcopy Index your code
hub / github.com/RustPython/RustPython / parse_basic_str_escape

Function parse_basic_str_escape

Lib/tomllib/_parser.py:545–571  ·  view source on GitHub ↗
(
    src: str, pos: Pos, *, multiline: bool = False
)

Source from the content-addressed store, hash-verified

543
544
545def parse_basic_str_escape(
546 src: str, pos: Pos, *, multiline: bool = False
547) -> tuple[Pos, str]:
548 escape_id = src[pos : pos + 2]
549 pos += 2
550 if multiline and escape_id in {"\\ ", "\\\t", "\\\n"}:
551 # Skip whitespace until next non-whitespace character or end of
552 # the doc. Error if non-whitespace is found before newline.
553 if escape_id != "\\\n":
554 pos = skip_chars(src, pos, TOML_WS)
555 try:
556 char = src[pos]
557 except IndexError:
558 return pos, ""
559 if char != "\n":
560 raise TOMLDecodeError("Unescaped '\\' in a string", src, pos)
561 pos += 1
562 pos = skip_chars(src, pos, TOML_WS_AND_NEWLINE)
563 return pos, ""
564 if escape_id == "\\u":
565 return parse_hex_char(src, pos, 4)
566 if escape_id == "\\U":
567 return parse_hex_char(src, pos, 8)
568 try:
569 return pos, BASIC_STR_ESCAPE_REPLACEMENTS[escape_id]
570 except KeyError:
571 raise TOMLDecodeError("Unescaped '\\' in a string", src, pos) from None
572
573
574def parse_basic_str_escape_multiline(src: str, pos: Pos) -> tuple[Pos, str]:

Callers 1

Calls 3

skip_charsFunction · 0.85
TOMLDecodeErrorClass · 0.85
parse_hex_charFunction · 0.85

Tested by

no test coverage detected