.. index:: single: modules_diagram_support
.. _modules_diagram_support/0:

.. rst-class:: right

**object**

``modules_diagram_support``
===========================

Utility predicates for supporting Prolog modules in diagrams.

| **Availability:** 
|    ``logtalk_load(diagrams(loader))``

| **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)

.. contents::
   :local:
   :backlinks: top

Public predicates
-----------------

.. index:: module_property/2
.. _modules_diagram_support/0::module_property/2:

``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``


------------

.. index:: loaded_file_property/2
.. _modules_diagram_support/0::loaded_file_property/2:

``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``


------------

.. index:: source_file_extension/1
.. _modules_diagram_support/0::source_file_extension/1:

``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)

