Enterprise Architect (C ++): импорт исходного кода с пользовательским макросом и аргументом в параграфах

Я хочу провести обратный инжиниринг моделей из исходного кода с помощью Enterprise Architect 11. Определения классов выглядят следующим образом:

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

К сожалению, EA пропускает эти классы, так как макрос не был распознан. Если я определю языковой макрос в EA, MYCUSTOMMACRO(className) пропущено в целом. Это также приводит к ошибке синтаксического анализа, поскольку имя класса отсутствует.

Итак, есть ли способ извлечь имя класса из макроса и импортировать классы?

Спасибо,
Оливер

2

Решение

Вы можете заставить это работать, создав собственный файл технологии 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».

Надеюсь это поможет!

2

Другие решения


По вопросам рекламы [email protected]