Pull to refresh
18
0
Andrey Popp @bsdemon

User

Send message

Sweet.js: Синтаксические расширения для JavaScript

Reading time5 min
Views12K
Давайте попробуем посмотреть на Sweet.js, компилятор, который реализует гигиенические макросы для JavaScript.

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

Sweet.js оперирует своим собственным форматом синтаксического дерева, почти на уровне токенов, с минимальной структурой. С одной стороны это делает возможным определять довольно экзотические синтаксисы для своих макросов, с другой — делает написание макросов несколько сложнее, как если бы они были определены над стандартным AST JavaScript.

Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments27

Проекты Python в рамках Google Summer of Code — gevent

Reading time2 min
Views8.7K
Уже весна, а это значит… что скоро лето и очередное Google Summer of Code — возможность получить кучу опыта и даже какое-то материальное вознаграждение. Хочу рассказать об одном интересном проекте, которому вы сможете помочь во время летних каникул — gevent.
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments24

Запустились всё таки.

Reading time1 min
Views570
В первую очередь хотим поблагодарить всех, кто ждал, терпел, всерьез беспокоился о состоянии Хабра и писал нам волнительные письма, переживая за судьбу проекта. А во вторую очередь спасибо всем, кто так отчаянно шастал по папкам на habrahabr.ru/super/, с благоговением сливал все содержимое и гордо делился впечатлениями в блогах. Это было крайне забавно, право слово. Мы очень старались, чтобы вам там понравилось :)

Конечно, не каждый день увидишь такое
Читать дальше →
Total votes 223: ↑181 and ↓42+139
Comments65

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity