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; "" };