Usage

To use modparc in a project:

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

To list all the equations in the model_definition instance:

5
6
7
 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:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
 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