Advanced output of preprocessor

Author(s): Isabel Garcia-Contreras.

Raw printer outputs the analysis results of ciaopp without preprocessing any information, as it is represented internally in CiaoPP

How to use it

?- set_pp_flag(output_lang, raw).

yes
% make analysis
?- module(foo).
{Loading current module from foo.pl
{loaded in 390.268 msec.}
}

yes
?- analyze(eterms).
{Analyzing foo.pl
{preprocessed for the plai fixpoint in 1.736 msec.}
{analyzed by plai using eterms with local-control off in 5.106 msec.}
}

?- output.
{written file .../foo_eterms_co.pl}

yes
?- % open file or C-c C-v in emacs

The output will be generated as a module importing package raw. The idea is to be able to load this analysis (containing the translations to avoid recomputation), but it not implemented yet.


Usage and interface

Documentation on exports

PREDICATEraw_output/1

Usage:raw_output(File)

Shows the current state of the plai databases in file File, including:

  • Transformed clauses.
  • Inferred assertions (completes).
  • Information at program point (memo_tables).
  • State of the types library.

  • The following properties should hold at call time:
    (stream/1)File is an open stream.

Usage:

Shows the code transformed to be used by the fixpoints (given by trans_clause/3).

    Usage:

    Shows all the information inferred by ciaopp.

      Shows information about the modular analysis registries.

      Usage:show_global_answer_table(AbsInt)

      Shows de global answer table for modular analysis with domain AbsInt

        Shows the list of changes that need computation in the fixpoint dd.