From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id SAA19820; Fri, 25 May 2001 18:54:18 +0200 (MET DST) Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id SAA19817 for caml-list@pauillac.inria.fr; Fri, 25 May 2001 18:54:12 +0200 (MET DST) Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id JAA00652 for ; Thu, 24 May 2001 09:38:41 +0200 (MET DST) Received: from ajax2.sovam.com (ajax2.sovam.com [194.67.1.173]) by concorde.inria.fr (8.11.1/8.10.0) with ESMTP id f4O7ceX14972; Thu, 24 May 2001 09:38:40 +0200 (MET DST) Received: from ts6-a33.Spb.dial.sovam.com ([195.190.96.33]:1555 "EHLO kouzdra.glokaya" ident: "root" whoson: "-unregistered-" smtp-auth: TLS-CIPHER: TLS-PEER: ) by ajax2.sovam.com with ESMTP id ; Thu, 24 May 2001 11:38:20 +0400 Received: from localhost (msk@localhost) by kouzdra.glokaya (8.9.3/8.9.3) with ESMTP id LAA32544; Thu, 24 May 2001 11:42:23 +0400 X-Authentication-Warning: kouzdra.glokaya: msk owned process doing -bs Date: Thu, 24 May 2001 11:42:23 +0400 (MSD) From: Anton Moscal X-Sender: msk@kouzdra.glokaya To: Daniel de Rauglaudre cc: caml-list@inria.fr Subject: Re: [Caml-list] Camlp4 3.01.4 In-Reply-To: <20010521134328.C16047@verdot.inria.fr> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk 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