Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Обсуждений тред (https://javascript.ru/forum/offtopic/47364-obsuzhdenijj-tred.html)

bes 06.01.2015 11:30

чувствую, хитом этого года станет "старики забивают на гугл и получают ответы от Safort-а и kobezzza-ы" :D
рони, Ruslan_xDD, стать что ли следующим - ребят, мне влом гуглить, объясните, плиз, как по спецификации ecmascript написать транслятор javascript, а то я не очень это себе представляю :thanks:

ruslan_mart 06.01.2015 11:31

Цитата:

Сообщение от kobezzza
слишком избыточен и затратен

Согласен.

Я просто никогда не лез в это дело и не работал с Node.js, только с PHP. Поэтому, в этом не очень шарю. Но надо будет как-нибудь поэксперементировать с этим, к тому же, в большинстве требований работы во всяких конторах сейчас это очень нужно. :)

Safort 06.01.2015 11:36

bes,
Цитата:

ребят, мне влом гуглить, объясните, плиз, как по спецификации ecmascript написать транслятор javascript, а то я не очень это себе представляю
Ээ.. ну.. э... не знаю :) Писать трансляторы дело не простое. Думаю, этим вопросом кобеззза сможет как-то помочь, у него есть опыт написания подобных штук.
Предполагаю, что тут так же как и для других языков: лексический анализатор, синтаксический анализатор и т.д.

kobezzza 06.01.2015 11:37

Цитата:

как по спецификации 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, то он реализует препроцессор в виде конечного автомата.

ruslan_mart 06.01.2015 11:40

kobezzza, ну всё, завтра свой транслятор выпущу. :D Только я пока не придумал, что он будет делать. :haha:

cyber 06.01.2015 13:04

Цитата:

Сообщение от melky
... я уже перестал с нового года кофе пить так же... *глоток кофе*

А я почти завязал с кофе после 36 часового хакатона, после него уже месяц от кофе тошнит)

cyber 06.01.2015 13:28

Если открывать html страницу в webstorm то он использует локальный сервер, какой сервер он использует?

l-liava-l 06.01.2015 16:09

Подскажите пожалуйста легковесый шаблонизатор с интеграцией в галп, который умеет инклуды.
jade не катит, там нельзя писать обычный html.

Онли инклуды, так даже лучше :)
https://www.npmjs.com/package/gulp-html-tag-include

kobezzza 06.01.2015 16:24

l-liava-l,
https://github.com/kobezzza/Snakeskin

А если нужны чисто инклуды, то
https://github.com/kobezzza/Monic

l-liava-l 06.01.2015 16:29

kobezzza,
Его уже рассматривали но решили не брать, так же как и джейд.
Ибо в команде привыкли к закрывающим тэгам и скобкам


Часовой пояс GMT +3, время: 23:06.