<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
Thanks for your reply.<div>Could you give me more documents or examples about how to use the AST matchers?<br><br><div><div id="SkyDrivePlaceholder"></div>> Date: Tue, 21 Aug 2012 09:06:51 -0700<br>> Subject: Re: [cfe-dev] How could I implement mygcc's Checking with Clang?þ<br>> From: klimek@google.com<br>> To: yangyeping_666@hotmail.com<br>> CC: cfe-dev@cs.uiuc.edu<br>> <br>> On Tue, Aug 21, 2012 at 4:30 AM, yang yeping <yangyeping_666@hotmail.com> wrote:<br>> > I am a post-graduate student from Beijing Institute of Technology in China<br>> > and I am a newcomer to llvm/Clang and I am so interested at it.I have read<br>> > Nic Volanschi's Papers about Mygcc[1] and Condate[2].<br>> > In my opinion, this is a great job. Now I want to implement this Checking<br>> > ability with Clang.But I find something different between gcc and Clang:<br>> > 1. The ASTs are so different<br>> > 2. As far as I know, Clang doe!
 s not use a GIMPLE internal representation<br>> > 3. May other differences(As I am not familiar with Clang and gcc)<br>> ><br>> > And another question:<br>> >  How to transplant the condate.y parser to Clang?<br>> ><br>> > So I want to know whether my idea is feasible.<br>> > If it is feasible, how could I solve the problems above?And Could anyone<br>> > give me some suggestion about  implementing mygcc's Checking with Clang?For<br>> > example, make use of ! ASTMatcher interface?<br>> ><br>> > By the way, I have visited the mail of Samuel Harrington at<br>> > http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-April/008599.html<br>> ><br>> > Despite of this, I still want to know more about implementing the Checking<br>> > ability with clang.<br>> <br>> Very high level answer:<br>> You can use clang plugins to add checks to clang<br>> (http://clang.llvm.org/docs/ClangPlugins.htm!
 l).<br>> The AST matchers can help you finding certain patterns you
'd like to<br>> detect (I'm working on more docs there); you can also use the<br>> RecursiveASTVisitor directly<br>> (http://clang.llvm.org/docs/RAVFrontendAction.html)<br>> <br>> Cheers,<br>> /Manuel<br>> <br>> <br>> ><br>> > Thanks for your patient.<br>> ><br>> > [1] http://mygcc.free.fr/<br>> > [2] http://mygcc.free.fr/condate-asej07.pdf<br>> ><br>> > _______________________________________________<br>> > cfe-dev mailing list<br>> > cfe-dev@cs.uiuc.edu<br>> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev<br>> ><br></div></div>                                         </div></body>
</html>