Metadata-Version: 2.0
Name: modparc
Version: 0.2.1
Summary: A Modelica parser based on parser generator
Home-page: https://github.com/xie-dongping/modparc
Author: 谢东平 Dongping XIE
Author-email: dongping.xie.tud@gmail.com
License: GNU General Public License v3
Keywords: modparc
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Requires-Dist: funcparserlib

===============================
modparc
===============================


.. image:: https://img.shields.io/pypi/v/modparc.svg
        :target: https://pypi.python.org/pypi/modparc

.. image:: https://img.shields.io/travis/xie-dongping/modparc.svg
        :target: https://travis-ci.org/xie-dongping/modparc

.. image:: https://readthedocs.org/projects/modparc/badge/?version=latest
        :target: https://modparc.readthedocs.io/en/latest/?badge=latest
        :alt: Documentation Status

.. image:: https://pyup.io/repos/github/xie-dongping/modparc/shield.svg
     :target: https://pyup.io/repos/github/xie-dongping/modparc/
     :alt: Updates


modparc is a Modelica parser in Python based on parser combinator.


* Free software: GNU General Public License v3
* Source code: https://github.com/xie-dongping/modparc.
* Documentation: https://modparc.readthedocs.io.

.. contents::

Quickstart
----------

Install the package from PyPI:

.. code-block:: bash

    $ pip install modparc


To parse a Modelica source file `"your_modelica_file.mo"`:

.. code-block:: python

    import modparc
    model_definition = modparc.parse_file("your_modelica_file.mo")

To list all the equations in the `model_definition` instance:

.. code-block:: python

    all_equations = model_definition.search('Equation')
    for equation in all_equations:
        print(equation.code())  # The code of the equation as string

To get the name of the model loaded:

.. code-block:: python

    print(model_definition.name())  # get the name of the stored class
    print(model_definition.class_type())  # get the type of the class

Features
--------

* Experimentally parses Modelica Standard Library 3.2.1
* Search element of a certain class

Known Issues
------------

* Handling tokenization of Q-IDENT and comments, which comes first?
* Assertion syntax not defined in Modelica specification
* Default recursion depth is not enough for long vector literals
* Cyclic import is neccessary for the Modelica syntax definition

Credits
-------

This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.

The test cases used code from the `ModelicaByExample library (MIT License by Michael Tiller)`_.

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage
.. _`ModelicaByExample`: https://github.com/xogeny/ModelicaBook




=======
History
=======

0.1.5 (2016-10-22)
------------------

* First release on PyPI.

0.2.0 (2016-10-22)
------------------

* Get names and types of the defintions
* Roundtripping of the defintions


