diff options
author | Mark Shannon <mark@hotpy.org> | 2025-01-20 17:09:23 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-20 17:09:23 (GMT) |
commit | ab61d3f4303d14a413bc9ae6557c730ffdf7579e (patch) | |
tree | ec35e41ce467f4cb281208970cf453a680d82aed /Tools/cases_generator/parsing.py | |
parent | 0a6412f9cc9e694e76299cfbd73ec969b7d47af6 (diff) | |
download | cpython-ab61d3f4303d14a413bc9ae6557c730ffdf7579e.zip cpython-ab61d3f4303d14a413bc9ae6557c730ffdf7579e.tar.gz cpython-ab61d3f4303d14a413bc9ae6557c730ffdf7579e.tar.bz2 |
GH-128914: Remove conditional stack effects from `bytecodes.c` and the code generators (GH-128918)
Diffstat (limited to 'Tools/cases_generator/parsing.py')
-rw-r--r-- | Tools/cases_generator/parsing.py | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/Tools/cases_generator/parsing.py b/Tools/cases_generator/parsing.py index 41b36b6..b50bb62 100644 --- a/Tools/cases_generator/parsing.py +++ b/Tools/cases_generator/parsing.py @@ -77,12 +77,11 @@ class Block(Node): class StackEffect(Node): name: str = field(compare=False) # __eq__ only uses type, cond, size type: str = "" # Optional `:type` - cond: str = "" # Optional `if (cond)` size: str = "" # Optional `[size]` # Note: size cannot be combined with type or cond def __repr__(self) -> str: - items = [self.name, self.type, self.cond, self.size] + items = [self.name, self.type, self.size] while items and items[-1] == "": del items[-1] return f"StackEffect({', '.join(repr(item) for item in items)})" @@ -278,22 +277,15 @@ class Parser(PLexer): type_text = self.require(lx.IDENTIFIER).text.strip() if self.expect(lx.TIMES): type_text += " *" - cond_text = "" - if self.expect(lx.IF): - self.require(lx.LPAREN) - if not (cond := self.expression()): - raise self.make_syntax_error("Expected condition") - self.require(lx.RPAREN) - cond_text = cond.text.strip() size_text = "" if self.expect(lx.LBRACKET): - if type_text or cond_text: + if type_text: raise self.make_syntax_error("Unexpected [") if not (size := self.expression()): raise self.make_syntax_error("Expected expression") self.require(lx.RBRACKET) size_text = size.text.strip() - return StackEffect(tkn.text, type_text, cond_text, size_text) + return StackEffect(tkn.text, type_text, size_text) return None @contextual |