5ceb7a4b436b92e3c6538b6a091a5fcde5c5f8be
This change adds graph data structures Token, Node, Edge and Graph for holding code semantics in the Storage and fills them with the parsed data. Things to note: * Token is the base for the classes Edge and Node and holds a unique id. * Graph is the owner of all Nodes and Edges. * A Node saves the Edges it is endpoint of. * An Edge saves the Nodes that are endpoints. * Nodes and Edges are not subclassed. The different Node and Edge types are distinguished by the enums NodeType and EdgeType. Type specific fields are therefore available for all types, a check when assigning them prohibits faulty usage. * Storage uses the Graph::getNodeHierarchy method, which is not strict about knowing type names beforehand. E.g. if A::B is passed in and A doesn't exist so far, then node A gets created as NODE_UNDEFINED with B as it's child. * The Graph methods addNodeAsPlainCopy and addEdgeAsPlainCopy can be used to create a sub-graph without reference to the original, but with the same ids. review id = 19 fortune cookie message = Your cheerful outlook is one of your best assets.
Masterproject
Setup
External Software
- QT 5.2.1
- CxxTest 4.3
- Valgrind 3.9.0(linux, macOS)
- Clang & LLVM (installation guide http://clang.llvm.org/docs/LibASTMatchersTutorial.html)
- Boost 1.55 ()
Environment Variables
- QT_DIR - ...\Qt\Qt5.2.1\5.2.1<IDE>\
- CXX_TEST_DIR - .../cxxtest-4.3/
- CLANG_DIR - .../clang-llvm/
- BOOST_155_DIR - .../boost_1_55_0
For Win32:
- VLD_DIR - .../Visual Leak Detector
Settings
Run setup script: $ ./script/setup.sh
Languages
C++
63.4%
Java
32.7%
CMake
1.6%
Shell
1.1%
CSS
0.6%
Other
0.4%