[wg-camlp4] A new branch to experiment with extension points
Xavier Clerc
xavier.clerc at inria.fr
Wed Mar 6 15:17:46 GMT 2013
----- Mail original -----
> I've started a document to describe the current state of the branch:
>
> http://caml.inria.fr/cgi-bin/viewvc.cgi/ocaml/branches/extension_points/experimental/frisch/extension_points.txt?view=markup
>
> A copy of the current version is attached.
>
> Recent additions:
>
>
> - Attributes on labels in record declarations.
> - Attributes as standalone signature/structure items.
> - An alternative syntax for attributes on some kinds of expressions
> starting with a keyword, e.g. "let[@id] p = e in e" is parsed
> as "(let p = e in e)[@id]" and as "[^id](let p = e in e)".
> Do people think this is useful?
>
> (I'm considering recognizing also "let[%id] p = e in e"
> as "(%id (let p = e in e))" and "let[%id e0] p = e in e"
> e.g. as "(%id (%id e0) (let p = e in e))". Opinion?)
>
>
> Don't hesitate to comment on the choice of syntaxes and
> representation
> in the Parsetree, etc!
I will not discuss the syntax per se, but I wonder whether
having both prefix and suffix attributes is not error-prone.
Could you elaborate on the need of having both?
Another, unrelated question: as an extension developer, it
seems that I will have to deal with full-fledged expressions
as attributes values. Do you plan some mechanism to allow
easy access to an identifier used in such an expression.
I mean, it can even refer to another module. This also implies
that you could create dependencies between modules solely
through attributes; is that correct?
Sorry if those questions have already been answered, I did
not follow the previous thread about extension points.
Xavier Clerc
More information about the wg-camlp4
mailing list