Frabjous

Oh Frabjous Day!*

Кевин Смит представляет библиотеку frabjous (доступную с сайта GitHub здесь: http://github.com/kevsmith/hypotheticalabs/tree/master).

Frabjous является оберткой над Erlang parse transforms:
- общается напрямую с компилятором, избавляя от необходимости пробегаться по всему дереву AST
- определяет новое поведение (behaviour), ast_transformer, которое можно испольовать для задания parse transforms.

Короткий пример:


-module(pt_test).
-define(SERVER, ?MODULE).

-include_lib("frabjous/include/frabjous.hrl").
-frabjous([{remote_call, [{debug, true}]}]).

-behaviour(gen_server).

Подключив frabjous.hrl, мы "включили" frabjous.

Трансформатор remote_call принимает атрибуты следующим образом:


-call_gen_server([{server, ?SERVER},
{name, add},
{vars, [x,y]}]).

и превращает их в функции таким образом:


add(X, Y) -> gen_server:call(?SERVER, {add, X, Y}).




* Frabjous - "термин", использованый Льюисом Кэроллом в "Алисе в Зазеркалье" в стихотворении Jabberwocky

« Вернуться к новостям