Commit Graph

90 Commits

Author SHA1 Message Date
Ulf Wiger
f89567ec01 empty records broke exprecs in #lens- 2013-12-12 14:20:47 +01:00
Ulf Wiger
b3e5372047 use installed rebar, if exists 2013-10-14 16:06:30 +02:00
Ulf Wiger
3d8a01f547 Merge pull request #8 from ddosia/dch-fix-exprec-spec
Fix #7 wrong type spec genration inside exprecs.
2013-09-04 04:18:44 -07:00
Churikov Daniil
50b95ddaf9 Fix wrong type spec genration inside exprecs. 2013-09-03 18:11:11 +04:00
Ulf Wiger
663ddebb6e codegen:gen_function_alt/3 2013-04-03 23:55:31 +02:00
Ulf Wiger
f889dea6ee added codegen:gen_function_alt/3 2013-04-02 22:47:55 +02:00
Ulf Wiger
86d94e3248 slightly better error messages for codegen:gen_module/3 2013-03-12 15:35:45 +01:00
Ulf Wiger
072a7ef0ab exprecs now also generates functional lenses 2013-01-24 21:17:46 +01:00
Ulf Wiger
b372ea5153 Support for -pt_renumber(true | false) attribute
This attribute instructs parse_trans to renumber the abstract forms, incrementing
the line number for each form. Combined with -pt_log_forms(true), it can be of
use when tracking down compiler errors that result from code produced in the
parse transform.
2013-01-24 16:46:32 +01:00
Ulf Wiger
f83f77c2cc codegen:gen_module/3 support 2012-12-19 17:30:23 +01:00
Ulf Wiger
c55c8861cd Added revert_form/1; deal with revert bugs 2012-12-19 17:29:53 +01:00
Ulf Wiger
895a157dc9 improved error reporting, return/2, format_exception/2 2012-12-18 15:50:17 +01:00
Ulf Wiger
38b2183a9e added LC form to codegen:gen_function/2 2012-12-14 22:57:47 +01:00
Ulf Wiger
a812823fdb Merge pull request #3 from JoeOsborn/permit-non-top-level-forms
Tolerate parse_transforming non-top-level forms.
2012-12-12 10:57:27 -08:00
Joe Osborn
9b594f639b Tolerate parse_transforming non-top-level forms.
A few changes were made to provide default values for context attributes so that parse_transform:transform/4 could be called for non-top-level forms. I don't know if this is generally useful or if it just fit my weird use case.
2012-12-12 07:38:39 -08:00
Ulf Wiger
ae7163f3db For fun, implemented a 'pmod' parse transform.
See examples/pmod.erl and examples/ex_pmod.erl
This works similarly to OTP's parameterized modules, which they are
now saying that they will drop. Since they drop the compiler support,
a slightly different notation is needed.

-pmod_vars([V1, V2, ...]). % defines the 'global' variables.
-pmod_funs([F1/A1, ...]).  % defines which functions are to be exported.

The functions listed in -pmod_funs/1 are transformed to take an extra
argument, and a new(V1, V2, ...) function is added and exported.

Example:

