Lines Matching refs:source

99     def checklookbehindgroup(self, gid, source):
102 raise source.error('cannot refer to an open group')
104 raise source.error('cannot refer to group defined in the same '
307 def _class_escape(source, escape):
319 escape += source.getwhile(2, HEXDIGITS)
321 raise source.error("incomplete escape %s" % escape, len(escape))
323 elif c == "u" and source.istext:
325 escape += source.getwhile(4, HEXDIGITS)
327 raise source.error("incomplete escape %s" % escape, len(escape))
329 elif c == "U" and source.istext:
331 escape += source.getwhile(8, HEXDIGITS)
333 raise source.error("incomplete escape %s" % escape, len(escape))
337 elif c == "N" and source.istext:
340 if not source.match('{'):
341 raise source.error("missing {")
342 charname = source.getuntil('}', 'character name')
346 raise source.error("undefined character name %r" % charname,
351 escape += source.getwhile(2, OCTDIGITS)
354 raise source.error('octal escape value %s outside of '
361 raise source.error('bad escape %s' % escape, len(escape))
365 raise source.error("bad escape %s" % escape, len(escape))
367 def _escape(source, escape, state):
379 escape += source.getwhile(2, HEXDIGITS)
381 raise source.error("incomplete escape %s" % escape, len(escape))
383 elif c == "u" and source.istext:
385 escape += source.getwhile(4, HEXDIGITS)
387 raise source.error("incomplete escape %s" % escape, len(escape))
389 elif c == "U" and source.istext:
391 escape += source.getwhile(8, HEXDIGITS)
393 raise source.error("incomplete escape %s" % escape, len(escape))
397 elif c == "N" and source.istext:
400 if not source.match('{'):
401 raise source.error("missing {")
402 charname = source.getuntil('}', 'character name')
406 raise source.error("undefined character name %r" % charname,
411 escape += source.getwhile(2, OCTDIGITS)
415 if source.next in DIGITS:
416 escape += source.get()
418 source.next in OCTDIGITS):
420 escape += source.get()
423 raise source.error('octal escape value %s outside of '
431 raise source.error("cannot refer to an open group",
433 state.checklookbehindgroup(group, source)
435 raise source.error("invalid group reference %d" % group, len(escape) - 1)
438 raise source.error("bad escape %s" % escape, len(escape))
442 raise source.error("bad escape %s" % escape, len(escape))
447 def _parse_sub(source, state, verbose, nested):
452 sourcematch = source.match
453 start = source.tell()
455 itemsappend(_parse(source, state, verbose, nested + 1,
507 def _parse(source, state, verbose, nested, first=False):
513 sourceget = source.get
514 sourcematch = source.match
520 this = source.next
539 code = _escape(source, this, state)
546 here = source.tell() - 1
552 if source.next == '[':
555 'Possible nested set at position %d' % source.tell(),
563 raise source.error("unterminated character set",
564 source.tell() - here)
568 code1 = _class_escape(source, this)
570 if set and this in '-&~|' and source.next == this:
578 source.tell() - 1),
586 raise source.error("unterminated character set",
587 source.tell() - here)
595 code2 = _class_escape(source, that)
601 source.tell() - 2),
607 raise source.error(msg, len(this) + 1 + len(that))
612 raise source.error(msg, len(this) + 1 + len(that))
636 here = source.tell()
645 if source.next == "}":
651 while source.next in DIGITS:
654 while source.next in DIGITS:
660 source.seek(here)
672 raise source.error("min repeat greater than max repeat",
673 source.tell() - here)
682 raise source.error("nothing to repeat",
683 source.tell() - here + len(this))
685 raise source.error("multiple repeat",
686 source.tell() - here + len(this))
705 start = source.tell() - 1
715 raise source.error("unexpected end of pattern")
720 name = source.getuntil(">", "group name")
721 source.checkgroupname(name, 1, nested)
724 name = source.getuntil(")", "group name")
725 source.checkgroupname(name, 1, nested)
729 raise source.error(msg, len(name) + 1)
731 raise source.error("cannot refer to an open group",
733 state.checklookbehindgroup(gid, source)
740 raise source.error("unexpected end of pattern")
741 raise source.error("unknown extension ?P" + char,
749 if source.next is None:
750 raise source.error("missing ), unterminated comment",
751 source.tell() - start)
762 raise source.error("unexpected end of pattern")
764 raise source.error("unknown extension ?<" + char,
770 p = _parse_sub(source, state, verbose, nested + 1)
775 raise source.error("missing ), unterminated subpattern",
776 source.tell() - start)
785 condname = source.getuntil(")", "group name")
787 source.checkgroupname(condname, 1, nested)
791 raise source.error(msg, len(condname) + 1)
799 raise source.error(msg, len(condname) + 1) from None
801 raise source.error("bad group number",
805 raise source.error(msg, len(condname) + 1)
808 source.tell() - len(condname) - 1
814 (repr(condname) if source.istext else ascii(condname),
815 source.tell() - len(condname) - 1),
818 state.checklookbehindgroup(condgroup, source)
819 item_yes = _parse(source, state, verbose, nested + 1)
820 if source.match("|"):
821 item_no = _parse(source, state, verbose, nested + 1)
822 if source.next == "|":
823 raise source.error("conditional backref with more than two branches")
826 if not source.match(")"):
827 raise source.error("missing ), unterminated subpattern",
828 source.tell() - start)
838 flags = _parse_flags(source, state, char)
841 raise source.error('global flags not at the start '
843 source.tell() - start)
850 raise source.error("unknown extension ?" + char,
858 raise source.error(err.msg, len(name) + 1) from None
863 p = _parse_sub(source, state, sub_verbose, nested + 1)
864 if not source.match(")"):
865 raise source.error("missing ), unterminated subpattern",
866 source.tell() - start)
894 def _parse_flags(source, state, char):
895 sourceget = source.get
901 if source.istext:
904 raise source.error(msg)
908 raise source.error(msg)
912 raise source.error(msg)
915 raise source.error("missing -, : or )")
920 raise source.error(msg, len(char))
925 raise source.error("bad inline flags: cannot turn on global flag", 1)
929 raise source.error("missing flag")
932 raise source.error(msg, len(char))
937 raise source.error(msg)
941 raise source.error("missing :")
946 raise source.error(msg, len(char))
949 raise source.error("bad inline flags: cannot turn off global flag", 1)
951 raise source.error("bad inline flags: flag turned on and off", 1)
973 source = Tokenizer(str)
980 p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
983 if source.next is not None:
984 assert source.next == ")"
985 raise source.error("unbalanced parenthesis")
997 def parse_template(source, state):
1000 s = Tokenizer(source)
1084 if not isinstance(source, str):