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.