diff options
author | Patrick Lehmann <Patrick.Lehmann@plc2.de> | 2021-01-05 01:11:21 +0100 |
---|---|---|
committer | tgingold <tgingold@users.noreply.github.com> | 2021-01-05 18:50:44 +0100 |
commit | 072bfb7557da49d84a5709656af93e464359a994 (patch) | |
tree | a3ba360cf2d51a56fb28badcc1931174b0cb74e4 /doc/pyGHDL | |
parent | d9a352be388e8f1b88c87af3240816f4381ec3fc (diff) | |
download | ghdl-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.rst | 79 |
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: |