# (c) 1989, 1991 Andrew W. Appel, David R. Tarditi
# Compiled by:
#
src/app/yacc/src/mythryl-yacc.libapi Core_Stuff {
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;
# make_funcs: create functions for the set of productions derived from a
# nonterminal, the cores that result from shift/gotos from a core,
# and return a list of rules
#
make_funcs
:
grammar::Grammar
->
{ produces: grammar::Nonterminal -> List( internal_grammar::Rule ),
# shifts: take a core and compute all the cores
# that result from shifts/gotos on symbols
shifts: core::Core -> List ((grammar::Symbol, List (core::Item))),
rules: List( internal_grammar::Rule ),
# epsProds: take a core compute epsilon productions for it
eps_prods: core::Core -> List( internal_grammar::Rule )
};
};