mirror of
https://github.com/valitydev/parse_trans.git
synced 2024-11-06 08:35:17 +00:00
.. | ||
ct_expand.md | ||
edoc-info | ||
erlang.png | ||
exprecs.md | ||
overview.edoc | ||
parse_trans_codegen.md | ||
parse_trans_pp.md | ||
parse_trans.md | ||
README.md | ||
stylesheet.css |
The parse_trans application
The parse_trans application
A generic parse transform library This library is intended to simplify the task of writing parse transform modules for Erlang.
Authors: Ulf Wiger (ulf.wiger@erlang-consulting.com
).
A generic parse transform library This library is intended to simplify the task of writing parse transform modules for Erlang.
Introduction to parse transforms
The simplest transform
The very simplest transform we can make is one that doesn't change a thing. For convenience, we will at least print the forms. This will enlighten us as to what the forms actually look like.
-module(test_pt). -export([parse_transform/2]). parse_transform(Forms, _Options) -> io:fwrite("Forms = ~p~n", [Forms]), Forms.
Trying this with a very simple module:
-module(ex1). -export([add/2]). add(X,Y) -> X + Y.
1> c(ex1, [{parse_transform,test_pt}]). Forms = [{attribute,1,file,{"./ex1.erl",1}}, {attribute,1,module,ex1}, {attribute,2,export,[{add,2}]}, {function,4,add,2, [{clause,4, [{var,4,'X'},{var,4,'Y'}], [], [{op,5,'+',{var,5,'X'},{var,5,'Y'}}]}]}, {eof,6}] {ok,ex1}
`transform/4`
...
Current limitations
...
Modules
ct_expand |
exprecs |
parse_trans |
parse_trans_codegen |
parse_trans_pp |