* [Caml-list] Camlp4 3.01.4 @ 2001-05-21 11:43 Daniel de Rauglaudre 2001-05-21 11:45 ` [Caml-list] " Daniel de Rauglaudre 2001-05-24 7:42 ` [Caml-list] " Anton Moscal 0 siblings, 2 replies; 4+ messages in thread From: Daniel de Rauglaudre @ 2001-05-21 11:43 UTC (permalink / raw) To: caml-list Hello everybody, I made a release 3.01.4 for Camlp4, compatible with Ocaml 3.01. Main changes since Camlp4 3.01: - Added functions in module Token to create lexers: 1/ from char stream parser 2/ from ocamllex lexer - Added extensible functions: library module Extfun, parser pa_extfun, and printer pr_extfun. They are used in Camlp4 pretty printing. - Added Lisp syntax pa_lisp.cmo (not terminated). - Added variable Grammar.error_verbose and option -verbose of command camlp4 to display more information in case of parsing error. - Changed revised syntax of sequences. Now: do { expr1; expr2 ..... ; exprn } for patt = expr to/downto expr do { expr1; expr2 ..... ; exprn } while expr do { expr1; expr2 ..... ; exprn } -- Daniel de RAUGLAUDRE daniel.de_rauglaudre@inria.fr http://cristal.inria.fr/~ddr/ ------------------- To unsubscribe, mail caml-list-request@inria.fr. Archives: http://caml.inria.fr ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Caml-list] Re: Camlp4 3.01.4 2001-05-21 11:43 [Caml-list] Camlp4 3.01.4 Daniel de Rauglaudre @ 2001-05-21 11:45 ` Daniel de Rauglaudre 2001-05-24 7:42 ` [Caml-list] " Anton Moscal 1 sibling, 0 replies; 4+ messages in thread From: Daniel de Rauglaudre @ 2001-05-21 11:45 UTC (permalink / raw) To: caml-list Sorry, Camlp4 is available at: http://caml.inria.fr/camlp4/ http://caml.inria.fr/camlp4/index-fra.html (version française) The ftp server seems not to be working for the moment, but you can download from the http link. -- Daniel de RAUGLAUDRE daniel.de_rauglaudre@inria.fr http://cristal.inria.fr/~ddr/ ------------------- To unsubscribe, mail caml-list-request@inria.fr. Archives: http://caml.inria.fr ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Caml-list] Camlp4 3.01.4 2001-05-21 11:43 [Caml-list] Camlp4 3.01.4 Daniel de Rauglaudre 2001-05-21 11:45 ` [Caml-list] " Daniel de Rauglaudre @ 2001-05-24 7:42 ` Anton Moscal 2001-05-24 16:44 ` Daniel de Rauglaudre 1 sibling, 1 reply; 4+ messages in thread From: Anton Moscal @ 2001-05-24 7:42 UTC (permalink / raw) To: Daniel de Rauglaudre; +Cc: caml-list On Mon, 21 May 2001, Daniel de Rauglaudre wrote: > Hello everybody, > > I made a release 3.01.4 for Camlp4, compatible with Ocaml 3.01. > > Main changes since Camlp4 3.01: > > - Added functions in module Token to create lexers: > 1/ from char stream parser > 2/ from ocamllex lexer This is useful. But what do you think about incorporating in Camlp4 some features from AntLR (successor of the PCCTS), such as: parameterized rules: something like rule [parameters list]: [[ ... ]] and invoking by "rule [actual parameters list]" predicates (expression)? => rule, parser try to parse "rule" only if "expression" true, syntax predicates: (rule1) => rule2: parser try to parse rule1, if succeed then parser returns to initial position and try to parse rule2. rule1 usually is a prefix of rule2, but without side effects And the last, but not least: Implements some explicit distinction beetween rule with side effects and without it (for example - rule: ... and rule :: ... ). When rule without side effects failed, parser can keeps trying other alternatives. The last two features requires input streams with "reset to saved position" function, but this shouldn't be a serious problem. Best wishes, Anton Moscal ------------------- To unsubscribe, mail caml-list-request@inria.fr. Archives: http://caml.inria.fr ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Caml-list] Camlp4 3.01.4 2001-05-24 7:42 ` [Caml-list] " Anton Moscal @ 2001-05-24 16:44 ` Daniel de Rauglaudre 0 siblings, 0 replies; 4+ messages in thread From: Daniel de Rauglaudre @ 2001-05-24 16:44 UTC (permalink / raw) To: Anton Moscal; +Cc: caml-list Hi, On Thu, May 24, 2001 at 11:42:23AM +0400, Anton Moscal wrote: > parameterized rules: something like > rule [parameters list]: [[ ... ]] > and invoking by "rule [actual parameters list]" It is a problem to type that. The entries could not be just 'a entry but ('a, 'b) entry, something like that, where 'b is the type of the parameters. > predicates > (expression)? => rule, > parser try to parse "rule" only if "expression" true, This could be possible, I guess. I have to think of it. But you can also write a parser and use Grammar.Entry.of_parser. > syntax predicates: > (rule1) => rule2: parser try to parse rule1, if succeed then parser > returns to initial position and try to parse rule2. rule1 usually is a > prefix of rule2, but without side effects A mutable value has side effect. To undo side effects, it is rather complicated. This could be done with purely functionnal parsers (I am thinking of a library and a syntax for purely functionnal streams and parsers), and purely functionnal grammars (much more code). > And the last, but not least: > Implements some explicit distinction beetween rule with side effects and > without it (for example - rule: ... and rule :: ... ). When rule without > side effects failed, parser can keeps trying other alternatives. Same answer. > The last two features requires input streams with "reset to saved > position" function, but this shouldn't be a serious problem. Yes it is. -- Daniel de RAUGLAUDRE daniel.de_rauglaudre@inria.fr http://cristal.inria.fr/~ddr/ ------------------- To unsubscribe, mail caml-list-request@inria.fr. Archives: http://caml.inria.fr ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2001-05-25 16:54 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2001-05-21 11:43 [Caml-list] Camlp4 3.01.4 Daniel de Rauglaudre 2001-05-21 11:45 ` [Caml-list] " Daniel de Rauglaudre 2001-05-24 7:42 ` [Caml-list] " Anton Moscal 2001-05-24 16:44 ` Daniel de Rauglaudre
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox