<div dir="ltr">On Mon, Mar 4, 2013 at 8:09 PM, Vane, Edwin <span dir="ltr"><<a href="mailto:edwin.vane@intel.com" target="_blank">edwin.vane@intel.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class=""><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Could you point at an example for #2?</span></p></div></div></blockquote><div><br></div><div style>Those are unfortunately in internal tools - we will open source some of it, but we'll need to find more general abstractions first (stuff we have internally is pretty special cased and thus not really interesting). </div>
<div style><br></div><div style>The best example I can think of are the unittests for the AST matchers:</div><div style><a href="http://llvm-reviews.chandlerc.com/diffusion/L/browse/cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.cpp;176444$3712">http://llvm-reviews.chandlerc.com/diffusion/L/browse/cfe/trunk/unittests/ASTMatchers/ASTMatchersTest.cpp;176444$3712</a><br>
</div><div style><br></div><div style>Cheers,</div><div style>/Manuel</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div lang="EN-US" link="blue" vlink="purple"><div><p class=""><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u><u></u></span></p>
<p class=""><span style="font-size:11pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class=""><b><span style="font-size:10pt;font-family:Tahoma,sans-serif">From:</span></b><span style="font-size:10pt;font-family:Tahoma,sans-serif"> Manuel Klimek [mailto:<a href="mailto:klimek@google.com" target="_blank">klimek@google.com</a>]
<br>
<b>Sent:</b> Monday, March 04, 2013 1:59 PM<br>
<b>To:</b> Vane, Edwin; clang-dev Developers</span></p><div class="im"><br>
<b>Subject:</b> Re: Thoughts on subexpression matching<u></u><u></u></div><p></p>
<p class=""><u></u> <u></u></p>
<div>
<p class="">+cfe-dev<u></u><u></u></p><div><div class="h5">
<div>
<p class=""><u></u> <u></u></p>
<div>
<div>
<p class="">On Mon, Mar 4, 2013 at 6:09 PM, Vane, Edwin <<a href="mailto:edwin.vane@intel.com" target="_blank">edwin.vane@intel.com</a>> wrote:<u></u><u></u></p>
<p class="">Hi Manuel,<br>
<br>
I've seen a need for subexpression matching arise several times in working with matchers. Often it comes in the form of: match this expression of this "thing over here" is the same as "that thing over there". In the use-auto transform for example, the only
 thing that's not in a matcher is the test that the vardecl type is the same as the initializer. Have you had any thoughts about this feature before?<u></u><u></u></p>
<div>
<p class=""><u></u> <u></u></p>
</div>
<div>
<p class="">There are two ways to do this:<u></u><u></u></p>
</div>
<div>
<p class="">1. be able to express references in the matcher language; this is hard, but if somebody wanted to give it a go, I'd be excited ;)<u></u><u></u></p>
</div>
<div>
<p class="">2. just do a submatch in the callback - that's what match() on the ASTMatchFinder and the freestanding match() functions around the ASTMatchFinder are for; this is what we're currently using - thanks to the caching of the parent map in
 the ASTContext this is now also computationally acceptable :)<u></u><u></u></p>
</div>
<div>
<p class=""><u></u> <u></u></p>
</div>
<div>
<p class="">Cheers,<u></u><u></u></p>
</div>
<div>
<p class="">/Manuel<u></u><u></u></p>
</div>
</div>
</div>
</div>
</div></div></div>
</div>
</div>

</blockquote></div><br></div></div>