From 4767d724d489a7ad67f696e9401e70b9f9ae2143 Mon Sep 17 00:00:00 2001 From: Samuel Mimram Date: Mon, 15 Oct 2007 19:55:12 +0000 Subject: Imported Upstream version 8.1.pl2+dfsg --- lib/compat.ml4 | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) (limited to 'lib/compat.ml4') diff --git a/lib/compat.ml4 b/lib/compat.ml4 index 7ea3ff66..372d2be3 100644 --- a/lib/compat.ml4 +++ b/lib/compat.ml4 @@ -8,10 +8,24 @@ (* Compatibility file depending on ocaml version *) -(* IFDEF not available in 3.06; use ifdef instead *) - (* type loc is different in 3.08 *) -ifdef OCAML_308 then + +IFDEF OCAML309 THEN DEFINE OCAML308 END + +IFDEF CAMLP5 THEN +module M = struct +type loc = Stdpp.location +let dummy_loc = Stdpp.dummy_loc +let make_loc = Stdpp.make_loc +let unloc loc = Stdpp.first_pos loc, Stdpp.last_pos loc +let join_loc loc1 loc2 = + if loc1 = dummy_loc or loc2 = dummy_loc then dummy_loc + else Stdpp.encl_loc loc1 loc2 +type token = string*string +type lexer = token Token.glexer +let using l x = l.Token.tok_using x +end +ELSE IFDEF OCAML308 THEN module M = struct type loc = Token.flocation let dummy_loc = Token.dummy_loc @@ -24,16 +38,34 @@ let unloc (b,e) = assert (dummy_loc = (b,e) or make_loc loc = (b,e)); *) loc +let join_loc loc1 loc2 = + if loc1 = dummy_loc or loc2 = dummy_loc then dummy_loc + else (fst loc1, snd loc2) +type token = Token.t +type lexer = Token.lexer +let using l x = l.Token.using x end -else +ELSE module M = struct type loc = int * int let dummy_loc = (0,0) let make_loc x = x let unloc x = x +let join_loc loc1 loc2 = + if loc1 = dummy_loc or loc2 = dummy_loc then dummy_loc + else (fst loc1, snd loc2) +type token = Token.t +type lexer = Token.lexer +let using l x = l.Token.using x end +END +END type loc = M.loc let dummy_loc = M.dummy_loc let unloc = M.unloc let make_loc = M.make_loc +let join_loc = M.join_loc +type token = M.token +type lexer = M.lexer +let using = M.using -- cgit v1.2.3