# (c) 1989, 1991 Andrew W. Appel, David R. Tarditi
# Compiled by:
#
src/app/yacc/src/mythryl-yacc.libapi Lr_Graph {
package grammar: Grammar; # Grammar is from
src/app/yacc/src/grammar.api package internal_grammar: Internal_Grammar; # Internal_Grammar is from
src/app/yacc/src/internal-grammar.api package core: Core; # Core is from
src/app/yacc/src/core.api sharing grammar == internal_grammar::grammar == core::grammar;
sharing internal_grammar == core::internal_grammar;
Graph;
edges: (core::Core, Graph) -> List { edge: grammar::Symbol, to: core::Core };
nodes: Graph -> List( core::Core );
shift: Graph -> (Int, grammar::Symbol) -> Int; # Int = state #
core: Graph -> Int -> core::Core; # get core for a state
# make_graph_fn: compute the LR (0) sets of items
make_graph_fn: grammar::Grammar ->
{ graph: Graph,
produces: grammar::Nonterminal -> List( internal_grammar::Rule ),
rules: List( internal_grammar::Rule ),
eps_prods: core::Core -> List( internal_grammar::Rule ) };
pr_graph: ((grammar::Symbol -> String),(grammar::Nonterminal -> String) ,
(String -> Void)) -> Graph -> Void;
};