umbrello's recent c++ parser has been taken from the kdevelop 3.0 release. While fixing bugs in this parser, there has been several issues found: - wrong code position reporting - hard to find errors and to extend - slow import - external dependency to an outdated boost version With the c++ parser of kdevelop 3.5 there is an updated parser available. The advantages of upgrading to this parser are: - get rid of the boost dependency - easier bug fixing - easier to extend - Correct error reporting to the user with a log window or similar to find missing include dirs. Drawbacks: - need to be ported to Qt4 (several qt3 classes are used) - need some migration from KSharedPtr to std::auto_ptr Reproducible: Always Notes: 1. in general there would be an option to take recent kdevelop 4 parser. The drawback is that it uses a different ast implementation, which needs refactoring of the ast to umbrello model feeder. KDE 3.5 c++ parsers ast is mostly compatible to the recently used 3.0 ast. 2. kdevelop developers has been asked to share there c++ parser implementation with umbrello (to place it into kdevplatform), which has been rejected. They do not want to make their ast model public.
Git commit c8b1625de69873819dcaae6ea5700d851f98662d by Ralf Habacker. Committed on 03/02/2014 at 16:06. Pushed by habacker into branch 'master'. Separate kdevelop 3.0 cpp parser from application code. This makes upgrade to more recent version easier. R +0 -0 lib/cppparser/README [from: umbrello/codeimport/kdevcppparser/README - 100% similarity] R +0 -0 lib/cppparser/assignFunctor.hpp [from: umbrello/codeimport/kdevcppparser/assignFunctor.hpp - 100% similarity] R +0 -0 lib/cppparser/ast.cpp [from: umbrello/codeimport/kdevcppparser/ast.cpp - 100% similarity] R +0 -0 lib/cppparser/ast.h [from: umbrello/codeimport/kdevcppparser/ast.h - 100% similarity] R +0 -0 lib/cppparser/ast_utils.cpp [from: umbrello/codeimport/kdevcppparser/ast_utils.cpp - 100% similarity] R +0 -0 lib/cppparser/ast_utils.h [from: umbrello/codeimport/kdevcppparser/ast_utils.h - 100% similarity] R +0 -0 lib/cppparser/driver.cpp [from: umbrello/codeimport/kdevcppparser/driver.cpp - 100% similarity] R +0 -0 lib/cppparser/driver.h [from: umbrello/codeimport/kdevcppparser/driver.h - 100% similarity] R +0 -0 lib/cppparser/errors.cpp [from: umbrello/codeimport/kdevcppparser/errors.cpp - 100% similarity] R +0 -0 lib/cppparser/errors.h [from: umbrello/codeimport/kdevcppparser/errors.h - 100% similarity] R +0 -0 lib/cppparser/keywords.lut.h [from: umbrello/codeimport/kdevcppparser/keywords.lut.h - 100% similarity] R +0 -0 lib/cppparser/lexer.cpp [from: umbrello/codeimport/kdevcppparser/lexer.cpp - 100% similarity] R +0 -0 lib/cppparser/lexer.h [from: umbrello/codeimport/kdevcppparser/lexer.h - 100% similarity] R +0 -0 lib/cppparser/lookup.cpp [from: umbrello/codeimport/kdevcppparser/lookup.cpp - 100% similarity] R +0 -0 lib/cppparser/lookup.h [from: umbrello/codeimport/kdevcppparser/lookup.h - 100% similarity] R +0 -0 lib/cppparser/parser.cpp [from: umbrello/codeimport/kdevcppparser/parser.cpp - 100% similarity] R +0 -0 lib/cppparser/parser.h [from: umbrello/codeimport/kdevcppparser/parser.h - 100% similarity] R +0 -0 lib/cppparser/position.h [from: umbrello/codeimport/kdevcppparser/position.h - 100% similarity] R +0 -0 lib/cppparser/preprocesslexer.cpp [from: umbrello/codeimport/kdevcppparser/preprocesslexer.cpp - 100% similarity] R +0 -0 lib/cppparser/preprocesslexer.h [from: umbrello/codeimport/kdevcppparser/preprocesslexer.h - 100% similarity] R +0 -0 lib/cppparser/skip_rule.hpp [from: umbrello/codeimport/kdevcppparser/skip_rule.hpp - 100% similarity] R +0 -0 lib/cppparser/tree_parser.cpp [from: umbrello/codeimport/kdevcppparser/tree_parser.cpp - 100% similarity] R +0 -0 lib/cppparser/tree_parser.h [from: umbrello/codeimport/kdevcppparser/tree_parser.h - 100% similarity] M +11 -10 umbrello/CMakeLists.txt M +2 -3 umbrello/codeimport/cppimport.cpp http://commits.kde.org/umbrello/c8b1625de69873819dcaae6ea5700d851f98662d
Git commit 47b06e6643920af6b20294ebfefd3d3595bf0629 by Ralf Habacker. Committed on 20/01/2014 at 20:27. Pushed by habacker into branch '330788-3.5-cpp-parser'. Add log dock widget. M +31 -0 umbrello/uml.cpp M +7 -0 umbrello/uml.h http://commits.kde.org/umbrello/47b06e6643920af6b20294ebfefd3d3595bf0629
Git commit 7cac0f60bec6fa6574d0ef4aa9f689d8e327653f by Ralf Habacker. Committed on 30/01/2014 at 20:54. Pushed by habacker into branch '330788-3.5-cpp-parser'. Add debug window as dock window. M +0 -1 umbrello/debug/debug_utils.cpp M +16 -0 umbrello/uml.cpp M +3 -0 umbrello/uml.h http://commits.kde.org/umbrello/7cac0f60bec6fa6574d0ef4aa9f689d8e327653f
Git commit 9041fd6ff711a114c42f40274d83ad10d3c12fe2 by Ralf Habacker. Committed on 20/01/2014 at 21:33. Pushed by habacker into branch '330788-3.5-cpp-parser'. Add parser errors to log window. M +2 -0 umbrello/codeimport/cppimport.cpp http://commits.kde.org/umbrello/9041fd6ff711a114c42f40274d83ad10d3c12fe2
Git commit b6d34603e537c484b88ab3cfff18619c621fcf14 by Ralf Habacker. Committed on 20/01/2014 at 20:27. Pushed by habacker into branch 'master'. Add log dock widget, which is currently used by the cpp code import. GUI M +31 -0 umbrello/uml.cpp M +7 -0 umbrello/uml.h http://commits.kde.org/umbrello/b6d34603e537c484b88ab3cfff18619c621fcf14
Git commit 6eb2ccecd41200ee32c288c1370bf81325586b41 by Ralf Habacker. Committed on 20/01/2014 at 21:33. Pushed by habacker into branch 'master'. Add parser errors to log window. BUG M +2 -0 umbrello/codeimport/cppimport.cpp http://commits.kde.org/umbrello/6eb2ccecd41200ee32c288c1370bf81325586b41
Git commit 9ef1c977e97d16656e47e2df30201b9075e761cb by Ralf Habacker. Committed on 30/01/2014 at 20:54. Pushed by habacker into branch 'master'. Add debug window as dock window, which makes developers live easier. GUI M +0 -1 umbrello/debug/debug_utils.cpp M +16 -0 umbrello/uml.cpp M +3 -0 umbrello/uml.h http://commits.kde.org/umbrello/9ef1c977e97d16656e47e2df30201b9075e761cb
Git commit 0d6abffe9ed4c7532ee14d90c9155eb9eb4195f1 by Ralf Habacker. Committed on 12/02/2014 at 06:39. Pushed by habacker into branch 'master'. Get rid of obsolate class FileAST. M +0 -5 lib/cppparser/ast.cpp M +0 -35 lib/cppparser/ast.h M +0 -6 lib/cppparser/tree_parser.cpp M +0 -1 lib/cppparser/tree_parser.h M +4 -7 umbrello/codeimport/kdevcppparser/cpptree2uml.cpp M +0 -1 umbrello/codeimport/kdevcppparser/cpptree2uml.h http://commits.kde.org/umbrello/0d6abffe9ed4c7532ee14d90c9155eb9eb4195f1