Eshell V5.9  (abort with ^G)
1> c(ex_pmod).
{ok,ex_pmod}
2> M = ex_pmod:new(a,b).
{ex_pmod,{a,b}}
3> M:b(x,y).
{x,y,a,b}
2012-10-12 19:34:03 +02:00
Ulf Wiger
e3676f4a6b lists:concat() -> lists:append() 2012-08-16 13:55:14 +02:00
Ulf Wiger
216531d99f Merge pull request #6 from nox/let-errors-through
Let error markers through parse_transform:do/5
2012-04-23 23:34:04 -07:00
Anthony Ramine
11f137a461 Let error markers through parse_transform:do/5
Error markers ({error, Term} tuples) in Forms are special-cased by do/5
and make it return a error tuple itself instead of just letting them
through. I don't think it is good behaviour as the compiler and its
friends already handle error markers correctly. Furthermore it makes
parse_trans_codegen:parse_transform/2 fails when passing the error tuple
to parse_trans:revert/1.
2012-04-23 22:23:23 +02:00
Ulf Wiger
0ec1da744e corrected license texts (EPL 1.1) 2012-03-05 18:36:32 +01:00
Ulf Wiger
f84867ab1a fix function_clause crash in exprecs + minor fixes 2012-02-05 23:12:49 +01:00
Ulf Wiger
7100aa21e7 only include exported recs in f_get 2012-02-02 16:59:28 +01:00
Ulf Wiger
c2ea01ef23 update edoc 2012-01-28 18:34:03 +01:00
Ulf Wiger
9116c6e385 figured out how to abstract erl_eval funs 2012-01-28 18:32:33 +01:00
Ulf Wiger
6926bb0e60 buggy ct_expand_trace support 2012-01-28 17:10:09 +01:00
Ulf Wiger
11154e117d updated docs 2012-01-28 16:30:05 +01:00
Ulf Wiger
1be85560dd Merge branch 'master' of github.com:esl/parse_trans 2012-01-28 16:25:27 +01:00
Ulf Wiger
a58d7dab1e nicer error reporting; more capable ct_expand 2012-01-28 16:23:53 +01:00
Ulf Wiger
c702bea17a Merge pull request #5 from nebularis/keep-context
hold on to context when entering subtrees
2011-12-24 13:00:23 -08:00
Ulf Wiger
46e4d068ea Merge pull request #4 from nebularis/r15-fix-compile
fix compile error on R15B
2011-12-24 12:57:37 -08:00
Tim Watson
b8b2259a62 hold on to context when entering subtrees 2011-12-24 19:56:56 +00:00
Tim Watson
4f89b3cf5c fix compile error on R15B 2011-12-24 19:53:36 +00:00
Ulf Wiger
e631c857ef plain_transform would skip clauses 2011-12-20 12:15:00 +01:00
Ulf Wiger
60b548ab27 parse_trans:plain_transform/2 and example 2011-12-01 13:32:26 +01:00
Ulf Wiger
e26f61b863 generate types even if no function in module 2011-11-22 21:49:52 +01:00
Ulf Wiger
661d1689e5 fix typo in test_exprecs_vsns printout 2011-11-22 11:36:01 +01:00
Ulf Wiger
565399c524 Merge branch 'module-transforms' 2011-11-22 10:46:35 +01:00
Ulf Wiger
6364c2c6ef 'git' vsn tag in .app.src (again) 2011-11-22 10:39:49 +01:00
Ulf Wiger
5b2201f39f fix record conversions + add example 2011-11-22 10:30:45 +01:00
Ulf Wiger
e9d307f1fc exprecs naming rules can be redefined 2011-10-28 12:26:52 -07:00
Ulf Wiger
893b00e587 completed typespecs & updated doc 2011-10-26 17:50:02 -07:00
Ulf Wiger
676ed9a44b pretty_print handles typed records; exprecs gets more type specs 2011-10-25 14:11:00 -07:00
Ulf Wiger
bb57e235ff types added in exprecs 2011-10-23 13:52:05 +02:00
Ulf Wiger
5c634120c0 optional pretty-printing in transform_module 2011-10-18 11:42:18 +02:00
Ulf Wiger
69b05f4de2 add parse_trans_mod & transform example 2011-10-18 11:24:48 +02:00
Ulf Wiger
62d2cf4984 added eunit example, fixed is_record bug 2011-06-06 14:49:43 +02:00
Ulf Wiger
c6edd2c26a app vsn changed to 0.2 2011-04-20 10:59:21 +02:00
Ulf Wiger
60299e7410 cleanup, type fixes and new rebar 2011-04-18 15:16:54 +02:00
Ulf Wiger
3741317006 fixed parse_trans:pp_beam/2 spec 2011-01-13 18:57:23 +01:00
Ulf Wiger
ca1b670623 dialyzer warnings reported by Kostis 2011-01-13 18:07:27 +01:00