Удаление аннотаций из модели 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);