06.01.2015, 11:30
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
чувствую, хитом этого года станет "старики забивают на гугл и получают ответы от Safort-а и kobezzza-ы"
рони, Ruslan_xDD, стать что ли следующим - ребят, мне влом гуглить, объясните, плиз, как по спецификации ecmascript написать транслятор javascript, а то я не очень это себе представляю
|
|
06.01.2015, 11:31
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
Сообщение от kobezzza
|
слишком избыточен и затратен
|
Согласен.
Я просто никогда не лез в это дело и не работал с Node.js, только с PHP. Поэтому, в этом не очень шарю. Но надо будет как-нибудь поэксперементировать с этим, к тому же, в большинстве требований работы во всяких конторах сейчас это очень нужно.
|
|
06.01.2015, 11:36
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
bes,
Цитата:
|
ребят, мне влом гуглить, объясните, плиз, как по спецификации ecmascript написать транслятор javascript, а то я не очень это себе представляю
|
Ээ.. ну.. э... не знаю Писать трансляторы дело не простое. Думаю, этим вопросом кобеззза сможет как-то помочь, у него есть опыт написания подобных штук.
Предполагаю, что тут так же как и для других языков: лексический анализатор, синтаксический анализатор и т.д.
Последний раз редактировалось Safort, 06.01.2015 в 11:39.
|
|
06.01.2015, 11:37
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
как по спецификации 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, то он реализует препроцессор в виде конечного автомата.
Последний раз редактировалось kobezzza, 06.01.2015 в 11:46.
|
|
06.01.2015, 11:40
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
kobezzza, ну всё, завтра свой транслятор выпущу. Только я пока не придумал, что он будет делать.
|
|
06.01.2015, 13:04
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Сообщение от melky
|
... я уже перестал с нового года кофе пить так же... *глоток кофе*
|
А я почти завязал с кофе после 36 часового хакатона, после него уже месяц от кофе тошнит)
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
06.01.2015, 13:28
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Если открывать html страницу в webstorm то он использует локальный сервер, какой сервер он использует?
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
06.01.2015, 16:09
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
Подскажите пожалуйста легковесый шаблонизатор с интеграцией в галп, который умеет инклуды.
jade не катит, там нельзя писать обычный html.
Онли инклуды, так даже лучше
https://www.npmjs.com/package/gulp-html-tag-include
__________________
Научу себя плохому
Последний раз редактировалось l-liava-l, 06.01.2015 в 16:12.
|
|
06.01.2015, 16:24
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Последний раз редактировалось kobezzza, 06.01.2015 в 16:29.
|
|
06.01.2015, 16:29
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
kobezzza,
Его уже рассматривали но решили не брать, так же как и джейд.
Ибо в команде привыкли к закрывающим тэгам и скобкам
__________________
Научу себя плохому
|
|
|
|