module Id = struct
let name = "pr_gettext"
let version = "$Id$"
end
module Make (Syntax : Camlp4.Sig.Syntax)
: Camlp4.Sig.Printer(Syntax.Ast).S =
struct
module Loc = Syntax.Loc
module Ast = Syntax.Ast
class visitor = object
inherit Ast.fold as super
val t = []
method t = t
method expr = function
| <:expr@loc< f $str:singular$ >> ->
let t = str :: t in
{< t = t >}
| e -> super#expr e
end
let print_interf ?input_file ?output_file _ = ()
let print_implem ?input_file ?output_file ast =
let visitor = (new visitor)#str_item in
let t = (visitor ast)#t in
List.iter prerr_endline t
end
(* Register the new printer. *)
module M = Camlp4.Register.Printer(Id)(Make)