Enterprise Architect (C++):使用括号中的自定义宏和参数导入源代码

Enterprise Architect (C++): Import Source Code with Custom Macro and Argument in Parantheses

我想使用 Enterprise Architect 11 从源代码逆向工程模型。class 定义如下:

class MYCUSTOMMACRO(className) : public baseClass
{
    ...
}

不幸的是,EA 跳过了这些 classes,因为宏没有被识别。如果我在EA中定义一个语言宏,MYCUSTOMMACRO(className)会被整体跳过。这又会产生解析错误,因为缺少 class 名称。

那么,有没有办法从宏中提取 class 名称并导入 classes?

谢谢, 奥利弗

您可以根据以下内容创建自己的 MDG 技术文件来实现此目的:

<MDG.Technology version="1.0"><Documentation id="0" name="Customer Code Module" version="1" notes="Allows using a Customer Macro as an identifier"/>
<CodeModules><CodeModule language="C++" notes=""><CodeOptions><CodeOption name="PrependGrammarDefinitions">
                    <![CDATA[
<identifier>            ::= "MYCUSTOMMACRO" "(" <> ")"      

]]>
</CodeOption>
</CodeOptions></CodeModule></CodeModules>
</MDG.Technology>

将代码保存为 XML 文件,即 prependgrammer.xml。

创建后,您可以通过扩展|激活它MDG Technologies... 对话框,然后点击 "Advanced..." 按钮,然后点击添加。

现在您可以按照正常方式导入 C++,它应该会获取您定义的 "MYCUSTOMMACRO" class。

希望对您有所帮助!