Camlp4 2.01

From: Daniel de Rauglaudre (
Date: Wed Dec 09 1998 - 20:21:35 MET

Date: Wed, 9 Dec 1998 20:21:35 +0100
From: Daniel de Rauglaudre <>
Subject: Camlp4 2.01

Camlp4 is a preprocessor-pretty-printer for Objective Caml.

The version 2.01, compatible with Ocaml 2.01 has been released.

All informations and downloading address at:

Among changes, notice that the interface of the module Token
changed. If you defined your own lexers (not using the predefined
Plexer), you have things to changes in your programs. See the file
README-2.01 in the distribution and the documentation of Camlp4.

Camlp4 Version 2.01 - Changes

Token interface
* Big change: the type for tokens and tokens patterns is now (string * string)
  the first string being the constructor name and the second its possible
  parameters. No change in EXTEND statements using Plexer. But lexers
  - a supplementary parameter "tparse" to specify how to parse token
    from token patterns.
  - fields "using" and "removing" replacing "add_keyword" and
  See the file README-2.01 for how to update your programs and the interface
  of Token.

Grammar interface
* The function "keywords" have been replaced by "tokens". The equivalent
  of the old statement:
       Grammar.keywords g
  is now:
       Grammar.tokens g ""

Missing features added
* Added "lazy" statement (pa_r.cmo, pa_o.cmo, pr_r.cmo, pr_o.cmo)
* Added print "assert" statement (pr_o.cmo, pr_r.cmo)
* Added parsing of infix operators like in Ocaml (e.g. |||) in pa_o.cmo

* Added "make scratch"
* Changed Makefile. No more "make T=../", working bad in some systems.
* Some changes to make compilation in Windows 95/98 working better (thanks
  to Patricia Peratto).

Classes and objects
* Added quotations for classes and objects (
* Added accessible entries in module Pcaml (class_type, class_expr, etc.)
* Changed classes and objects types in definition (module MLast)

* Some adds in pa_sml.cmo. Thanks to Franklin Chen.
* Added option "-no_cp" when "pr_o.cmo" or "pr_r.cmo" is loaded: do
  not print comments between phrases.
* Added option "-split_gext" when "pa_extend.cmo" is loaded: split GEXTEND
  by functions to turn around a PowerPC problem.

Bug fixes
* Fixed pa_r.cmo, pa_o.cmo to parse, and pr_r.cmo, pr_o.cmo to print "(x:#M.c)"
* Fixed printing pr_o.cmo of "(a.b <- 1)::1"
* Extended options with parameters worked only when the parameter was sticked.
     camlp4o pr_o.cmo -l120
  worked, but not:
     camlp4o pr_o.cmo -l 120

 Projet Cristal - INRIA Rocquencourt

This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:17 MET