<div dir="ltr">Hi Alain, <div>  I would definitely like to help, but I think it is  a bit too early to adapt P4. </div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Apr 3, 2013 at 1:55 PM, Alain Frisch <span dir="ltr"><<a href="mailto:alain.frisch@lexifi.com" target="_blank">alain.frisch@lexifi.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Another topic where help would be much appreciated is the support of extension points in Camlp4.  Even if one of the goal of all this discussion is to replace some uses of Camlp4, there is no reason Camlp4 could not support itself the three new syntactic features (attributes, extension nodes, quoted strings) in its parsers and its custom representation of the OCaml AST.  In addition to simplifying a migration phase (combining some Camp4 extensions and some -ppx rewriters), supporting extensions points in Camlp4 makes sense even for people who want (or will have) to continue using Camlp4:<br>

<br>
 - AST mappers can then be written not only with -ppx but also as Camlp4 AST filters (which supports concrete syntax patterns and expressions).<br>
<br>
 - It can be imagined that some extensions are split into an AST transformation part (to be processed by -ppx) and a change to the concrete syntax (with a Camlp4 extension which would only adds attributes and extension nodes to the AST).  This would make it possible to use the core feature of the extension without camlp4 and still provide ad hoc concrete syntax for those who insist on it.<br>

<br>
 - Some external tools (a la Bisect) might start using attributes found in the parsetree or typedtree, and projects built with Camlp4 will need a way to embed such attributes in the source files.<br>
<br>
<br>
The current state is that Camlp4 has been adapted to the new Parsetree (i.e. it generate valid fragments), but its internal representation of the OCaml AST and its parsers do not support the new features.  Adding this support should not be very difficult for someone familiar enough with the implementation of Camlp4.  Any volunteer?<br>

<br>
<br>
Alain<br>
______________________________<u></u>_________________<br>
wg-camlp4 mailing list<br>
<a href="mailto:wg-camlp4@lists.ocaml.org" target="_blank">wg-camlp4@lists.ocaml.org</a><br>
<a href="http://lists.ocaml.org/listinfo/wg-camlp4" target="_blank">http://lists.ocaml.org/<u></u>listinfo/wg-camlp4</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>-- Regards, Hongbo
</div>