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

Function parse_basic_str

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

Source from the content-addressed store, hash-verified

629
630
631def parse_basic_str(src: str, pos: Pos, *, multiline: bool) -> tuple[Pos, str]:
632 if multiline:
633 error_on = ILLEGAL_MULTILINE_BASIC_STR_CHARS
634 parse_escapes = parse_basic_str_escape_multiline
635 else:
636 error_on = ILLEGAL_BASIC_STR_CHARS
637 parse_escapes = parse_basic_str_escape
638 result = ""
639 start_pos = pos
640 while True:
641 try:
642 char = src[pos]
643 except IndexError:
644 raise TOMLDecodeError("Unterminated string", src, pos) from None
645 if char == '"':
646 if not multiline:
647 return pos + 1, result + src[start_pos:pos]
648 if src.startswith('"""', pos):
649 return pos + 3, result + src[start_pos:pos]
650 pos += 1
651 continue
652 if char == "\\":
653 result += src[start_pos:pos]
654 pos, parsed_escape = parse_escapes(src, pos)
655 result += parsed_escape
656 start_pos = pos
657 continue
658 if char in error_on:
659 raise TOMLDecodeError(f"Illegal character {char!r}", src, pos)
660 pos += 1
661
662
663def parse_value( # noqa: C901

Callers 2

parse_one_line_basic_strFunction · 0.85
parse_multiline_strFunction · 0.85

Calls 2

TOMLDecodeErrorClass · 0.85
startswithMethod · 0.45

Tested by

no test coverage detected