手工翻译方舟编译器源码:尝试重命名标识符与文本
参考: 小乖他爹:方舟编译器学习笔记6 方舟开源目录简介, 先从maple.cpp
入口代码开始中文化(与前作手工翻译Vue.js源码:尝试重命名标识符与文本类似), 作为初步的可行性实验.
之前以为编译输出文件在重命名标识符后不会有变化, 尝试后发现天真了. 于是现在仅检验是否能够编译通过.
下面是中文化后的src/maple_driver/src/maple.cpp
代码:
using namespace maple;
void 报错(int 返回) {
switch (返回) {
case 无误:
case 退出帮助:
break;
case 退出:
错误(错误日志, "因错误退出!");
break;
case 非法参数:
错误(错误日志, "非法参数!");
break;
case 初始化失败:
错误(错误日志, "初始化失败!");
break;
case 文件未找到:
错误(错误日志, "文件未找到!");
break;
case 工具未找到:
错误(错误日志, "工具未找到!");
break;
case 编译失败:
错误(错误日志, "编译失败!");
break;
case 未实现:
错误(错误日志, "未实现!");
break;
default:
break;
}
}
using namespace maple;
int main(int argc, char **argv) {
选项类 选项;
int 返回 = 选项.分析(argc, argv);
if (返回 == 错误码::无误) {
返回 = 编译器工厂类::取个例().编译(选项);
}
报错(返回);
return 返回;
}
可按原官方编译方法编译通过的完整源码在: 中文编程/OpenArkCompiler
下面打算参考如何看待方舟编译器于 2019 年 8 月 31 日开源?, 先对编译到AnalysisResult的部分进行中文化.
注: 开发环境 – Ubuntu 18.04, 中文输入法, VS Code & 微软C++插件(标识符重命名有时不靠谱, 如return ret
, 重命名ret
会影响return
)