JavaScript to C++ translator
От: cash_a_lot  
Дата: 17.02.10 12:43
Оценка:
Привет.

Требуется написать транслятор с языка JavaScript 1.6 на C++.
Есть несколько особенностей:
1. Требуется написать транслятор ядра JavaScript (ECMAScript) на С++.
2. Нам заранее известно, что во входном .JS файле нет синатаксических, семантических ошибок.

Как я делаю:
— Для лексического анализа, я использую flex-generated анализатор.
— Для трансляции я сам строю синтаксический граф. Граф содержит переходы от состояния к состоянию по токену.
На некоторые состояния графа я вешаю операции.

Тривиальный пример (JavaScript function definition):
Переходы между токенами: Function->Variable->Open_parenthesis->Variable->Comma->Variable->Comma->Variable->Close_parenthesis
Для первого токена Variable: операция create_function_name
Для остальных токенов Variable: операция add_function_parameter

Как можно реализовать транслятор?
1. Может удобнее использовать flex+bison? И анализировать синтаксическое дерево, которое строит bison?
2. Или использовать boost парсеры?

Спасибо.

17.02.10 18:56: Перенесено модератором из 'C/C++' — Кодт
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.