PreviousUpNext

15.3.27  src/app/yacc/src/core-stuff.api

#  (c) 1989, 1991 Andrew W. Appel, David R. Tarditi 

# Compiled by:
#     src/app/yacc/src/mythryl-yacc.lib

api 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 )
        };
};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext