PreviousUpNext

15.3.25  src/app/makelib/tools/main/public-tools.api

# The public interface to makelib's tools mechanism.
#
#   (C) 2000 Lucent Technologies, Bell Laboratories
#
# Author: Matthias Blume (blume@kurims.kyoto-u.ac.jp)

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

api  Tools {

    # We inherit most of this interface from Core_Tools.
    #
    # The only things not in Core_Tools are those that
    # cannot be implemented without having access to
    # makelib itself, and which would otherwise create a
    # dependency cycle.
    #
    include api Core_Tools;             # Core_Tools    is from   src/app/makelib/tools/main/core-tools.api

    # makelib's say function:
    #  "say" unconditionally issues a diagnostic message;
    #
    say:   (Void -> String) -> Void;

    #  Handle any of:
    #     /bin/foo        ->  /bin/foo       (Paths with leading '/' are left as-is.)
    #          foo        ->  $foo/foo       (if $foo is a defined anchor)
    #      bin/foo        ->  $ROOT/bin/foo  (otherwise -- $ROOT is anchor_dictionary::root_directory)
    #
    resolve_command_path:  String -> String;

    # Register a "standard" tool
    # based on some shell command:
    #
    note_standard_shell_command_tool
        :
        { tool:             String,
          ilk:              String,
          suffixes:         List( String ),
          extension_style:  Extension_Style,
          template:         Null_Or( String ),
          dflopts:          Tool_Options,

          command_standard_path
              :
              Void -> (String, List( String ))
        }
        ->
        Void;

    #  Make a boolean control 
    #
    make_boolean_control
        :
        ( String,
          String,
          Bool
        )
        ->
        { get: Void -> Bool,
          set: Bool -> Void
        };
};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext