1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openharmony-arkcompiler_ets_frontend

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

ets_frontend

Введение

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 # директория шаблонов proto ├── scripts # директория скриптов ├── src # директория сериализации и десериализации proto


`ets_frontend` использует режим взаимодействия через командную строку и преобразует код на JavaScript в файлы байткода ARK, которые могут выполняться на системе выполнения ARK. `ets_frontend` поддерживает 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>

#### Использование для es2panda ####

Конвертация JS в ARK байткод через es2abc

$ cd out/rk3568/clang_x64/arkcompiler/ets_frontend/ $ ./es2abc [опции] file.js


Если для **\[опции\]** не указано никаких параметров, по умолчанию генерируется ARK бинарный файл.<a name="table2035444615599"></a><table>
 <thead align="left">
 <tr id="row535415467591">
 <th class="cellrowborder" valign="top" width="12. 898710128987101%" id="mcps1. 1. 6. 1. 1">
 <p id="p13354134619595"><a name="p13354134619595"></a><a name="p13354134619595"></a>Параметр</p>
 </th>
 <th class="cellrowborder" valign="top" width="19. 33806619338066%" id="mcps1. 1. 6. 1. 3">
 <p id="p157281281906"><a name="p157281281906"></a><a name="p157281281906"></a>Описание</p>
 </th>
 <th class="cellrowborder" valign="top" width="25. 82741725827417%" id="mcps1. 1. 6. 1. 4">
 <p id="p103276335016"><a name="p103276335016"></a><a name="p103276335016"></a>Диапазон значений</p>
 </th>
 <th class="cellrowborder" valign="top" width="35. 066493350664935%" id="mcps1. 1. 6. 1. 5">
 <p id="p1835494695915"><a name="p1835494695915"></a><a name="p1835494695915"></a>Значение по умолчанию</p>
 </th>
 </tr>
 </thead>
 <tbody>
 <tr id="row1435412465598">
 <td class="cellrowborder" valign="top" width="12. 898710128987101%" headers="mcps1. 1. 6. 1. 1">
 <p id="p881325510017"><a name="p881325510017"></a><a name="p881325510017"></a>--debug-info</p>
 </td>
 <td class="cellrowborder" valign="top" width="19. 33806619338066%" headers="mcps1. 1. 6. 1. 3">
 <p id="p072882813015"><a name="p072882813015"></a><a name="p072882813015"></a>Предоставляет информацию для отладки.</p>
 </td>
 <td class="cellrowborder" valign="top" width="25. 82741725827417%" headers="mcps1. 1. 6. 1. 4">
 <p id="p10327833305"><a name="p10327833305"></a><a name="p10327833305"></a>-</p>
 </td>
 <td class="cellrowborder" valign="top" width="35. 066493350664935%" headers="mcps1. 1. 6. 1. 5">
 <p id="p076075115014"><a name="p076075115014"></a><a name="p076075115014"></a>-</p>
 </td>
 </tr>
 <tr id="row1435412465598">
 <td class="cellrowborder" valign="top" width="12. 898710128987101%" headers="mcps1. 1. 6. 1. 1">
 <p id="p881325510017"><a name="p881325510017"></a><a name="p881325510017"></a>--debugger-evaluate-expression</p>
 </td>
 <td class="cellrowborder" valign="top" width="19. 33806619338066%" headers="mcps1. 1. 6. 1. 3">
 <p id="p072882813015"><a name="p072882813015"></a><a name="p072882813015"></a>Вычисляет выражение в стиле base64 в отладчике.</p>
 </td>
 <td class="cellrowborder" valign="top" width="25. 82741725827417%" headers="mcps1. 1. 6. 1. 4">
 </td>
 </tr>
 </tbody>
