Store the precedence list so it can be used by others
This commit is contained in:
parent
1ecbe672bc
commit
fa7514dc21
1 changed files with 5 additions and 0 deletions
|
|
@ -2978,6 +2978,7 @@ class Grammar:
|
||||||
_nonterminals: dict[str, NonTerminal]
|
_nonterminals: dict[str, NonTerminal]
|
||||||
_trivia: list[Terminal]
|
_trivia: list[Terminal]
|
||||||
_precedence: dict[str, typing.Tuple[Assoc, int]]
|
_precedence: dict[str, typing.Tuple[Assoc, int]]
|
||||||
|
_preclist: PrecedenceList
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
|
@ -2994,6 +2995,7 @@ class Grammar:
|
||||||
if precedence is None:
|
if precedence is None:
|
||||||
precedence = []
|
precedence = []
|
||||||
assert precedence is not None
|
assert precedence is not None
|
||||||
|
self._preclist = precedence
|
||||||
|
|
||||||
if trivia is None:
|
if trivia is None:
|
||||||
trivia = []
|
trivia = []
|
||||||
|
|
@ -3027,6 +3029,9 @@ class Grammar:
|
||||||
def get_precedence(self, name: str) -> None | tuple[Assoc, int]:
|
def get_precedence(self, name: str) -> None | tuple[Assoc, int]:
|
||||||
return self._precedence.get(name)
|
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]]:
|
def desugar(self) -> typing.Tuple[list[typing.Tuple[str, list[str]]], set[str]]:
|
||||||
"""Convert the rules into a flat list of productions.
|
"""Convert the rules into a flat list of productions.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue