def __init__(self, name, docs=False): self.name = name self.docs = docs self.comment_pattern = _TextualFinder.any('comment', [r'#[^\n]*']) self.string_pattern = _TextualFinder.any( 'string', [codeanalyze.get_string_pattern()]) self.f_string_pattern = _TextualFinder.any( 'fstring', [codeanalyze.get_formatted_string_pattern()]) self.pattern = self._get_occurrence_pattern(self.name)
def __init__(self, name, docs=False): self.name = name self.docs = docs self.comment_pattern = _TextualFinder.any("comment", [r"#[^\n]*"]) self.string_pattern = _TextualFinder.any( "string", [codeanalyze.get_string_pattern()]) self.f_string_pattern = _TextualFinder.any( "fstring", [codeanalyze.get_formatted_string_pattern()]) self.pattern = self._get_occurrence_pattern(self.name)
def consume_string(self, end=None): if _Source._string_pattern is None: string_pattern = codeanalyze.get_string_pattern() formatted_string_pattern = codeanalyze.get_formatted_string_pattern() original = r"(?:%s)|(?:%s)" % (string_pattern, formatted_string_pattern) pattern = r"(%s)((\s|\\\n|#[^\n]*\n)*(%s))*" % (original, original) _Source._string_pattern = re.compile(pattern) repattern = _Source._string_pattern return self._consume_pattern(repattern, end)