From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 2C5B57F16D for ; Wed, 2 Sep 2015 10:23:08 +0200 (CEST) IronPort-PHdr: 9a23:ZQCILhDAfoenFtM/K2/uUyQJP3N1i/DPJgcQr6AfoPdwSP79osbcNUDSrc9gkEXOFd2CrakU16yO6+jJYi8p39WoiDg6aptCVhsI2409vjcLJ4q7M3D9N+PgdCcgHc5PBxdP9nC/NlVJSo6lPwWB6kO74TNaIBjjLw09fr2zQd6OyZzvn8mJuLTtICxwzAKnZr1zKBjk5S7wjeIxxbVYF6Aq1xHSqWFJcekFjUlhJFaUggqurpzopM0r221qtvkg789NV7nhN+R9FOQATWduD2dgz8TusVHnTBCTri8XW2AS1x5JGBTt7RfgX563vDGs5cRn3yzPEcj3UaolER6v67YjHBPtiTsdJngz/WXGosN1haNf5hmmokoskMbvfIiJOa8mLevmdtQASD8EB54JWg== Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=dmitry.bely@gmail.com; spf=Pass smtp.mailfrom=dmitry.bely@gmail.com; spf=None smtp.helo=postmaster@mail-ig0-f173.google.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of dmitry.bely@gmail.com) identity=pra; client-ip=209.85.213.173; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="dmitry.bely@gmail.com"; x-sender="dmitry.bely@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of dmitry.bely@gmail.com designates 209.85.213.173 as permitted sender) identity=mailfrom; client-ip=209.85.213.173; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="dmitry.bely@gmail.com"; x-sender="dmitry.bely@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-ig0-f173.google.com) identity=helo; client-ip=209.85.213.173; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="dmitry.bely@gmail.com"; x-sender="postmaster@mail-ig0-f173.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0BVAQANseZVm63VVdFdhFgGgx2vGotUAQmJMAc4FAEBAQEBAQEBEAEBAQEBBgsLCSEugh2CHxEEGQEbHgMSEA8CJgIkAREBBQEiNYd2AQMSpHCCBYEvPjGLQIFsgnmKPwoZJw1WhGQBBQ6BFIVRjHaBQwWNZIdljHaOcYoyEiOBFxeBWQwBgis7M4JNAQEB X-IPAS-Result: A0BVAQANseZVm63VVdFdhFgGgx2vGotUAQmJMAc4FAEBAQEBAQEBEAEBAQEBBgsLCSEugh2CHxEEGQEbHgMSEA8CJgIkAREBBQEiNYd2AQMSpHCCBYEvPjGLQIFsgnmKPwoZJw1WhGQBBQ6BFIVRjHaBQwWNZIdljHaOcYoyEiOBFxeBWQwBgis7M4JNAQEB X-IronPort-AV: E=Sophos;i="5.17,452,1437429600"; d="scan'208";a="175704685" Received: from mail-ig0-f173.google.com ([209.85.213.173]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 02 Sep 2015 10:23:07 +0200 Received: by igcrk20 with SMTP id rk20so19631894igc.1 for ; Wed, 02 Sep 2015 01:23:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=kGlyB5qzb8vm4oZNJXaYowCLH7a8CbSvxEuZeK95iK8=; b=K8yZtBUMum/WgWH4TNsDSWJrpIcAWLOBTxTzDqE0OBFNfCQXuYm3BR7Go9Dcclat3Y yvzcjnvSE+szbKCGctc+W6LmFZ1tU+cdPzpwWOg1sRnHRZFAK0dUgH7npDUPX+35aLhz Wst6HfqFEMFpG3QKbbmP+3K2Dof/pP9PX/9r/w5KuBZX/2cFQ82MQ/ybasMKqrLGB2LW zBV5fd0fxWb2pRFBlyAzxGlZsJaIebTYXwjfeGHsu5b7fchxB7FaUyau+DOztJtKS9cE /6hxDBIrfKXIRjTkBzZFnEKI472w5/auZ2ButAtKXwQVx+c/5IvTntaLSFohlkAn+xo0 9DCA== MIME-Version: 1.0 X-Received: by 10.50.78.161 with SMTP id c1mr2162786igx.35.1441182186478; Wed, 02 Sep 2015 01:23:06 -0700 (PDT) Received: by 10.50.4.166 with HTTP; Wed, 2 Sep 2015 01:23:06 -0700 (PDT) Date: Wed, 2 Sep 2015 11:23:06 +0300 Message-ID: From: Dmitry Bely To: Caml List Content-Type: text/plain; charset=UTF-8 Subject: [Caml-list] ppx_metaquot location passing I'm writing a ppx rewriter. It iterates over structure items and for some of them generates the new ones. A simplified example: let defs = ref [] let mapper argv = let expr mapper expr = ... let rec structure mapper li = let li = List.fold_left (fun acc ({pstr_loc = loc} as si) -> let si = default_mapper.structure_item mapper si in let sli = List.map (fun (n, v) -> [%stri let [%p pvar n] = [%e str v]]) !defs in defs := []; (si::sli) @ acc) [] li in List.rev li ... The question is how to pass the location information for [%stri] generated code (loc in my example)? Of course I can write {[%stri let [%p pvar n] = [%e str v]] with pstr_loc = loc} but I would like the location of all nested expressions to be set to loc as well. - Dmitry Bely