Корпоративный архитектор (C++): импорт исходного кода с пользовательским макросом и аргументом в параграфах
Я хочу провести обратный инжиниринг моделей из исходного кода с помощью Enterprise Architect 11. Определения классов выглядят следующим образом:
class MYCUSTOMMACRO(className) : public baseClass
{
...
}
К сожалению, EA пропускает эти классы, так как макрос не был распознан. Если я определю языковой макрос в EA, MYCUSTOMMACRO(className)
пропущено в целом. Это также приводит к ошибке синтаксического анализа, поскольку имя класса отсутствует.
Итак, есть ли способ извлечь имя класса из макроса и импортировать классы?
Спасибо Оливер
1 ответ
Вы можете заставить это работать, создав собственный файл технологии 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..." нажмите кнопку "Дополнительно...", затем нажмите "Добавить"
Теперь вы можете просто импортировать C++, как обычно, и он должен выбрать ваш класс, определенный "MYCUSTOMMACRO".
Надеюсь это поможет!