Resolve "Translators初始化流程重构:配置器与注册器实现"
Closes #415 (closed)
注册器相关改动带来逻辑变动:
Cpp 翻译器
原CppDefaultMemberOperatorLtTranslator的属性self.c_operator会update更新为[CDefaultMemberOperatorTranslator],
如今设置为TC.KCMemberFunction对应的Tranlator list,
理论上self.c_operator.translate时也可通过condition调用到CDefaultMemberOperatorTranslator。
同理有:
- CppDefaultConstructorFunctionTranslator,
- CppDefaultCopyConstructorFunctionTranslator,
- CppDefaultMoveConstructorFunctionTranslator,
- CppDefaultDestructorFunctionTranslator,
- CppDefaultAssignmentOperatorFunctionTranslator。
C 翻译器
原CDefaultMemberOperatorImplTranslator的属性self.decl会update更新为[CDefaultMemberOperatorTranslator],
如今也设置为TC.KCMemberFunction对应的Tranlator list。
同理有:
- CDefaultConstructorFunctionImplTranslator,
- CDefaultCopyConstructorFunctionImplTranslator,
- CDefaultMoveConstructorFunctionImplTranslator,
- CDefaultDestructorFunctionImplTranslator,
- CDefaultAssignmentOperatorFunctionImplTranslator,
配置器修改包括:
1. 全局输出目录实现方式
不再通过某个 OutputDirectoryTranslator,改为一项在初始化时设置为命令行参数 output_directory 的全局配置
2. 引用头文件目录前缀
不再通过 FileDirectoryTranslator,改为分语言的配置项 include_dir。
3. 指定虚基类的方式
不再通过继承 Translator 并在 condition 中写,改为一项全局配置。虚基类相关翻译器在默认情况下就包括在翻译器的列表中,在 condition 中查全局配置决定是否将遇到的类翻译为虚基类。
相关文档
Edited by mingfa.yang