Store the precedence list so it can be used by others

This commit is contained in:
John Doty 2025-01-04 08:57:28 -08:00
parent 1ecbe672bc
commit fa7514dc21

View file

@ -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.