PreviousUpNext

15.4.66  src/app/makelib/depend/tome-symbolmapstack.pkg

## tome-symbolmapstack.pkg

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



# To implement the Mythryl "run" construct, we must have
# access to the full definition of the packages (and
# generics) exported from a given source file.
# (Or more precisely, from a compilation unit -- thawedlib_tome or frozenlib_tome.)
#
# In this file we define the core datastructure used
# to record such definitions.  It is used (only) in the
#
#     src/app/makelib/depend/inter-library-dependency-graph.pkg
#
# definition of the Tome type, which in turn
# are used to associate this information with Far_Compiledfile
# nodes in the inter-library (library-granularity)
# dependency graph.

# The lookup semantics of this datastructure are implemented by 'get'() in
#
#     src/app/makelib/depend/make-dependency-graph.pkg

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

    package tome_symbolmapstack {
        #
        Tome_Symbolmapstack
          #
          = EMPTY
          | FCTENV   sy::Symbol -> Null_Or(Value)       # "FCT" == "functor" (generic package);   "ENV" == environment (== dictionary == map).
          | NAMING  (sy::Symbol, Value)
          | LAYER   (Tome_Symbolmapstack, Tome_Symbolmapstack)
          | FILTER  (sys::Set, Tome_Symbolmapstack)
          | SUSPEND  Void -> Tome_Symbolmapstack

        withtype
        Value = Tome_Symbolmapstack;
    };
end;



## (C) 1999 Lucent Technologies, Bell Laboratories
## Author: Matthias Blume (blume@kurims.kyoto-u.ac.jp)
# Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
# released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext