PreviousUpNext

14.5.29  Symbol_Table

The standard library Symbol_Table api defines access to one of the three core compiler state tables, the other two being Linking_Table and Inlining_Table.

The Symbol_Table api is implemented by the symbol_table package.

The Symbol_Table api source code is in src/lib/compiler/front/typecheck-stuff/symbol-table/symbol-table.api.

The above information is manually maintained and may contain errors.

api {    Symbol_Table ;
    Entry  = symbol_table_entry::Symbol_Table_Entry;
    Full_Entry  = (Entry , Null_Or(module::Module_Tree ));
    exception UNBOUND;
    empty : Symbol_Table;
    get : (Symbol_Table , symbol::Symbol) -> Entry;
    bind : (symbol::Symbol , Entry , Symbol_Table)
           -> Symbol_Table;
    special : ((symbol::Symbol -> Entry)
               , (Void -> List(symbol::Symbol )))
              -> Symbol_Table;
    atop : (Symbol_Table , Symbol_Table) -> Symbol_Table;
    consolidate : Symbol_Table -> Symbol_Table;
    consolidate_lazy : Symbol_Table -> Symbol_Table;
    apply : ((symbol::Symbol , Entry) -> Void)
            -> Symbol_Table -> Void;
    map : (Entry -> Entry) -> Symbol_Table -> Symbol_Table;
    fold : ((((symbol::Symbol , Entry)) , X) -> X)
           -> X -> Symbol_Table -> X;
    realfold : ((((symbol::Symbol , Full_Entry)) , X) -> X)
               -> X -> Symbol_Table -> X;
    to_sorted_list : Symbol_Table -> List(((symbol::Symbol , Entry)) );
    bind0 : (symbol::Symbol , Full_Entry , Symbol_Table)
            -> Symbol_Table;
    symbols : Symbol_Table -> List(symbol::Symbol );
    filter : (Symbol_Table , List(symbol::Symbol )) -> Symbol_Table;
};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext