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 mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id A3F06BBAF for ; Wed, 18 Nov 2009 01:54:55 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApMBADvUAktCbwQckWdsb2JhbACZFYJuAQEBAQkLCgcTBLoQBoQ7gw0 X-IronPort-AV: E=Sophos;i="4.44,761,1249250400"; d="scan'208";a="50521238" Received: from out4.smtp.messagingengine.com ([66.111.4.28]) by mail4-smtp-sop.national.inria.fr with ESMTP; 18 Nov 2009 01:54:55 +0100 Received: from compute1.internal (compute1.internal [10.202.2.41]) by gateway1.messagingengine.com (Postfix) with ESMTP id 2823CC0C41 for ; Tue, 17 Nov 2009 19:54:54 -0500 (EST) Received: from heartbeat2.messagingengine.com ([10.202.2.161]) by compute1.internal (MEProxy); Tue, 17 Nov 2009 19:54:54 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=messagingengine.com; h=message-id:date:from:mime-version:to:subject:content-type:content-transfer-encoding; s=smtpout; bh=x0pVFEj2nzK9XvkkVIBZd4X7hlI=; b=b9DmrJPTFxDEs8CGT0l+a1i2+9yNG5FjIo0MBydeJaLht8nX5byX7rkwOaCODdPTfF9tnUHgb4z+l4v79sqUd4OnN3mCRu9ExE3/qMhM/fnQKBw16zihkMiEypqzDiDPyoUXcacMYkvE52iyHvO4CueReBJ3aTmks3wqJN70P5Y= X-Sasl-enc: JhYDXy3B6o1n1QK/1ld99ZY2uGTuzKs/eltc/ExvqY5Y 1258505693 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 8064EA809 for ; Tue, 17 Nov 2009 19:54:53 -0500 (EST) Message-ID: <4B0345BA.9020508@ens-lyon.org> Date: Wed, 18 Nov 2009 01:54:18 +0100 From: Martin Jambon User-Agent: Thunderbird 2.0.0.22 (X11/20090908) MIME-Version: 1.0 To: OCaml Mailing List Subject: New: cppo, C preprocessor for OCaml Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Spam: no; 0.00; ens-lyon:01 ocaml:01 cpp:01 conditionals:01 ifdef:01 ocaml:01 variants:01 lexer:01 ocamllex:01 ocamllex:01 ocamlyacc:01 tarballs:01 preprocessor:01 preprocessor:01 jambon:01 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 -- http://mjambon.com/