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 KAA03657; Mon, 6 Oct 2003 10:26:42 +0200 (MET DST) Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id KAA13205 for ; Mon, 6 Oct 2003 10:26:41 +0200 (MET DST) Received: from nef.ens.fr (nef.ens.fr [129.199.96.32]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id h968Qe110223 for ; Mon, 6 Oct 2003 10:26:40 +0200 (MET DST) Received: from clipper.ens.fr (clipper-gw.ens.fr [129.199.1.22]) by nef.ens.fr (8.12.10/1.01.28121999) with ESMTP id h968Qcjw049106 ; Mon, 6 Oct 2003 10:26:38 +0200 (CEST) Received: from localhost (frisch@localhost) by clipper.ens.fr (8.12.3/jb-1.1) id h968QagT002636 ; Mon, 6 Oct 2003 10:26:36 +0200 (MET DST) X-Authentication-Warning: clipper.ens.fr: frisch owned process doing -bs Date: Mon, 6 Oct 2003 10:26:36 +0200 (MET DST) From: Alain.Frisch@ens.fr X-X-Sender: frisch@clipper.ens.fr Reply-To: Alain.Frisch@ens.fr To: Christian Lindig cc: Caml Mailing List Subject: Re: [Caml-list] backslashes in ocamllex In-Reply-To: <20031006072853.GE1459@st> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-milter (http://amavis.org/) X-Loop: caml-list@inria.fr X-Spam: no; 0.00; alain:01 frisch:01 caml-list:01 lindig:01 buffer:01 buffer:01 3.07:01 abstractions:01 alain:01 ocaml:01 closure:01 buf:01 buf:01 readable:01 eof:02 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Mon, 6 Oct 2003, Christian Lindig wrote: > and string = parse (* lexer for strings *) > eof -> { fun buf -> error "EOF in string" } > | '\\' _ -> { fun buf -> let c = getchar lexbuf 1 in >... > | _ -> { fun buf -> string lexbuf (Buffer.add_string (get lexbuf) > | "'" -> { fun buf -> Buffer.contents buf } (* return string *) Note that the new ocamllex in OCaml 3.07 allows rules to have extra arguments. It is both more readable and more efficient (no closure is built for each action) than explicit abstractions in actions. (Btw the CHANGES file fails to mention this new feature.) -- Alain ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners