PreviousUpNext

15.4.527  src/lib/compiler/debugging-and-profiling/profiling/tell-env.pkg

## tell-dictionary.pkg

# Compiled by:
#     src/lib/compiler/debugging-and-profiling/debugprof.sublib

# This provides an abstract interface to the symbol tables for
# the profiler to use. 



###       "There has never been an unexpectedly
###        short debugging period in the history
###        of computers."
###
###                          -- Steven Levy


api Tell_Dictionary {

   Symbol;
   Dictionary = symbolmapstack::Symbolmapstack;
   Naming;
   Type;
   name:  Symbol -> String;
   components:  Dictionary -> List( (Symbol, Naming) );
   str_bind:  Naming -> Null_Or( Dictionary );
   val_bind:  Naming -> Null_Or( Type );
   fun_type:  Type -> Null_Or( (Type, Type) );
};

package tell_dictionary: Tell_Dictionary {              # Tell_Dictionary       is from   src/lib/compiler/debugging-and-profiling/profiling/tell-env.pkg

    Symbol  = symbol::Symbol;
    Dictionary    = symbolmapstack::Symbolmapstack;
    Naming = symbolmapstack_entry::Symbolmapstack_Entry;
    Type  = types::Type;

   name = symbol::name;

   fun components _ = [];
   fun str_bind _ = NULL;
   fun val_bind _ = NULL;
   fun fun_type _ = NULL;

 /*
   fun components e = 
    let namings = REF (NIL:  List( Symbol * naming ))
        fun get x = namings := x . *namings
     in Dictionary::apply get (Dictionary::consolidate e);
        *namings
    end

   fun strBind (module::NAMED_PACKAGE (module::STRvar { access, naming, ... } )) =
               THE (module_junk::makeDict (naming, access))
     | strBind _ = NULL

   fun named_value (module::VARBIND (Variables::ORDINARY_VARIABLE { access=access::INLINE _, ... } )) = NULL
     | named_value (module::VARBIND (Variables::ORDINARY_VARIABLE { type=REF type, ... } )) = THE type
     | named_value _ = NULL

   fun funType type =
     let type' = type_junk::head_reduce_type type
      in if type_types::is_arrow_type type'
          then THE (type_types::domain type', type_types::range type')
          else NULL
     end
 */
};




## COPYRIGHT (c) 1995 AT&T Bell Laboratories.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2013,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext