<div dir="ltr">Hi Nikola,<div><br></div><div>Thanks a lot for the response.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Sep 3, 2014 at 1:56 AM, Nikola Smiljanic <span dir="ltr"><<a href="mailto:popizdeh@gmail.com" target="_blank">popizdeh@gmail.com</a>></span> wrote:<br>
<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 dir="ltr">1. Sema is responsible for building the ast, after doing all the checks. Act methods are 'hooks' that Parser uses to call into Sema. Build methods are used to build the actual ast nodes.<div>
<br></div>

<div>2. Various declaration classes have methods that return QualType, see <a href="http://clang.llvm.org/docs/InternalsManual.html#the-qualtype-class" target="_blank">http://clang.llvm.org/docs/InternalsManual.html#the-qualtype-class</a>. So VarDecl has getType but FunctionDecl in addtion has getReturnType and getFunctionType, etc.</div>
</div></blockquote><div><br></div><div>I am actually looking for the class which contains all VarDecl's for a program. As an example, if I have a program as follows;</div><div><br></div><div>int a;</div><div>bool b;</div>
<div>...</div><div>...</div><div><br></div><div>I am assuming there is a some sort of a container in clang which keeps all declaration data.</div><div>Suppose the container is named as TypeEnvironment for the moment. Then I need to query type information about each declaration with code similar to following;</div>
<div><br></div><div>TypeEnvironment.get("a") </div><div>TypeEnvironment.get("b")</div><div><br></div><div>etc ...</div><div><br></div><div>So I am looking for the closest implementation in clang, which gives me the functionality of TypeEnvironment (in example above).</div>
<div><br></div><div>Thanks</div><div>-Thejaka Amila <br></div><div><br></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 dir="ltr">

</div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div class="h5">On Wed, Sep 3, 2014 at 1:02 PM, Amila Jayasekara <span dir="ltr"><<a href="mailto:thejaka.amila@gmail.com" target="_blank">thejaka.amila@gmail.com</a>></span> wrote:<br>


</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><div class="h5"><div dir="ltr">Hi All,<div>
<br></div><div>I am fairly new to clang. I am trying to implement experimental type checking rules for lambda functions. I would mainly like to get feedback on following;</div>

<div><br></div><div>
1. I believe clang/lib/Sema is responsible for carrying out type checking. In the files in clang/lib/Sema I mainly saw 2 types of functions; a. BuildXXX functions and ActOnXXX functions. Which function pattern contains actual type checking implementations ? (In other words in which functions we do type checking ? e.g. :- function type checking etc ...)</div>



<div><br></div><div>2. In clang where (the class responsible) do we keep the information about type environment (i.e. type information about each variable, function etc ...) and how to retrieve/update type information ?</div>



<div><br></div><div>Will be great if I could get feedback on above.</div><div><br></div><div>Thank you in advance.</div><div><br></div><div>Regards</div><div>Thejaka Amila <br></div>























</div>
<br></div></div>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div></div>