Commit Graph
46 Commits
Author SHA1 Message Date
Eberhard Graether 5ceb7a4b43 data: added Graph data structure for storing code semantics in Storage
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.
2014-06-30 14:08:01 +02:00
Eberhard Graether 73b74cb618 ui: basic CodeView with syntax highlighting
Added CodeView interface and QtCodeView implementation for showing syntax highlighted code snippets. This change avoids
using the GuiElement hierarchy by using directly using QtClasses and creating QtCodeView in the QtElementFactory.
2014-06-30 13:50:19 +02:00
malte_langkabel 1045ce4ab9 test: Fixed parser tests to use TextAccess.
modified tests to check different cases more independently.

review id = 23

fortune cookie message = You will have a peace of mind when you talk to an old friend. (Du wirst einem alten Freund begegnen und deine Ruhe finden.)
2014-06-04 16:47:38 +02:00
Eberhard Graether 69026163cb logic: Fixed warning in ProjectSettings 2014-06-04 11:43:18 +02:00
Andreas Stallinger a26f5a52b2 logic : projectsettings loading
loading projectsetting via file

review id = 21

fortune cookie message = in dreams and in life, nothing is impossible
2014-06-03 17:07:32 +02:00
malte_langkabel 4ff064cb1d data: parse typedefs
- added callbacks that will be called when clang encounters typedefs.
- added tests for this feature.

review id = 20

fortune cookie message = New ideas could be profitable.
2014-06-03 13:37:13 +02:00
Andreas Stallinger 877ee4d56e utility: filesystemfix
replaced boost::filesystem::path string() with generic_string()

bug id = 1
2014-05-27 12:46:34 +02:00
Eberhard Graether 38c8aaebe8 data: Extended CxxParser to detect elements
Detects most elements in the code, currently classes, structs, global variables, fields, functions, methods, namespaces
and enums. The structs ParseLocation and ParseVariable are helper objects to transmit information to the ParserClient.
Currently the parsed information only gets logged in the Storage.

review id = 15

fortune cookie message = In dreams and in life, nothing is impossible.
2014-05-19 12:51:00 +02:00
Manuel Dobusch bb6640369a Utility: TextAccess
Abstraction for file or text access.

review id = 16

fortune cookie message = Good news from someone dear is coming soon.
2014-05-19 12:45:44 +02:00
malte_langkabel b29209a79e ui: gui wrapper extension
- added classes for qt layout abstraction.

review id = 18
2014-05-19 11:44:04 +02:00
Andreas Stallinger ac55261af6 utility: boost integration
Added boost components: filesystem and system to the project
environment varibable BOOST_155_DIR targeting the boost_1_55_0 folder is needed

review id = 14

fortune cookie message = when you speak honestly and openly, others truly listen to you
2014-05-13 17:24:53 +02:00
Andreas Stallinger 95e51b1780 utility,logic : missing algorithm includes added 2014-05-13 15:40:20 +02:00
Eberhard Graether ed8d527b65 utility: Added messaging system
To use the messaging system the classes Message and MessageListener need to get derived. The Singelton MessageQueue is
responsible for managing listeners and sending messages in a threadsafe way.

review id = 9

fortune cookie message = You are on your track to starting something new.
2014-05-12 17:35:55 +02:00
Eberhard Graether c3cd0b7e6f utility: Fixed Vector2 includes 2014-05-12 15:46:00 +02:00
malte_langkabel 37d0dd33a4 ui: implemented gui abstraction and dummy view
- added abstract class tree for gui elements.
- implemented concrete gui classes that wrap the qt specific content.
- implemented first DummyView which plays nice with the ViewManager.

review id = 12
2014-05-07 13:00:17 +02:00
Andreas Stallinger 387618d922 data: fixed wrong case in include in file ASTConsumer.h 2014-05-06 17:32:35 +02:00
Manuel Dobusch 7badd1217f Test: Logging
Enabled logging in unit tests.
Seperated LogManager into LogManager (singleton stuff) and LogManagerImplementation (actual logging stuff)
Implemented simple FileLogger

review id = 13
2014-05-06 17:03:50 +02:00
Eberhard Graether 82c88ebd97 data: Added CxxParser, currently only detecting classes
This change adds CxxParser a class for parsing cxx files. It holds basic functionality to detect classes using the clang
libTooling classes. CxxParser is derived from a common Parser interface, which can later be used for other language
parsers. The Parser forwards detected elements to a ParserClient interface, which is implemented by the Storage class.
The detected classes only get logged so far.

review id = 6

* bd3c63a - (HEAD, origin/class, class) applied second review <Eberhard Graether> (4 minutes ago)
* 3db7d93 - added missing files <Eberhard Graether> (4 days ago)
* 6d09f4e - applied review <Eberhard Graether> (4 days ago)
* d9d3e64 - fixed CMake files <Eberhard Graether> (4 days ago)
* f22a771 - only one Storage class <Eberhard Graether> (4 days ago)
* 6ee9553 - added tests <Eberhard Graether> (4 days ago)
* 0a525e8 - fixed includes <Eberhard Graether> (4 days ago)
* ca3fbb8 - added StorageManager as ParserClient <Eberhard Graether> (4 days ago)
* fa185a5 - renamed ParseLocation to ParseObject <Eberhard Graether> (4 days ago)
* 8b89808 - pass location with ParseLocation object <Eberhard Graether> (4 days ago)
* 548ae3c - renamed clang AST classes <Eberhard Graether> (4 days ago)
* d3b2caf - cleaned includes <Eberhard Graether> (4 days ago)
* f7fdf33 - removed using namespace stmts <Eberhard Graether> (4 days ago)
* 5378ef6 - using ParserClient <Eberhard Graether> (4 days ago)
* b9ce2f6 - working with test file <Eberhard Graether> (4 days ago)
* 5585abc - added CxxParser and ParserClient <Eberhard Graether> (4 days ago)
2014-05-06 14:50:51 +02:00
Manuel Dobusch 6b82ea6860 Build: Warnings
Fixed some compiler warnings, joint ops with ebsi and stalli

review id = 10
2014-04-30 17:11:12 +02:00
Eberhard Graether ad54b0d1fa build: remove rtti for files using clang
Clang is usually compiled without runtime type information, so all files that use clang classes can't have rtti. This
change creates a separate CLANG_FILES variable which holds all clang files, so they can be compiled without rtti.

review id = 11
2014-04-29 17:23:20 +02:00
Eberhard Graether 330c38d9af build: use TEST_FILES variable in cxxtestgen command for UNIX, so cmake realizes changes
review id = 8
2014-04-29 16:44:19 +02:00
Eberhard Graether b561fe77e7 build: added module name 'test' to git_commit_template 2014-04-29 16:42:41 +02:00
Eberhard Graether b0302af7f2 test: removed unnecessary UtilityTestSuite 2014-04-29 16:40:40 +02:00
Andreas Stallinger be779546e8 test: fix - replaced sqrtf with sqrt 2014-04-29 16:36:28 +02:00
Manuel Dobusch 1282c5e9cd Utility: LogManager Threadsafe
The LogManager is now threadsafe.

review id = 7
2014-04-29 15:12:54 +02:00
Eberhard Graether 50d1127f61 utility: fixed clang error in Vector2 2014-04-24 16:16:25 +02:00
Manuel Dobusch 651f0f68a2 Utility: Vector2
2d template vector (with typedefs for int and float)

review id = 5
2014-04-24 14:06:45 +02:00
Andreas Stallinger 879373a22f build: unix build - make replaced with ninja 2014-04-10 15:28:33 +02:00
Eberhard Graether 0f0d75729d build: updated git commit message template 2014-04-10 13:53:34 +02:00
Eberhard Graether 4b4c9f56d8 setup: Added clang and llvm
Adds clang and llvm include directories and libraries to the build. The
environment variable CLANG_DIR is used to define the location of llvm
and clang. A simple clang tool implementation was added to assure proper
operation of the libraries.
2014-04-09 16:25:32 +02:00
Eberhard Graether 9902288cab utility: Added ConsoleLogger
Adds the class ConsoleLogger, which logs LogMessages to std::cout. The
Application class creates and registers a ConsoleLogger on creation.

Output format:
<time> | <filename>:<line> <function>() | <type>: <message>

Example:
12:58:18 | Application.cpp:21 create() | INFO: hello world!
12:58:18 | Application.cpp:22 create() | WARNING: attention world!
12:58:18 | Application.cpp:23 create() | ERROR: world failed

review=4
reviewer=stalli, malte
2014-04-09 14:43:48 +02:00
Andreas Stallinger 6b02f6ff87 utility: fix missing algorithm include in LogManager.cpp 2014-04-09 14:24:10 +02:00
Manuel Dobusch c85d997021 Utility: Logging
Added logging utility classes supposed to be used for all your logging
needs, e.g. instead of cout

reviewer=ebsi
2014-04-07 14:44:54 +02:00
malte_langkabel a1de92c58d config: setup
Added implementation of config Manager and tests.

reviewer=Ebsi
review
url=https://git.mediacube.at/egraether.mmt-b2009/masterproject/merge_request/3
2014-04-04 14:32:10 +02:00
Eberhard Graether b854cb1f46 setup: improved sh scripts
- switched to !/bin/bash because of issues with echo -e on Mac OS
- improved git-sync-master.sh to also rebase on current feature branch
- improved logs in git-publish.sh
- changed build scripts to execute from /bin
2014-04-02 22:42:27 +02:00
Andreas Stallinger 6afd52a3d2 Setup: Valgrind Setup
Valgrind scripts for linux added
leak-logfile output in build directory
2014-04-02 17:58:13 +02:00
Manuel Dobusch 195e7bb574 Setup: VLD
Added VLD for windows

reviewer=ebsi
2014-04-02 15:38:03 +02:00
Andreas Stallinger 27e68e0e1e gitprecommithook: replaced echo with echo -e for color on linux(maybe for windows too 2014-03-31 23:04:01 +02:00
Andreas Stallinger f61425b4e8 scripts: replaced echo with echo -e for color in linux (maybe windows) 2014-03-31 20:42:53 +02:00
Eberhard Graether 055b3d0029 project: switched back to using space in nested template definitions
Clang on Mac OS X produced an error when compiling nested template definitions
without a space at the end "A<B<int>>"
2014-03-31 18:09:42 +02:00
Eberhard Graether d4e3433e5d project: added project skeleton
Skeleton includes emtpy implementations of application class structure.
Source groups were added to CMakeLists to define filters in Visual Studio.
2014-03-31 17:59:52 +02:00
Manuel Dobusch b5f91e62fa Setup: Added platform dlls for qt 2014-03-28 17:09:15 +01:00
Eberhard Graether 4fa1e22035 setup: added basic cmake project structure
Added cmake build instructions for app, lib and test.
Included Qt via environment variable QT_DIR.
Included CxxTest via environment variable CXX_TEST_DIR.
Added scripts for setup, syncing master and publishing features.
Added dlls for QT on Windows.
2014-03-24 15:40:50 +01:00
Eberhard Gräther e763532523 setup: added setup.sh script
The setup.sh script is responsible for setting up the environment
including all configurations.

reviewer=
review url=
2014-02-04 00:28:32 +01:00
Eberhard Gräther 441d274ad7 setup: added commit message template
This change adds the commit message template in file
.git_commit_message.txt. It will be used after once running:
$ git config commit.template .git_commit_message.txt

reviewer=
review url=
2014-02-04 00:12:58 +01:00
Eberhard Gräther 877b7268bc initial commit 0.0 2014-02-03 15:55:58 +01:00