Skip to main content

A Modelica parser based on parser generator

Project description

modparc

https://img.shields.io/pypi/v/modparc.svg https://img.shields.io/travis/xie-dongping/modparc.svg Documentation Status Updates

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

Quickstart

Install the package from PyPI:

$ pip install modparc

To parse a Modelica source file “your_modelica_file.mo”:

import modparc
with open("your_modelica_file.mo", 'r') as f:
    modelica_source_code = f.read()
    model_definition = modparc.parse(modelica_source_code)

To use the model_definition instance:

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

One could also parse a certain syntax element in Modelica:

import modparc
from modparc.syntax import tokenize
source_code = """
              if init==InitializationOptions.FixedPopulation then
                population = initial_population;
              elseif init==InitializationOptions.SteadyState then
                der(population) = 0;
              else
              end if
              """
tokens_list = tokenize(source_code)
if_equation_element = modparc.syntax.equations.if_equation(tokens_list)
sub_equations = if_equation_element.search('Equation')
for equation in sub_equations:
    print(equation.code())  # The code of the equation as string

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.

History

0.1.0 (2016-10-22)

  • First release on Github

0.1.5 (2016-10-22)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for modparc, version 0.1.7
Filename, size File type Python version Upload date Hashes
Filename, size modparc-0.1.7-py2.py3-none-any.whl (17.2 kB) File type Wheel Python version py2.py3 Upload date Hashes View hashes
Filename, size modparc-0.1.7.tar.gz (22.0 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page