Skip to content

Commit b48599b

Browse files
gh-133555: Allow regenerating the parser with Python < 3.14 (#133557)
Co-authored-by: Adam Turner <[email protected]>
1 parent 90f476e commit b48599b

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

Grammar/Tokens

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# When adding new tokens, remember to update the PEG generator in
2+
# Tools/peg_generator/pegen/parser_generator.py
3+
# This will ensure that older versions of Python can generate a Python parser
4+
# using "python -m pegen python <GRAMMAR FILE>".
5+
16
ENDMARKER
27
NAME
38
NUMBER

Tools/peg_generator/pegen/parser_generator.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,11 @@ def __init__(self, rules: Dict[str, Rule], tokens: Set[str]):
8181
self.tokens.add("FSTRING_START")
8282
self.tokens.add("FSTRING_END")
8383
self.tokens.add("FSTRING_MIDDLE")
84+
# If python < 3.14 add the virtual tstring tokens
85+
if sys.version_info < (3, 14, 0, 'beta', 1):
86+
self.tokens.add("TSTRING_START")
87+
self.tokens.add("TSTRING_END")
88+
self.tokens.add("TSTRING_MIDDLE")
8489

8590
def visit_NameLeaf(self, node: NameLeaf) -> None:
8691
if node.value not in self.rules and node.value not in self.tokens:

0 commit comments

Comments
 (0)