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