PreviousUpNext

15.4.46  src/app/makelib/compilable/module-dependencies-summary.pkg

# module-dependencies-summary.pkg

# Compiled by:
#     src/app/makelib/makelib.sublib

# Mythryl source module_dependencies_summarys.
#
#   A Module_Dependencies_Summary abstracts from a source file
#   just that information needed by the makelib dependency
#   analysis code -- which is to say, essentially,
#   the external modules and symbols references.
#
#   This abstraction makes them much shorter,
#   and hence much quicker to re-read from disk.

# Client modules:
#     src/app/makelib/depend/make-dependency-graph.pkg
#     src/app/makelib/compilable/thawedlib-tome.pkg
#     src/app/makelib/compilable/raw-syntax-to-module-dependencies-summary.pkg
#     src/app/makelib/compilable/get-toplevel-module-dependencies-summary-exports.pkg
#     src/app/makelib/compilable/module-dependencies-summary-io.pkg


stipulate
    package sy  =  symbol;                                      # symbol        is from   src/lib/compiler/front/basics/map/symbol.pkg
    package syp =  symbol_path;                                 # symbol_path   is from   src/lib/compiler/front/typer-stuff/basics/symbol-path.pkg
    package sys =  symbol_set;                                  # symbol_set    is from   src/app/makelib/stuff/symbol-set.pkg
herein

    package module_dependencies_summary {
        #
        Symbol      =   sy::Symbol;
        Symbol_Path =   syp::Symbol_Path;

        Declaration
          = BIND   (Symbol, Module_Expression)
          | LOCAL  (Declaration, Declaration)
          | PAR    List Declaration
          | SEQ    List Declaration
          | OPEN   Module_Expression
          | REF    sys::Set

        also
        Module_Expression
          = VARIABLE  Symbol_Path
          | DECL  List Declaration                              # implicit Seq 
          | LET  (List Declaration,  Module_Expression)         # implicit Seq 
          | IGN1 (Module_Expression, Module_Expression)
          ;
    };
end;


## Copyright (c) 1999 by Bell Laboratories, Lucent Technologies
## author: Matthias Blume (blume@cs.princeton.edu)
## The copyright notices of the earlier versions are:
##   Copyright (c) 1995 by AT&T Bell Laboratories
##   Copyright (c) 1993 by Carnegie Mellon University,
##                         School of Computer Science
##                         contact: Gene Rollins (rollins+@cs.cmu.edu)
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext