从 Modelica 模型中删除注释

Removing annotations from a Modelica model

我正在开发 Modelica 库,需要生成包含源代码清单的文档。我希望能够在没有注释的情况下包含 Modelica 模型的源代码。

我可以手动编辑它们,但我正在寻找更自动化的策略。我猜最方便和直接的方法是使用一些工具来保存 .mo 没有注释的文件并将它们包含在我的文档中(我在 LaTeX 中使用 \lstinputlisting)。

这可以吗?我可以访问 Dymola、OpenModelica 和 JModelica。 Dymola 显然能够生成这样的列表,因为它能够将其包含在自动生成的文档中(文件 > 导出 > HTML...)。我一直在研究使用 Dymola 和 OpenModelica 编写脚本,但也没有找到执行此操作的方法。

JModelica 似乎是个不错的选择,但我没有使用 Python 的经验。如果这是可能的并且有人给我一些指示,我愿意自己研究一下。我发现了对 prettyprint function that might do the job, but I'm not sure where to start. I can't even find reference to that function in the latest documentation.

的提及

我也可以更方便地找到一种使用 Dymola/OpenModelica 的方法(无论是通过 UI 还是使用脚本)。我错过了什么吗?

我认为您可以在 OpenModelica 中使用 saveTotalModel("total.mo", MyModelName)。这将去除大部分注释(如果我没记错的话,不是用于代码生成的注释)并漂亮地打印包括所有依赖项的源代码。然后,您只需复制并粘贴要包含在列表中的 models/packages。或者,如果您愿意,可以执行类似以下操作以仅包含特定模型的代码:

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);