object

# `modules_diagram_support`

Utility predicates for supporting Prolog modules in diagrams.

Author: Paulo Moura
Version: 0:19:5
Date: 2022-07-08
Compilation flags:
`static, context_switching_calls`
Dependencies:
(none)
Remarks:

> - Supported backend Prolog systems: ECLiPSe, SICStus Prolog, SWI-Prolog, and YAP.

Inherited public predicates:
(none)

## Public predicates

### `module_property/2`

Access to module properties, at least `exports/1`, `file/1`, and `file/2` but also `declares/2`, `defines/2`, `calls/2`, and `provides/3` when possible.

Compilation flags:
`static`
Template:
`module_property(Module,Property)`
Mode and number of proofs:
`module_property(?atom,?callable)` - `zero_or_more`

### `loaded_file_property/2`

Access to loaded source file properties, at least `basename/1`, `directory/1` but also `parent/1` when possible.

Compilation flags:
`static`
Template:
`loaded_file_property(File,Property)`
Mode and number of proofs:
`loaded_file_property(?atom,?callable)` - `zero_or_more`

### `source_file_extension/1`

Valid source file extension for Prolog source files.

Compilation flags:
`static`
Template:
`source_file_extension(Extension)`
Mode and number of proofs:
`source_file_extension(?atom)` - `one_or_more`

## Protected predicates

(none)

## Private predicates

(none)

## Operators

(none)