Цитата:
|
как по спецификации ecmascript написать транслятор javascript, а то я не очень это себе представляю
|
Тут 2 пути:
1)
Не правильный: на регулярках реплейсишь синтаксис и преобразуешь его в нужный, например, так работает мой костыль
https://github.com/kobezzza/NeJS (зато я написал его за вечер, уж очень хотелось юзать ES6 фичи)
По похожему принципу работает движок макросов
http://sweetjs.org/
2)
Правильный: строишь AST по исходному коду (для этого уже также написано много либ, например, Accorn или Esprima), работаешь с ним, а потом преобразуешь его в конечный код.
Самый лучший на данный момент транслятор - это
https://github.com/6to5/6to5, поэтому всем рекомендую юзать именно его.
***
Если рассматривать мой
https://github.com/kobezzza/Snakeskin, то он реализует препроцессор в виде конечного автомата.