.. _sphx_glr_examples_composition:
Grammar Composition
===================
This example shows how to do grammar composition in Lark, by creating a new
file format that allows both CSV and JSON to co-exist.
We show how, by using namespaces, Lark grammars and their transformers can be fully reused -
they don't need to care if their grammar is used directly, or being imported, or who is doing the importing.
See `main.py`_ for more details.
.. _main.py: https://github.com/lark-parser/lark/blob/master/examples/composition/main.py
.. raw:: html
.. raw:: html
.. only:: html
.. image:: /examples/composition/images/thumb/sphx_glr_eval_json_thumb.png
:alt:
:ref:`sphx_glr_examples_composition_eval_json.py`
.. raw:: html
Transformer for evaluating json.lark
.. raw:: html
.. only:: html
.. image:: /examples/composition/images/thumb/sphx_glr_eval_csv_thumb.png
:alt:
:ref:`sphx_glr_examples_composition_eval_csv.py`
.. raw:: html
Transformer for evaluating csv.lark
.. raw:: html
.. only:: html
.. image:: /examples/composition/images/thumb/sphx_glr_main_thumb.png
:alt:
:ref:`sphx_glr_examples_composition_main.py`
.. raw:: html
Grammar Composition
.. raw:: html
.. toctree::
:hidden:
/examples/composition/eval_json
/examples/composition/eval_csv
/examples/composition/main