<div style="color: rgb(85, 85, 85); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span lang="EN-US">Hello cfe-dev list,</span><br></div><p class="MsoNormal" style="color: rgb(85, 85, 85); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span lang="EN-US">I am a student with big interest in learning python and Clang Analyzer internals. To start from some point, I decided to build a module that provides an easy way to construct CFGs and interact with them using only Clang Python Bindings AST. I built it for (more or less) full C language and in pure Python (influenced from CFG.cpp (</span><a href="https://github.com/llvm-mirror/clang/blob/master/lib/Analysis/CFG.cpp" rel="noreferrer" style="color: rgb(147, 151, 205);"><span lang="EN-US">https://github.com/llvm-mirror/clang/blob/master/lib/Analysis/CFG.cpp</span></a><span lang="EN-US">). To test its usage, I built a dataflow analysis module<span class="Apple-converted-space"> </span><span style="color:rgb(34, 34, 34)" class="colour"><span style="font-family:Arial, "Helvetica Neue", Helvetica, sans-serif" class="font"><span style="font-size:14px" class="size">(that is not published yet) </span></span></span>that traverse the CFG , and it seems to work more or less good.</span><br></p><p class="MsoNormal" style="color: rgb(85, 85, 85); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span lang="EN-US">As I said before, I am doing this with the only purpose of learning, so I am aware that my Python code is not of good quality and probably the architecture of the program can be improved a lot. Also, there will be a lot of bugs. If someone have some free time and wants to make a quick look at the project, I will be very grateful to hear any kind of constructive criticism.</span><br></p><p class="MsoNormal" style="color: rgb(85, 85, 85); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span lang="EN">Please contact me at the email of this message, or to the email that appears in the github project description.</span><br></p><p class="MsoNormal" style="color: rgb(85, 85, 85); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span lang="EN">Here is the github repository:</span><br></p><p class="MsoNormal" style="color: rgb(85, 85, 85); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><span lang="EN"><a href="https://github.com/shramos/pyCFG/" rel="noreferrer" style="color: rgb(147, 151, 205);">https://github.com/shramos/pyCFG/</a></span><br></p><div style="color: rgb(85, 85, 85); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br></div><div style="color: rgb(85, 85, 85); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">Thank you very much for this fantastic tool, your effort is appreciated.<br></div><div style="color: rgb(85, 85, 85); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"><br></div><div style="color: rgb(85, 85, 85); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">Regards.<br></div><div class="protonmail_signature_block"><div><br></div></div><div><br></div>