From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id E0CA2BBAF for ; Wed, 18 Nov 2009 12:33:53 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AscAAHdqA0tCbwQckWdsb2JhbACZFYJtAQEBAQkLCgcTBLh2BoQ7gXOBGw X-IronPort-AV: E=Sophos;i="4.44,764,1249250400"; d="scan'208";a="40332736" Received: from out4.smtp.messagingengine.com ([66.111.4.28]) by mail1-smtp-roc.national.inria.fr with ESMTP; 18 Nov 2009 12:33:53 +0100 Received: from compute1.internal (compute1.internal [10.202.2.41]) by gateway1.messagingengine.com (Postfix) with ESMTP id BFFB9C09C4; Wed, 18 Nov 2009 06:33:52 -0500 (EST) Received: from heartbeat1.messagingengine.com ([10.202.2.160]) by compute1.internal (MEProxy); Wed, 18 Nov 2009 06:33:52 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=messagingengine.com; h=message-id:date:from:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding; s=smtpout; bh=/B6a5nB0Aeb+CntnyfxUdUPd3OY=; b=Mk0JaEyWcwl9lC2vE8iGSNRDowl7pTGj+RmoVToLsWh51Ngsj70/bXkV5qMsF0Io1EwW3/6V5rLJEYH8FF2OtymFY9k2ZuqdXxCWwwID6s1uKmE8qpu0S5Dmzegg5uReWq+syhgyA35KPk8PBZAXzI/syYZXk6kY0t/R/LduHVc= X-Sasl-enc: iP2pvQJ39r7oCsPR1WqHpCaBNuOJZ07IFglz9zB7C+Ll 1258544032 Received: from [192.168.1.14] (ALyon-157-1-82-35.w90-37.abo.wanadoo.fr [90.37.193.35]) by mail.messagingengine.com (Postfix) with ESMTPSA id 1CBD34B2E25; Wed, 18 Nov 2009 06:33:51 -0500 (EST) Message-ID: <4B03DB7C.7070807@ens-lyon.org> Date: Wed, 18 Nov 2009 12:33:16 +0100 From: Martin Jambon User-Agent: Thunderbird 2.0.0.22 (X11/20090908) MIME-Version: 1.0 To: Goswin von Brederlow Cc: OCaml Mailing List Subject: Re: [Caml-list] New: cppo, C preprocessor for OCaml References: <4B0345BA.9020508@ens-lyon.org> <87ws1o7go3.fsf@frosties.localdomain> In-Reply-To: <87ws1o7go3.fsf@frosties.localdomain> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam: no; 0.00; ens-lyon:01 ocaml:01 ens-lyon:01 cpp:01 conditionals:01 ifdef:01 ocaml:01 variants:01 lexer:01 ocamllex:01 ocamllex:01 ocamlyacc:01 tarballs:01 camlp:01 camlp:01 Goswin von Brederlow wrote: > Martin Jambon writes: > >> Dear list, >> >> It is my pleasure to announce the first release of cppo, an OCaml-friendly >> equivalent of the C preprocessor (cpp). >> >> Cppo provides the classic #include, #define and conditionals (#ifdef, ...) >> which are occasionally useful. Cppo can be used on OCaml files and variants >> of OCaml that use the same lexer, such as ocamllex. >> >> The implementation of cppo was tested with ocaml 3.09 to 3.11 and is based on >> ocamllex/ocamlyacc (works also with menhir which I used during the development). >> >> >> The documentation and the source tarballs are at: >> >> http://martin.jambon.free.fr/cppo.html >> >> The package is also available from GODI (apps-cppo). >> >> >> Enjoy. >> >> >> Martin > > Without looking at it, is is camlp4 based and can I combine that with > other camlp4 modules or do I need to seperately preprocess the > source? No, cppo is a standalone executable and is independent from camlp4 or camlp5. Note that the camlp4 world has optcomp: http://forge.ocamlcore.org/projects/optcomp/ Martin -- http://mjambon.com/