Big change towards cleaner storage of code property graphs: AST statement nodes and 'basic blocks' merged. Requires more testing.
Cleanup and simplification.
Replaced 'QueryUtils' by 'Traversals' and cleaned up. QueryUtils was getting too big and too messy.
Implemented a cleaner approach to code property graph importing which also fixes some bugs encountered in the previous version.
Mark nodes present in CFG/DDG right after creating the CFG and not by re-writing already existing database nodes. This is faster and cleaner as it should not be the output-modules job to recognize CFG nodes.
As planed for a long time, node properties are now accessed using constants rather than magic strings. The point of this change is to make visible which property keys currently exist, allowing people new to the code base to get a quick overview. It's also the first step in minimizing the amount of required keys.
Adaption of code to use of NodeKeys constants complete.
Since we now have gotten rid of basic blocks, we don't need USE/DEF links both from the AST and the CFG as they are the same merged structure.
Improved last commit: it's nice to have USE/DEF links from AST nodes. We just don't want duplicate links.
Changes to test.py. Will move this to python-joern though.
Removal of remaining python code in joern as this should clearly go to python-joern if at all.
Finally got rid of pseudo nodes as they have not been needed anymore for a long time and caused a lot of confusion.