Инструмент ets_frontend является фронтенд-компонентом в составе Подсистемы выполнения ARK. Объединённый с компонентом ace-ets2bundle, он поддерживает преобразование файлов ETS в байткод ARK.
Дополнительная информация доступна по адресу: Подсистема выполнения ARK.
Архитектура ets_frontend
/arkcompiler/ets_frontend/ ├── test262 # скрипты для конфигурации и запуска тестов Test262 ├── testTs # системные тестовые случаи ├── test_ecma_bcopt # тестовые случаи для оптимизации байткода ├── test # тестовые случаи SDK, XTS ├── es2panda ├── aot # логический вход ├── binder # привязка информации ├── compiler # логика компиляции ├── ir # генерация байткода ├── lexer # лексический анализ ├── parser # синтаксический анализ, генерация AST ├── scripts # каталог скриптов ├── test # каталог тестов ├── typescript # поддержка TypeScript └── util # каталог инструментов ├── legacy_bin # каталог компилятора API8 ├── merge_abc ├── protos # каталог шаблонов прото ├── scripts # каталог скриптов ├── src # каталог сериализации и десериализации прото
Инструмент ets_frontend использует режим взаимодействия через командную строку и преобразует код JavaScript в байткод ARK, который может выполняться на системах ARK. Поддерживается Windows, Linux и macOS. Инструменты фронтенда, преобразующие исходный код JavaScript в байткод ARK, могут быть собраны путём указания параметра `--build-target` при использовании `ets_frontend_build` на Linux.
$ ./build.sh --product-name rk3568 --build-target ets_frontend_build
### Правила использования <a name="section33105542504"></a>
#### Конвертация JS в байткод ARK через es2abc ####
Конвертация JS в байткод ARK через es2abc
$ cd out/rk3568/clang_x64/arkcompiler/ets_frontend/ $ ./es2abc [опции] file.js
Если для **[опций]** не указано никаких параметров, по умолчанию генерируется бинарный файл ARK.
<a name="table2035444615599"></a>```markdown
| Option | Описание | Значение | Значение по умолчанию |
| --- | --- | --- | --- |
| --debug-info | Предоставляет информацию для отладки. | - | - |
| --debugger-evaluate-expression | Оценивает выражение в базовой шестнадцатеричной системе счисления в отладчике. | - | - |
``````markdown
| Опция | Описание |
|---------------------------------|---------------------------------------------------------------------------------------------|
| --dump-assembly | Выводит файл ассемблера |
| --dump-ast | Выводит распарсенный AST (абстрактное синтаксическое дерево) |
| --dump-debug-info | Выводит информацию отладки |
| --dump-literal-buffer | Отображает содержимое буфера литералов |
| --dump-size-stat | - |
Примечание: Исходный текст был преобразован в более удобочитаемый формат Markdown таблицы, при этом были сохранены все ключевые опции и их описание.
Отображает статистику по байткодам.
``` Продолжение:```markdown ```Перевод завершен, сохранены все структурные элементы и форматирование исходного текста в соответствии с правилами перевода.```markdown
Опция | Описание | Значение |
---|---|---|
--help | Отображает справочную информацию. | - |
--module | Компилирует код на основе модуля стандарта ECMAScript. | - |
--opt-level | Указывает уровень оптимизации компиляции. | [0, 1, 2] |
<tr id="row5356124655916">
<td class="cellrowborder" valign="top" width="12.898710128987101%" headers="mcps1.1.6.1.1">
<p id="p185311501910"><a name="p185311501910"></a><a name="p185311501910"></a>--output</p>
</td>
<td class="cellrowborder" valign="top" width="19.33806619338066%" headers="mcps1.1.6.1.3">
<p id="p1872818281006"><a name="p1872818281006"></a><a name="p1872818281006"></a>Задает путь к выходному файлу.</p>
</td>
<td class="cellrowborder" valign="top" width="25.82741725827417%" headers="mcps1.1.6.1.4">
<p id="p73281733408"><a name="p73281733408"></a><a name="p73281733408"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="35.066493350664935%" headers="mcps1.1.6.1.5">
<p id="p77537511606"><a name="p77537511606"></a><a name="p77537511606"></a>-</p>
</td>
</tr>
<tr id="row1335654635915">
<td class="cellrowborder" valign="top" width="12.898710128987101%" headers="mcps1.1.6.1.1">
<p id="p175213504115"><a name="p175213504115"></a><a name="p175213504115"></a>--parse-only</p>
</td>
<td class="cellrowborder" valign="top" width="19.33806619338066%" headers="mcps1.1.6.1.3">
<p id="p20729728003"><a name="p20729728003"></a><a name="p20729728003"></a>Обрабатывает входной файл только для парсинга.</p>
</td>
<td class="cellrowborder" valign="top" width="25.82741725827417%" headers="mcps1.1.6.1.4">
<p id="p4328533205"><a name="p4328533205"></a><a name="p4328533205"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="35.066493350664935%" headers="mcps1.1.6.1.5">
<p id="p175385118014"><a name="p175385118014"></a><a name="p175385118014"></a>-</p>
</td>
</tr>
<tr id="row1335654635915">
<td class="cellrowborder" valign="top" width="12.898710128987101%" headers="mcps1.1.6.1.1">
<p id="p175213504115"><a name="p175213504115"></a><a name="p175213504115"></a>--thread</p>
</td>
<td class Yöntem="cellrowborder" valign="top" width="19.33806619338066%" headers="mcps1.1.6.1.3">
```
Фрагмент был прерван, поэтому исправлено до конца доступного текста.<p id="p20729728003"><a name="p20729728003"></a><a name="p20729728003"></a>Указывает количество потоков, используемых для генерации байткода.</p>
</td>
<td class="cellrowborder" valign="top" width="25.82741725827417%" headers="mcps1.1.6.1.4">
<p id="p4328533205"><a name="p4328533205"></a><a name="p4328533205"></a>0–количество потоков, поддерживаемых вашей машиной.</p>
</td>
```<td class="cellrowborder" valign="top" width="35.066493350664935%" headers="mcps1.1.6.1.5">
<p id="p175385118014"><a name="p175385118014"></a><a name="p175385118014"></a>0</p>
</td>
</tr>
<tbody>
</tbody>
</table>Для получения дополнительной информации, пожалуйста, обратитесь к: [ARK-Runtime-Usage-Guide](https://gitee.com/openharmony/arkcompiler_ets_runtime/blob/master/docs/README.md).## Участвующие репозитории <a name="section1371113476307"></a>
[arkcompiler\_runtime\_core](https://gitee.com/openharmony/arkcompiler_runtime_core)
[arkcompiler\_ets\_runtime](https://gitee.com/openharmony/arkcompiler_ets_runtime)
**[arkcompiler\_ets\_frontend](https://gitee.com/openharmony/arkcompiler_ets_frontend)**
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )