[net.sources] Prolog library: ixref.hlp

pereira@sri-unix.UUCP (08/15/83)

File: Mec:Ixref.Hlp     Author: R.A.O'Keefe     Updated: 10 May 1983
 
#purpose.
ixref is an interactive cross-reference utility.  You can use it to
tell you whether you are redefining any system predicates, to find
out which predicates are used but not defined, to discover which
predicates call what other predicates, and so on.
 
#sources.
The Prolog interactive Cross-reference program no longer exists as
a separate entity.  Instead, there are three programs
        mec:helper.pl           -- general help utility
        mec:pp.pl               -- pretty-printer (needs helper)
        mec:ixref.pl            -- needs pp and helper
 
#commands.
ixref is part of ToolKit.  It extends the TermPatterns of pp.pl
(see Mec:PP.Hlp, or give_help(pp) for details) with patterns
 
        from(File)              -- predicates defined in File
        from(-)                 -- predicates from nowhere (undefined)
        >(Patt)                 -- calling Patt
        <(Patt)                 -- called by Patt
        @>(Patt)                -- calling Patt, even indirectly
        @<(Patt)                -- called by Patt, even indirectly.
E.g. if p :- q.  q :- r. then p > q > r and p @> r, but not p > r.
Ixref also provides two new commands:
        sf                      -- show file names ixreffed
        sf "StrPatt"            -- show selected file names
        sf TermPatt             -- show files defining any Patt
        sp From-To              -- show call paths between From@>To.
and of course
        ixref(Files)            -- parse files & collect call/define info
 
#database.
The data extracted by ixref(Files) consists of
        $seen(File)             -- File has been ixreffed
        $seen(Fn,Ar)            -- Fn/Ar has been defined OR used
        $defn(Fn,Ar,File)       -- Fn/Ar is defined in File
        $call(Goal,Arg,Inc)     -- same as XREF's applies/2.
        $call(F,A, G,B)         -- F/A calls G/B
 
#misc.
The storage required is about 2/3 of the storage used by the original
clauses, e.g. PRESS needs about 35k.
        Mec:ToolKit.Exe
is a version of UTIL with Helper, Pp, Ixref, and Vcheck compiled.
It can be used as an interactive cross-referencer.
 
#end_of_file.