## 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.pkgstipulate
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.pkgherein
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-2015,
## released per terms of SMLNJ-COPYRIGHT.