Удаление аннотаций из модели Modelica

Я занимаюсь разработкой библиотеки Modelica, и мне нужно создать документ со списками исходного кода. Я хотел бы иметь возможность включать источник моделей Modelica без аннотаций.

Я мог бы вручную отредактировать их, но я ищу более автоматизированную стратегию. Я предполагаю, что самый удобный и простой подход заключается в использовании какого-либо инструмента для сохранения .mo файлы без аннотаций и включают их в мой документ (я использую \lstinputlisting в латексе).

Можно ли сделать это? У меня есть доступ к Dymola, OpenModelica и JModelica. Dymola, очевидно, способен создавать такой список, поскольку он может включать его в автоматически сгенерированную документацию (Файл> Экспорт> HTML...). Я изучал сценарии с помощью Dymola иOpenModelica, но также не нашел способа сделать это.

JModelica кажется, что это может быть хорошим вариантом, но у меня нет опыта работы с Python. Если это возможно, и кто-то дает мне несколько советов, я готов разобраться в этом сам. Я нашел упоминаниеprettyprint функция, которая может сделать работу, но я не уверен, с чего начать. Я даже не могу найти ссылку на эту функцию в последней документации.

Мне также было бы удобнее найти способ сделать это с помощью Dymola/OpenModelica (через пользовательский интерфейс или с помощью сценария). Я что-то пропустил?

1 ответ

Решение

Я думаю, что вы могли бы использовать saveTotalModel("total.mo", MyModelName) в OpenModelica. Это удалит большинство аннотаций (не те, которые используются для генерации кода, если я правильно помню) и красиво напечатает исходный код, включая все зависимости. Затем вы просто копируете и вставляете модели / пакеты, которые хотите включить в список. Или, если хотите, вы можете сделать что-то вроде следующего, чтобы включить код только для конкретной модели:

loadModel(Modelica);
loadFile("MyModel.mo");
saveTotalModel("total.mo", MyModel.A.B);
clear();
loadFile(MyModel);
str := list(MyModel.A.B);
writeFile("MyModel.A.B.listing", str);
Другие вопросы по тегам