MCPcopy Create free account
hub / github.com/RT-Thread/env-windows / _parse_flags

Function _parse_flags

tools/python-3.11.9-amd64/Lib/re/_parser.py:903–961  ·  view source on GitHub ↗
(source, state, char)

Source from the content-addressed store, hash-verified

901 return subpattern
902
903def _parse_flags(source, state, char):
904 sourceget = source.get
905 add_flags = 0
906 del_flags = 0
907 if char != "-":
908 while True:
909 flag = FLAGS[char]
910 if source.istext:
911 if char == 'L':
912 msg = "bad inline flags: cannot use 'L' flag with a str pattern"
913 raise source.error(msg)
914 else:
915 if char == 'u':
916 msg = "bad inline flags: cannot use 'u' flag with a bytes pattern"
917 raise source.error(msg)
918 add_flags |= flag
919 if (flag & TYPE_FLAGS) and (add_flags & TYPE_FLAGS) != flag:
920 msg = "bad inline flags: flags 'a', 'u' and 'L' are incompatible"
921 raise source.error(msg)
922 char = sourceget()
923 if char is None:
924 raise source.error("missing -, : or )")
925 if char in ")-:":
926 break
927 if char not in FLAGS:
928 msg = "unknown flag" if char.isalpha() else "missing -, : or )"
929 raise source.error(msg, len(char))
930 if char == ")":
931 state.flags |= add_flags
932 return None
933 if add_flags & GLOBAL_FLAGS:
934 raise source.error("bad inline flags: cannot turn on global flag", 1)
935 if char == "-":
936 char = sourceget()
937 if char is None:
938 raise source.error("missing flag")
939 if char not in FLAGS:
940 msg = "unknown flag" if char.isalpha() else "missing flag"
941 raise source.error(msg, len(char))
942 while True:
943 flag = FLAGS[char]
944 if flag & TYPE_FLAGS:
945 msg = "bad inline flags: cannot turn off flags 'a', 'u' and 'L'"
946 raise source.error(msg)
947 del_flags |= flag
948 char = sourceget()
949 if char is None:
950 raise source.error("missing :")
951 if char == ":":
952 break
953 if char not in FLAGS:
954 msg = "unknown flag" if char.isalpha() else "missing :"
955 raise source.error(msg, len(char))
956 assert char == ":"
957 if del_flags & GLOBAL_FLAGS:
958 raise source.error("bad inline flags: cannot turn off global flag", 1)
959 if add_flags & del_flags:
960 raise source.error("bad inline flags: flag turned on and off", 1)

Callers 1

_parseFunction · 0.85

Calls 2

isalphaMethod · 0.80
errorMethod · 0.45

Tested by

no test coverage detected