From 157937b7a6df0f34e68717897a50ccd7bdb7326a Mon Sep 17 00:00:00 2001 From: Vincent Fazio Date: Fri, 27 Dec 2024 14:39:14 -0600 Subject: [PATCH] replace {eol_}comments_re references --- tatsu/bootstrap.py | 8 ++++---- tatsu/buffering.py | 6 ++++-- tatsu/codegen/python.py | 16 ++++++++-------- tatsu/ngcodegen/python.py | 4 ++-- test/grammar/syntax_test.py | 2 +- 5 files changed, 19 insertions(+), 17 deletions(-) diff --git a/tatsu/bootstrap.py b/tatsu/bootstrap.py index 510350eb..447c7c30 100644 --- a/tatsu/bootstrap.py +++ b/tatsu/bootstrap.py @@ -35,8 +35,8 @@ def __init__(self, text, /, config: ParserConfig | None = None, **settings): ignorecase=False, namechars='', parseinfo=True, - comments_re=re.compile('(?sm)[(][*](?:.|\\n)*?[*][)]', re.MULTILINE|re.DOTALL), - eol_comments_re=re.compile('#[^\\n]*'), + comments='(?sm)[(][*](?:.|\\n)*?[*][)]', + eol_comments='#[^\\n]*', keywords=KEYWORDS, start='start', ) @@ -55,8 +55,8 @@ def __init__(self, /, config: ParserConfig | None = None, **settings): ignorecase=False, namechars='', parseinfo=True, - comments_re=re.compile('(?sm)[(][*](?:.|\\n)*?[*][)]', re.MULTILINE|re.DOTALL), - eol_comments_re=re.compile('#[^\\n]*'), + comments='(?sm)[(][*](?:.|\\n)*?[*][)]', + eol_comments='#[^\\n]*', keywords=KEYWORDS, start='start', ) diff --git a/tatsu/buffering.py b/tatsu/buffering.py index 5a2a91fd..190d1ad7 100644 --- a/tatsu/buffering.py +++ b/tatsu/buffering.py @@ -49,6 +49,8 @@ def __init__( self.text = self.original_text = text self.whitespace_re = self.build_whitespace_re(config.whitespace) + self.comments_re = None if config.comments in (None, '') else re.compile(config.comments) + self.eol_comments_re = None if config.comments in (None, '') else re.compile(config.eol_comments) self.nameguard = ( config.nameguard if config.nameguard is not None @@ -269,11 +271,11 @@ def eat_whitespace(self): return self._eat_regex(self.whitespace_re) def eat_comments(self): - comments = self._eat_regex_list(self.config.comments_re) + comments = self._eat_regex_list(self.comments_re) self._index_comments(comments, lambda x: x.inline) def eat_eol_comments(self): - comments = self._eat_regex_list(self.config.eol_comments_re) + comments = self._eat_regex_list(self.eol_comments_re) self._index_comments(comments, lambda x: x.eol) def next_token(self): diff --git a/tatsu/codegen/python.py b/tatsu/codegen/python.py index 31e0dea9..f25e1d8c 100755 --- a/tatsu/codegen/python.py +++ b/tatsu/codegen/python.py @@ -462,8 +462,8 @@ def render_fields(self, fields): left_recursion = self.node.config.left_recursion parseinfo = self.node.config.parseinfo namechars = repr(self.node.config.namechars or '') - comments_re = repr(self.node.config.comments_re) - eol_comments_re = repr(self.node.config.eol_comments_re) + comments = repr(self.node.config.comments) + eol_comments = repr(self.node.config.eol_comments) rules = '\n'.join( [self.get_renderer(rule).render() for rule in self.node.rules], @@ -488,8 +488,8 @@ def render_fields(self, fields): parseinfo=parseinfo, keywords=keywords, namechars=namechars, - comments_re=comments_re, - eol_comments_re=eol_comments_re, + comments=comments, + eol_comments=eol_comments, ) abstract_rule_template = """ @@ -535,8 +535,8 @@ def __init__(self, text, /, config: ParserConfig | None = None, **settings): ignorecase={ignorecase}, namechars={namechars}, parseinfo={parseinfo}, - comments_re={comments_re}, - eol_comments_re={eol_comments_re}, + comments={comments}, + eol_comments={eol_comments}, keywords=KEYWORDS, start={start!r}, ) @@ -554,8 +554,8 @@ def __init__(self, /, config: ParserConfig | None = None, **settings): ignorecase={ignorecase}, namechars={namechars}, parseinfo={parseinfo}, - comments_re={comments_re}, - eol_comments_re={eol_comments_re}, + comments={comments}, + eol_comments={eol_comments}, left_recursion={left_recursion}, keywords=KEYWORDS, start={start!r}, diff --git a/tatsu/ngcodegen/python.py b/tatsu/ngcodegen/python.py index 6a83e5c5..76583377 100644 --- a/tatsu/ngcodegen/python.py +++ b/tatsu/ngcodegen/python.py @@ -323,8 +323,8 @@ def _gen_init(self, grammar: grammars.Grammar): ignorecase={grammar.config.ignorecase}, namechars={grammar.config.namechars!r}, parseinfo={grammar.config.parseinfo}, - comments_re={grammar.config.comments_re!r}, - eol_comments_re={grammar.config.eol_comments_re!r}, + comments={grammar.config.comments!r}, + eol_comments={grammar.config.eol_comments!r}, keywords=KEYWORDS, start={start!r}, ) diff --git a/test/grammar/syntax_test.py b/test/grammar/syntax_test.py index b59b7bdf..f111a92b 100644 --- a/test/grammar/syntax_test.py +++ b/test/grammar/syntax_test.py @@ -352,7 +352,7 @@ def test_parse_hash(): start = '#' ; """ - parser = compile(grammar, eol_comments_re='') + parser = compile(grammar, eol_comments='') parser.parse('#', trace=True)