aboutsummaryrefslogtreecommitdiffstats
path: root/doc/pyGHDL
diff options
context:
space:
mode:
authorPatrick Lehmann <Patrick.Lehmann@plc2.de>2021-01-05 01:11:21 +0100
committertgingold <tgingold@users.noreply.github.com>2021-01-05 18:50:44 +0100
commit072bfb7557da49d84a5709656af93e464359a994 (patch)
treea3ba360cf2d51a56fb28badcc1931174b0cb74e4 /doc/pyGHDL
parentd9a352be388e8f1b88c87af3240816f4381ec3fc (diff)
downloadghdl-072bfb7557da49d84a5709656af93e464359a994.tar.gz
ghdl-072bfb7557da49d84a5709656af93e464359a994.tar.bz2
ghdl-072bfb7557da49d84a5709656af93e464359a994.zip
Reordered navigation bar items.
Diffstat (limited to 'doc/pyGHDL')
-rw-r--r--doc/pyGHDL/index.rst79
1 files changed, 79 insertions, 0 deletions
diff --git a/doc/pyGHDL/index.rst b/doc/pyGHDL/index.rst
new file mode 100644
index 000000000..e22822ce6
--- /dev/null
+++ b/doc/pyGHDL/index.rst
@@ -0,0 +1,79 @@
+.. _python_interface:
+
+Python Interfaces
+#################
+
+.. #
+ we have 2 interfaces (libghdl, dom) and a service (LSP) as well as CLI entry points.
+
+GHDL offers two Python interfaces and a language server protocol service. All
+this is provided from a ``pyGHDL`` packages with four sub-packages:
+
+* ``pyGHDL.cli`` - Command line interface (CLI) applications.
+* ``pyGHDL.dom`` - High-level API as document object model (DOM).
+* ``pyGHDL.libghdl`` - Low-level API to ``libghdl``
+* ``pyGHDL.lsp`` - Language server protocol (LSP) implementation and service
+
+
+.. topic:: pyGHDL.libghdl
+
+ *pyGHDL.libghdl* is a low-level API directly interacting with the shared
+ library ``libghdl....so``/``libghdl....dll``. This is a procedural and C-like
+ interface.
+
+ It comes with some Python generators for easier iterating linked lists.
+
+
+.. topic:: pyGHDL.dom
+
+ *pyGHDL.dom* is a high-level API offering a document object model (DOM).
+ The underlying abstract VHDL language model is provided by `pyVHDLModel <https://github.com/VHDL/pyVHDLModel>`__.
+ The DOM is using ``libghdl`` for file analysis and parsing.
+
+
+.. topic:: pyGHDL.lsp
+
+ *pyGHDL.lsp* is `language server protocol <https://en.wikipedia.org/wiki/Language_Server_Protocol>`__
+ (LSP) written in Python. The implementation offers an HTTPS service that can
+ be used e.g. by editors and IDEs supporting LSP.
+
+
+.. toctree::
+ :hidden:
+
+ ../../pyGHDL/pyGHDL.cli
+ ../../pyGHDL/pyGHDL.dom
+ ../../pyGHDL/pyGHDL.libghdl
+ ../../pyGHDL/pyGHDL.lsp
+
+
+.. _CMDREF:
+
+Scripts and Applications
+########################
+
+The pyVHDLParser package comes with an executables registered by pip in the
+search path.
+
+* ``VHDLParser`` is a wrapper for ``pyVHDLParser.CLI.VHDLParser:main``.
+
+
+.. #
+ This files requires a Python module called 'Frontend-AutoProgram' to be
+ located in the 'doc' root folder. It expects a variable 'parser' of type
+ ArgumentParser.
+
+.. _CMDREF-ghdlls:
+
+.. autoprogram:: AutoProgram:lsp_parser
+ :prog: ghdl-ls
+ :groups:
+ :label: CmdRef:ghdlls:
+
+.. _CMDREF-pnodes:
+
+.. #
+ autoprogram:: AutoProgram:pnodes_parser
+ :prog: ghdl-ls
+ :groups:
+ :label: CmdRef:ghdlls: