PreviousUpNext

15.3.17  src/app/makelib/parse/libfile-parser.api

## libfile-parser.api  -- Toplevel interpreter for .lib file syntax.

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






###      "In general, they do what you want,
###       unless you want consistency."
###
###             -- Larry Wall, [perl manpage]



# This api is implemented in:
#     src/app/makelib/parse/libfile-parser-g.pkg

stipulate
    package ad  =  anchor_dictionary;                                           # anchor_dictionary                     is from   src/app/makelib/paths/anchor-dictionary.pkg
    package fzp =  freeze_policy;                                               # freeze_policy                         is from   src/app/makelib/parse/freeze-policy.pkg
    package lg  =  inter_library_dependency_graph;                              # inter_library_dependency_graph        is from   src/app/makelib/depend/inter-library-dependency-graph.pkg
    package lsi =  library_source_index;                                        # library_source_index                  is from   src/app/makelib/stuff/library-source-index.pkg
    package ms  =  makelib_state;                                               # makelib_state                         is from   src/app/makelib/main/makelib-state.pkg
herein

    api Libfile_Parser {
        #
        clear_state:         Void -> Void;
        list_freezefiles:    Void -> List( ad::File );
        clear_pickle_cache:  Void -> Void;
        dismiss_freezefile:  ad::File -> Void;

        parse_libfile_tree_and_return_interlibrary_dependency_graph:
          #
          { makelib_file_to_read:       ad::File,                               #  Our primary input, "foo.lib" or whatever. 
            #
            load_plugin:                ad::Path_Root -> String -> Bool,
            library_source_index:       lsi::Library_Source_Index,
            #   
            makelib_session:            ms::Makelib_Session,
            freeze_policy:              fzp::Freeze_Policy,                     # FREEZE_NONE | FREEZE_ONE | FREEZE_ALL; 
            #
            primordial_library:         lg::Library,
            paranoid:                   Bool
          }
          ->
          Null_Or (
              ( lg::Library,                                                    # == inter_library_dependency_graph::Inter_Library_Dependency_Graph
                ms::Makelib_State
              )
          );
    };
end;



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








Comments and suggestions to: bugs@mythryl.org

PreviousUpNext