Skip to content

Commit f63c364

Browse files
committed
fixup! gh-138970: Add general metadata system to the peg generator
1 parent 4eeca29 commit f63c364

File tree

3 files changed

+13
-30
lines changed

3 files changed

+13
-30
lines changed

Lib/test/test_peg_generator/test_pegen.py

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,27 +1145,10 @@ def test_rule_flags(self) -> None:
11451145
single_custom_rule = rules['single_custom_flag']
11461146
self.assertFalse(single_custom_rule.memo, "single_custom_flag should have memo=False")
11471147
self.assertEqual(single_custom_rule.flags, frozenset(['custom']),
1148-
f"single_custom_flag flags should be ['custom'], got {single_custom_rule.flags}")
1148+
f"single_custom_flag flags should be {'custom'}, got {single_custom_rule.flags}")
11491149

11501150
# Test no flags rule
11511151
no_flags_rule = rules['no_flags_rule']
11521152
self.assertFalse(no_flags_rule.memo, "no_flags_rule should have memo=False")
11531153
self.assertEqual(no_flags_rule.flags, [],
1154-
f"no_flags_rule flags should be [], got {no_flags_rule.flags}")
1155-
1156-
def test_memo(self) -> None:
1157-
"""Test that the old (memo) syntax works with the flag system"""
1158-
grammar_source = """
1159-
start: memo_rule
1160-
1161-
memo_rule (memo):
1162-
| "test"
1163-
"""
1164-
1165-
grammar: Grammar = parse_string(grammar_source, GrammarParser)
1166-
rules = grammar.rules
1167-
1168-
memo_rule = rules['memo_rule']
1169-
self.assertTrue(memo_rule.memo, "memo_rule should have memo=True")
1170-
self.assertEqual(memo_rule.flags, frozenset(['memo']),
1171-
f"memo_rule flags should be ['memo'], got {memo_rule.flags}")
1154+
f"no_flags_rule flags should be [], got {no_flags_rule.flags}")

Tools/peg_generator/pegen/grammar_parser.py

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Tools/peg_generator/pegen/metagrammar.gram

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ rules[RuleList]:
5050
| rule { [rule] }
5151

5252
rule[Rule]:
53-
| rulename flags? ":" alts NEWLINE INDENT more_alts DEDENT {
54-
Rule(rulename[0], rulename[1], Rhs(alts.alts + more_alts.alts), flags=opt) }
55-
| rulename flags? ":" NEWLINE INDENT more_alts DEDENT {
56-
Rule(rulename[0], rulename[1], more_alts, flags=opt) }
57-
| rulename flags? ":" alts NEWLINE { Rule(rulename[0], rulename[1], alts, flags=opt) }
53+
| rulename flags=flags? ":" alts NEWLINE INDENT more_alts DEDENT {
54+
Rule(rulename[0], rulename[1], Rhs(alts.alts + more_alts.alts), flags=flags) }
55+
| rulename flags=flags? ":" NEWLINE INDENT more_alts DEDENT {
56+
Rule(rulename[0], rulename[1], more_alts, flags=flags) }
57+
| rulename flags=flags? ":" alts NEWLINE { Rule(rulename[0], rulename[1], alts, flags=flags) }
5858

5959
rulename[RuleName]:
6060
| NAME annotation { (name.string, annotation) }

0 commit comments

Comments
 (0)