简介
ets_frontend组件是方舟运行时子系统的前端工具,结合ace-ets2bundle组件,支持将ets文件转换为方舟字节码文件。
ets_frontend组件架构图

目录
/arkcompiler/ets_frontend/
├── test262 # test262测试配置和运行脚本
├── testTs # 系统测试目录
├── es2panda
├── aot # 逻辑入口
├── binder # 信息绑定
├── compiler # 编译逻辑
├── ir # 字节码生成
├── lexer # 词法分析
├── parser # 语法解析,ast生成
├── scripts # 脚本目录
├── test # 测试目录
├── typescript # typescript支持
└── util # 工具目录
├── ts2panda
├── doc # 文档
├── scripts # 依赖的脚本
├── src # 源码存放目录
├── templates # ruby模板文件
├── tests # UT单元测试目录
├── tools # ts2abc提供的工具
└── ts2abc # abc文件生成相关
编译构建
ets_frontend组件采用命令行交互方式,支持将JavaScript代码转换为方舟字节码文件,使其能够在方舟运行时上运行。支持Windows/Linux/MacOS平台。方舟前端工具在linux平台上可通过全量编译或指定编译前端工具链获取。
$ ./build.sh --product-name rk3568 --build-target ets_frontend_build
使用说明
es2panda使用方式
使用ets_frontend组件下的es2abc可执行文件将JavaScript文件转换为方舟字节码文件
$ cd out/rk3568/clang_x64/arkcompiler/ets_frontend/
$ ./es2abc [options] file.js
当不输入任何option参数时,默认生成方舟二进制文件。
<>
<><>选项 | <><>描述 | <><>取值范围 | <><>默认值 |
---|---|---|---|
<><>--debug-info | <><>携带debug信息 | <><>- | <><>- |
<><>--debugger-evaluate-expression | <><>debugger下对输入的base64形式的表达式求值 | <><>- | <><>- |
<><>--dump-assembly | <><>输出为汇编文件 | <><>- | <><>- |
<><>--dump-ast | <><>打印解析得到的ast(抽象语法树) | <><>- | <><>- |
<><>--dump-debug-info | <><>打印debug信息 | <><>- | <><>- |
<><>--dump-literal-buffer | <><>打印literal buffer内容 | <><>- | <><>- |
<><>--dump-size-stat | <><>显示字节码相关的统计信息 | <><>- | <><>- |
<><>--extension | <><>指定输入类型 | <><>['js', 'ts', 'as'] | <><>- |
<><>--help | <><>帮助提示 | <><>- | <><>- |
<><>--module | <><>按照ESM模式编译 | <><>- | <><>- |
<><>--opt-level | <><>指定编译优化等级 | <><>['0', '1', '2'] | <><>0 |
<><>--output | <><>输出文件路径 | <><>- | <><>- |
<><>--parse-only | <><>只对输入文件做解析动作 | <><>- | <><>- |
<><>--thread | <><>指定生成字节码时所用的线程数目 | <><>0-机器支持的线程数目 | <><>0 |