</table><p id="p10327833305"><a name="p10327833305"></a><a name="p10327833305"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="35.066493350664935%" headers="mcps1.1.6.1.5">
<p id="p076075115014"><a name="p076075115014"></a><a name="p076075115014"></a>-</p>
</td>
</tr>
</tbody>
</table>```markdown
5 "><p id="p076075115014"><a name="p076075115014"></a><a name="p076075115014"></a>-</p>
</td>
</tr>
<tr id="row3355346105920">
<td class="cellrowborder" valign="top" width="12.898710128987101%" headers="mcps1.1.6.1.1">
<p id="p163552462595"><a name="p163552462595"></a><a name="p163552462595"></a>--dump-assembly</p>
</td>
<td class="cellrowborder" valign="top" width="19.33806619338066%" headers="mcps1.1.6.1.3">
<p id="p127284281905"><a name="p127284281905"></a><a name="p127284281905"></a>Выводит файл ассемблера.</p>
</td>
<td class="cellrowborder" valign="top" width="25.82741725827417%" headers="mcps1.1.6.1.4">
<p id="p93278335012"><a name="p93278335012"></a><a name="p93278335012"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="35.066493350664935%" headers="mcps1.1.6.1.5">
<p id="p1976019511306"><a name="p1976019511306"></a><a name="p1976019511306"></a>-</p>
</td>
</tr>
<tr id="row9355174675912">
<td class="cellrowborder" valign="top" width="12.898710128987101%" headers="mcps1.1.6.1.1">
<p id="p6355104616592"><a name="p6355104616592"></a><a name="p6355104616592"></a>--dump-ast</p>
</td>
<td class="cellrowborder" valign="top" width="19.33806619338066%" headers="mcps1.1.6.1.3">
<p id="p187287280015"><a name="p187287280015"></a><a name="p187287280015"></a>Выводит распарсенный AST (Абстрактное синтаксическое дерево)</p>
</td>
<td class="cellrowborder" valign="top" width="25.82741725827417%" headers="mcps1.1.6.1.4">
<p id="p932819331104"><a name="p932819331104"></a><a name="p932819331104"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="35.066493350664935%" headers="mcps1.1.6.1.5">
<p id="p1475975114013"><a name="p1475975114013"></a><a name="p1475975114013"></a>-</p>
</td>
</tr>
<tr id="row53551046175917">
<td class="cellrowborder" valign="top" width="12.898710128987101%" headers="mcps1.1.6.1.1">
<p id="p13575501218"><a name="p13575501218"></a><a name="p13575501218"></a>--dump-debug-info</p>
</td>
<td class="cellrowborder" valign="top" width="19.33806619338066%" headers="mcps1.1.6.1.3">
<p id="p13575501219"><a name="p13575501219"></a><a name="p13575501219"></a>Выводит информацию для отладки.</p>
</td>
<td class="cellrowborder" valign="top" width="25.82741725827417%" headers="mcps1.1.6.1.4">
<p id="p13575501220"><a name="p13575501220"></a><a name="p13575501220"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="35.066493350664935%" headers="mcps1.1.6.1.5">
<p id="p13575501221"><a name="p13575501221"></a><a name="p13575501221"></a>-</p>
</td>
</tr>```markdown
<tr id="row8355204635911">
<td class="cellrowborder" valign="top" width="12.898710128987101%" headers="mcps1.1.6.1.1 ">
<p id="p657125010117"><a name="p657125010117"></a><a name="p657125010117"></a>--dump-literal-buffer</p>
</td>
<td class="cellrowborder" valign="top" width="19.33806619338066%" headers="mcps1.1.6.1.3 ">
<p id="p77281528704"><a name="p77281528704"></a><a name="p77281528704"></a>Выводит содержимое буфера литералов</p>
</td>
<td class="cellrowborder" valign="top" width="25.82741725827417%" headers="mcps1.1.6.1.4 ">
<p id="p83281633208"><a name="p83281633208"></a><a name="p83281633208"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="35.066493350664935%" headers="mcps1.1.6.1.5 ">
<p id="p17580511404"><a name="p17580511404"></a><a name="p17580511404"></a>-</p>
</td>
</tr>
<tr id="row6355124665910">
<td class="cellrowborder" valign="top" width="12.898710128987101%" headers="mcps1.1.6.1.1 ">
<p id="p105611505114"><a name="p105611505114"></a><a name="p105611505114"></a>--dump-size-stat</p>
</td>
<td class="cellrowborder" valign="top" width="19.33806619338066%" headers="mcps1.1.6.1.3 ">
<p id="p20728192819015"><a name="p20728192819015"></a><a name="p20728192819015"></a>Отображает статистику по байткодам.</p>
</td>
<td class="cellrowborder" valign="top" width="25.82741725827417%" headers="mcps1.1.6.1.4 ">
<p id="p1332810331508"><a name="p1332810331508"></a><a name="p1332810331508"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="35.066493350664935%" headers="mcps1.1.6.1.5 ">
<p id="p157577519014"><a name="p157577519014"></a><a name="p157577519014"></a>-</p>
</td>
</tr>
<tr id="row235584610599">
<td class="cellrowborder" valign="top" width="12.898710128987101%" headers="mcps1.1.6.1.1 ">
<p id="p1372811281608"><a name="p1372811281608"></a><a name="p1372811281608"></a>--debug-output</p>
</td>
<td class="cellrowborder" valign="top" width="19.33806619338066%" headers="mcps1.1.6.1.3 ">
<p id="p37585513019"><a name="p37585513019"></a><a name="p37585513019"></a>Выводит информацию для отладки</p>
</td>
<td class="cellrowborder" valign="top" width="25.82741725827417%" headers="mcps1.1.6.1.4 ">
<p id="p133287335020"><a name="p133287335020"></a><a name="p133287335020"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="35.066493350664935%" headers="mcps1.1.6.1.5 ">
<p id="p1375975114013"><a name="p1375975114013"></a><a name="p1375975114013"></a>-</p>
</td>
</tr>
```898710128987101%" headers="mcps1. 1. 6. 1. 1 "><p id="p95515501012"><a name="p95515501012"></a><a name="p95515501012"></a>--extension</p>
</td>
<td class="cellrowborder" valign="top" width="19. 33806619338066%" headers="mcps1. 1. 6. 1. 3 "><p id="p37282028600"><a name="p37282028600"></a><a name="p37282028600"></a>Указывает расширение входного файла</p>
</td>
<td class="cellrowborder" valign="top" width="25. 82741725827417%" headers="mcps1. 1. 6. 1. 4 "><p id="p133281033804"><a name="p133281033804"></a><a name="p133281033804"></a>['js', 'ts', 'as']</p>
</td>
<td class="cellrowborder" valign="top" width="35. 066493350664935%" headers="mcps1. 1. 6. 1. 5 ">
``````markdown
| Опция | Описание | Значение по умолчанию | Пример |
|-------|----------|----------------------|--------|
| --help | Отображает справочную информацию. | - | - |
| --module | Компилирует код на основе модуля стандарта ECMAScript. | - | - |
| --opt-level | Указывает уровень оптимизации компиляции. | ['0', '1', '2'] | - |
``````markdown
<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="p175213504115"><a name="p175213504115"></a><a name="p175213504115"></a>Указывает, что компиляция выполняется только для парсинга кода.</p>
</td>
<td class="cellrowborder" valign="top" width="25. 82741725827417%" headers="mcps1. 1. 6. 1. 4">
<p id="p175213504115"><a name="p175213504115"></a><a name="p175213504115"></a>-</p>
</td>
<td class="cellrowborder" valign="top" width="35. 066493350664935%" headers="mcps1. 1. 6. 1. 5">
<p id="p175213504115"><a name="p175213504115"></a><a name="p175213504115"></a>-</p>
</td>
</tr><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="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>
</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 )

Вы можете оставить комментарий после Вход в систему

Введение

Временно отсутствует описание. Развернуть Свернуть
C++ и 6 других языков
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/openharmony-arkcompiler_ets_frontend.git
git@api.gitlife.ru:oschina-mirror/openharmony-arkcompiler_ets_frontend.git
oschina-mirror
openharmony-arkcompiler_ets_frontend
openharmony-arkcompiler_ets_frontend
master