Skip to content

Resolve "Translators初始化流程重构:配置器与注册器实现"

mingfa.yang requested to merge 415-translators into master

Closes #415 (closed)

注册器相关改动带来逻辑变动:

Cpp 翻译器

CppDefaultMemberOperatorLtTranslator的属性self.c_operatorupdate更新为[CDefaultMemberOperatorTranslator], 如今设置为TC.KCMemberFunction对应的Tranlator list, 理论上self.c_operator.translate时也可通过condition调用到CDefaultMemberOperatorTranslator。 同理有:

  • CppDefaultConstructorFunctionTranslator,
  • CppDefaultCopyConstructorFunctionTranslator,
  • CppDefaultMoveConstructorFunctionTranslator,
  • CppDefaultDestructorFunctionTranslator,
  • CppDefaultAssignmentOperatorFunctionTranslator。

C 翻译器

CDefaultMemberOperatorImplTranslator的属性self.declupdate更新为[CDefaultMemberOperatorTranslator], 如今也设置为TC.KCMemberFunction对应的Tranlator list。 同理有:

  • CDefaultConstructorFunctionImplTranslator,
  • CDefaultCopyConstructorFunctionImplTranslator,
  • CDefaultMoveConstructorFunctionImplTranslator,
  • CDefaultDestructorFunctionImplTranslator,
  • CDefaultAssignmentOperatorFunctionImplTranslator,

配置器修改包括:

1. 全局输出目录实现方式

不再通过某个 OutputDirectoryTranslator,改为一项在初始化时设置为命令行参数 output_directory 的全局配置

2. 引用头文件目录前缀

不再通过 FileDirectoryTranslator,改为分语言的配置项 include_dir

3. 指定虚基类的方式

不再通过继承 Translator 并在 condition 中写,改为一项全局配置。虚基类相关翻译器在默认情况下就包括在翻译器的列表中,在 condition 中查全局配置决定是否将遇到的类翻译为虚基类。

相关文档

https://alidocs.dingtalk.com/i/nodes/2Amq4vjg89gPPYd1SQ9KQakLV3kdP0wQ?cid=664817348:1245750795&corpId=dingd9dcd0219393a3204ac5d6980864d335&doc_type=wiki_doc&iframeQuery=utm_medium=im_card&utm_source=portal&rnd=0.4039311725286965&utm_medium=portal_recent&utm_scene=team_space&utm_source=im

Edited by mingfa.yang

Merge request reports

Loading