PreviousUpNext

15.3.33  src/app/yacc/src/la-lr-graph.api

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

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



###                 "The world is all gates, all opportunities,
###                  strings of tension waiting to be struck."
###
###                                -- Ralph Waldo Emerson



api La_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
    package graph:              Lr_Graph;               # Lr_Graph              is from   src/app/yacc/src/lr-graph.api

    sharing grammar == internal_grammar::grammar == core::grammar == graph::grammar;
    sharing internal_grammar == core::internal_grammar == graph::internal_grammar;
    sharing core == graph::core;

    Lcore
        =
        LCORE   (List ((core::Item, List( grammar::Terminal)) ), Int);

    add_lookahead
        :
        { graph:  graph::Graph,
          first:  List( grammar::Symbol ) -> List( grammar::Terminal ),
          eop:  List( grammar::Terminal ),
          nonterms:  Int,
          nullable: grammar::Nonterminal -> Bool,
          produces:  grammar::Nonterminal -> List( internal_grammar::Rule ),
          rules:  List( internal_grammar::Rule ),
          eps_prods:  core::Core -> List( internal_grammar::Rule ),
          print:  String -> Void,  #  for debugging 
          term_to_string:  grammar::Terminal -> String,
          nonterm_to_string:  grammar::Nonterminal -> String
        }
        ->
        List( Lcore );

    pr_lcore:  ((grammar::Symbol -> String), (grammar::Nonterminal -> String) ,
                  (grammar::Terminal -> String), (String -> Void)) ->
                                     Lcore -> Void;
};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext