[parser] ConfigurationSetInfo -> StateGraph

This commit is contained in:
John Doty 2024-10-26 06:56:30 -07:00
parent e501caa073
commit 2b72811486

View file

@ -365,7 +365,7 @@ class ItemSet:
) )
class ConfigurationSetInfo: class StateGraph:
"""When we build a grammar into a table, the first thing we need to do is """When we build a grammar into a table, the first thing we need to do is
generate all the configuration sets and their successors. generate all the configuration sets and their successors.
@ -598,7 +598,7 @@ class ErrorCollection:
def gen_exception( def gen_exception(
self, self,
alphabet: list[str], alphabet: list[str],
all_sets: ConfigurationSetInfo, all_sets: StateGraph,
) -> AmbiguityError | None: ) -> AmbiguityError | None:
"""Format all the errors into an error, or return None if there are no """Format all the errors into an error, or return None if there are no
errors. errors.
@ -735,7 +735,7 @@ class TableBuilder(object):
self.action_row = None self.action_row = None
self.goto_row = None self.goto_row = None
def flush(self, all_sets: ConfigurationSetInfo) -> ParseTable: def flush(self, all_sets: StateGraph) -> ParseTable:
"""Finish building the table and return it. """Finish building the table and return it.
Raises ValueError if there were any conflicts during construction. Raises ValueError if there were any conflicts during construction.
@ -1333,9 +1333,9 @@ class GenerateLR1:
return next return next
def gen_sets(self, seeds: list[Configuration]) -> ConfigurationSetInfo: def gen_sets(self, seeds: list[Configuration]) -> StateGraph:
"""Generate all configuration sets starting from the provided seeds.""" """Generate all configuration sets starting from the provided seeds."""
result = ConfigurationSetInfo() result = StateGraph()
successors = [] successors = []
pending = [ConfigSet(seeds)] pending = [ConfigSet(seeds)]
@ -1568,7 +1568,7 @@ class GeneratePager(GenerateLR1):
> Xin Chen, PhD thesis, University of Hawaii, 2009 > Xin Chen, PhD thesis, University of Hawaii, 2009
""" """
def gen_sets(self, seeds: list[Configuration]) -> ConfigurationSetInfo: def gen_sets(self, seeds: list[Configuration]) -> StateGraph:
# This function can be seen as a modified version of items() from # This function can be seen as a modified version of items() from
# Chen's dissertation. # Chen's dissertation.
# #
@ -1714,7 +1714,7 @@ class GeneratePager(GenerateLR1):
# Register all the actually merged, final config sets. I should *not* # Register all the actually merged, final config sets. I should *not*
# have to do all this work. Really really garbage. # have to do all this work. Really really garbage.
result = ConfigurationSetInfo() result = StateGraph()
result.sets = [core_state.to_config_set() for core_state, _ in gc_states] result.sets = [core_state.to_config_set() for core_state, _ in gc_states]
result.core_key = {s: i for i, s in enumerate(result.sets)} result.core_key = {s: i for i, s in enumerate(result.sets)}
result.closures = [closed_state.to_config_set() for _, closed_state in gc_states] result.closures = [closed_state.to_config_set() for _, closed_state in gc_states]