From e60be77e4f3cbccf67761a3c169799ff59b7086f Mon Sep 17 00:00:00 2001 From: Patrick Lehmann Date: Mon, 4 Jan 2021 14:39:02 +0100 Subject: Described GHDLs Python interfaces. --- doc/using/pyGHDL/index.rst | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) (limited to 'doc/using') diff --git a/doc/using/pyGHDL/index.rst b/doc/using/pyGHDL/index.rst index 2b2191798..d732430da 100644 --- a/doc/using/pyGHDL/index.rst +++ b/doc/using/pyGHDL/index.rst @@ -1,7 +1,43 @@ .. _python_interface: -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: + +* ``pyGHDL.libghdl`` - low-level API to ``libghdl`` +* ``pyGHDL.dom`` - high-level API as document object model (DOM) +* ``pyGHDL.lsp`` - language server protocol (LSP) implementation and service + +.. rubric:: ``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. + + +.. rubric:: ``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 `__. + The DOM is using ``libghdl`` for file analysis and parsing. + + +.. rubric:: ``pyGHDL.dom`` + + ``pyGHDL.dom`` is 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/index .. toctree:: :hidden: -- cgit v1.2.3