> (1) Is any other syntax available for quotations apart from > <:foo< ... >> and the default quotation expander << ... >>?
No. That said, you could implement your own quotations mechanism as a Camlp4 extension (changing the grammar of the language). The benefit of the "official" quotations is that you don't touch the existing OCaml grammar (... of Camlp4). > (2) Is there any way to escape >> inside a quotation. Camlp4 doesn't touch the content of quotations... except that the lexer needs to know when they stop. ">>" is always interpreted as the quotation delimiter, and this is hardcoded in the lexer, so you can't change that. For example escaping with "\>>" would not work. Any non-">>" symbol will be handled by you (that is, the parser you set up for your quotation) and you can do as you wish. For example you could specify to your users that you will always interpret ">\>" as if it was a ">>", providing an escape mechanism. > (3) In a custom-defined quotation expander, does the antiquotation > syntax $bar$ have any special meaning? No, if you have told the lexer that you doesn't want it to lex antiquotations specially. This can be configured through a Camlp4 option.(Camlp4_config.antiquotations). That said, I think antiquotations are very convenient for any DSL (as it allows your users to compose pieces of DSL program using OCaml constructs such let bindings, etc.). If I were you, I would change the DSL syntax to free the $...$ for antiquotations. On Wed, Dec 28, 2011 at 5:25 PM, Richard W.M. Jones <[email protected]> wrote: > > I'm writing a mini-DSL that'll use camlp4 quotations. In general > http://brion.inria.fr/gallium/index.php/Quotation has been very > helpful, but I still have a few questions: > > (1) Is any other syntax available for quotations apart from > <:foo< ... >> and the default quotation expander << ... >>? > > (2) Is there any way to escape >> inside a quotation. In particular > some of my quotations will contain C code, and >> is a C operator > (right shift). This is not a show-stopper, but it'd be nice to be > able to offer a way for C code to contain right shifts, in a way that > is easily comprehensible to C programmers. > > (3) In a custom-defined quotation expander, does the antiquotation > syntax $bar$ have any special meaning? I want to use $variable > substitutions, so if $ is being treated specially this might cause > problems. > > Rich. > > -- > Richard Jones > Red Hat > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa-roc.inria.fr/wws/info/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > -- Caml-list mailing list. Subscription management and archives: https://sympa-roc.inria.fr/wws/info/caml-list Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
