(str, flags=0, state=None)
| 960 | return flags |
| 961 | |
| 962 | def parse(str, flags=0, state=None): |
| 963 | # parse 're' pattern into list of (opcode, argument) tuples |
| 964 | |
| 965 | source = Tokenizer(str) |
| 966 | |
| 967 | if state is None: |
| 968 | state = State() |
| 969 | state.flags = flags |
| 970 | state.str = str |
| 971 | |
| 972 | p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0) |
| 973 | p.state.flags = fix_flags(str, p.state.flags) |
| 974 | |
| 975 | if source.next is not None: |
| 976 | assert source.next == ")" |
| 977 | raise source.error("unbalanced parenthesis") |
| 978 | |
| 979 | for g in p.state.grouprefpos: |
| 980 | if g >= p.state.groups: |
| 981 | msg = "invalid group reference %d" % g |
| 982 | raise error(msg, str, p.state.grouprefpos[g]) |
| 983 | |
| 984 | if flags & SRE_FLAG_DEBUG: |
| 985 | p.dump() |
| 986 | |
| 987 | return p |
| 988 | |
| 989 | def parse_template(source, pattern): |
| 990 | # parse 're' replacement string into list of literals and |
searching dependent graphs…