From fa7514dc2196bf573457fa6c2d50863972e34542 Mon Sep 17 00:00:00 2001 From: John Doty Date: Sat, 4 Jan 2025 08:57:28 -0800 Subject: [PATCH] Store the precedence list so it can be used by others --- parser/parser.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/parser/parser.py b/parser/parser.py index cc71f82..7b5c18e 100644 --- a/parser/parser.py +++ b/parser/parser.py @@ -2978,6 +2978,7 @@ class Grammar: _nonterminals: dict[str, NonTerminal] _trivia: list[Terminal] _precedence: dict[str, typing.Tuple[Assoc, int]] + _preclist: PrecedenceList def __init__( self, @@ -2994,6 +2995,7 @@ class Grammar: if precedence is None: precedence = [] assert precedence is not None + self._preclist = precedence if trivia is None: trivia = [] @@ -3027,6 +3029,9 @@ class Grammar: def get_precedence(self, name: str) -> None | tuple[Assoc, int]: return self._precedence.get(name) + def precedence(self) -> PrecedenceList: + return self._preclist + def desugar(self) -> typing.Tuple[list[typing.Tuple[str, list[str]]], set[str]]: """Convert the rules into a flat list of productions.