Blame camlp4/unmaintained/etc/q_phony.ml
|
Packit |
1f8b6b |
(* camlp4r pa_extend.cmo q_MLast.cmo *)
|
|
Packit |
1f8b6b |
(***********************************************************************)
|
|
Packit |
1f8b6b |
(* *)
|
|
Packit |
1f8b6b |
(* Camlp4 *)
|
|
Packit |
1f8b6b |
(* *)
|
|
Packit |
1f8b6b |
(* Daniel de Rauglaudre, projet Cristal, INRIA Rocquencourt *)
|
|
Packit |
1f8b6b |
(* *)
|
|
Packit |
1f8b6b |
(* Copyright 2001 Institut National de Recherche en Informatique et *)
|
|
Packit |
1f8b6b |
(* Automatique. Distributed only by permission. *)
|
|
Packit |
1f8b6b |
(* *)
|
|
Packit |
1f8b6b |
(***********************************************************************)
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
open Pcaml;
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
value t = ref "";
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
Quotation.add ""
|
|
Packit |
1f8b6b |
(Quotation.ExAst
|
|
Packit |
1f8b6b |
(fun c s ->
|
|
Packit |
1f8b6b |
let _loc = c.Quotation.loc in
|
|
Packit |
1f8b6b |
let t =
|
|
Packit |
1f8b6b |
if t.val = "" then "<<" ^ s ^ ">>"
|
|
Packit |
1f8b6b |
else "<:" ^ t.val ^ "<" ^ s ^ ">>"
|
|
Packit |
1f8b6b |
in
|
|
Packit |
1f8b6b |
<:expr< $uid:t$ >>,
|
|
Packit |
1f8b6b |
fun c s ->
|
|
Packit |
1f8b6b |
let _loc = c.Quotation.loc in
|
|
Packit |
1f8b6b |
let t =
|
|
Packit |
1f8b6b |
if t.val = "" then "<<" ^ s ^ ">>"
|
|
Packit |
1f8b6b |
else "<:" ^ t.val ^ "<" ^ s ^ ">>"
|
|
Packit |
1f8b6b |
in
|
|
Packit |
1f8b6b |
<:patt< $uid:t$ >>))
|
|
Packit |
1f8b6b |
;
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
Quotation.default.val := "";
|
|
Packit |
1f8b6b |
Quotation.translate.val := fun s -> do { t.val := s; "" };
|