This module includes the low-level predicates for interacting with CiaoPP. In this interaction model the user performs a sequence of commands to obtain a certain result (e.g., load program, analyze, check assertions).
The basic commands are:
The analyses and transformations are controlled by preprocessor flags. These flags can be modified or consulted with:
Other commands useful when developing or debugging CiaoPP:
Usage:current_pp_flag(Name,Value)
Preprocess flag Name has the value Value.
Usage:current_pp_flag(Name,Value)
Preprocess flag Name has the value Value.
Usage:set_pp_flag(Name,Value)
Sets Value for preprocessor flag Name.
Usage:push_pp_flag(Flag,Value)
Sets Value for preprocessor flag Flag, storing the current value to restore it with pop_pp_flag/1.
Usage:pop_pp_flag(Flag)
Restores the value of the preprocessor flag Flag previous to the last non-canceled push_pp_flag/2 on it.
Usage:flag_value(V)
V is a value for a flag.
Usage:valid_flag_value(Name,Value)
Value is a valid value for preprocessor flag Name.
Usage:output(File)
Outputs to File the current module preprocessing state with the default output options. If unbound, File is unified with a default name (encoding the preprocessing steps). Equivalent to output(File,[]).
Usage:
Outputs the current module preprocessing state with the default output options. Equivalent to output(File,[]).
Usage 1:module(FileName)
Reads the code of FileName and its preprocessing unit, and sets it as the current module.
Usage 2:module(FileNameList)
Reads the code of the list of file names FileNameList (and their preprocessing units), and sets them as the current modules.
Usage 1:transform(Trans)
Returns on backtracking all available program transformation identifiers.
Usage 2:transform(Trans)
Performs transformation Trans on the current module.
Usage:analyze(Analysis)
Analyzes the current module with Analysis. If the intermod flag is not off, this predicate may call module/1.
Usage:transformation(Transformation)
Transformation is a valid transformation identifier.
Usage:analysis(Analysis)
Analysis is a valid analysis identifier.