Summary: | Q_OBJECT macro parse error while code import process. | ||
---|---|---|---|
Product: | [Applications] umbrello | Reporter: | Eugene Rudenko <erule.biz> |
Component: | general | Assignee: | Ralf Habacker <ralf.habacker> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | ralf.habacker, ralf.habacker |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/umbrello/e1b421517ec1825b7c822c04c761adc789d91e38 | Version Fixed In: | 4.12.2 |
Sentry Crash Report: |
Description
Eugene Rudenko
2009-12-01 14:13:20 UTC
The bug is also present on windows in recent svn code, which means that umbrello is currently unusable for importing any qt based code. This includes the whole kde base. This bug is fixed in the kdevelop4 cpp parser. Further analysis shows that the lexer, which is based on boost::spirit, returned 'Q_OBJECT' concated with the following term 'public:'. I tried to follow the calls into the boost spirit library, but get lost in the very deep call tree. When this worked before (which I assume) I guess that the problem is caused by a bug or internal change in newer versions of the boost::spirit parser. In case of an internal change it may be that there is a different or additional boost::spirit setup required, which umbrello does not follow. To be complete: I also tried to add Q_OBJECT to the "lexer should skip word" list, but this do not fix the problem. In the lexer code there are also some hardcoded checks for Q_.. related stuff, where I added Q_OBJECT; unfortunally without any success. Git commit 959e40b8e0de02af21ccb93b77b2cde39dda81db by Ralf Habacker. Committed on 20/01/2014 at 21:31. Pushed by habacker into branch 'master'. Add debug support to class Parser, Lexer and PreprocessLexer. This should help to find cpp parse problems easier. Debug support can be enabled for several classes through the debug window (STRG-D). M +2 -0 umbrello/codeimport/kdevcppparser/lexer.cpp M +2 -1 umbrello/codeimport/kdevcppparser/lexer.h M +113 -111 umbrello/codeimport/kdevcppparser/parser.cpp M +2 -1 umbrello/codeimport/kdevcppparser/parser.h M +2 -0 umbrello/codeimport/kdevcppparser/preprocesslexer.cpp M +2 -1 umbrello/codeimport/kdevcppparser/preprocesslexer.h http://commits.kde.org/umbrello/959e40b8e0de02af21ccb93b77b2cde39dda81db Git commit fa356a629dbef8b352d9d3d71a5df830454a7c38 by Ralf Habacker. Committed on 21/01/2014 at 20:30. Pushed by habacker into branch 'master'. Fix Q_OBJECT macro parse error. FIXED-IN:2.12.2,4.11.6 M +6 -1 umbrello/codeimport/kdevcppparser/preprocesslexer.cpp http://commits.kde.org/umbrello/fa356a629dbef8b352d9d3d71a5df830454a7c38 Git commit 0047de9c3e3767c7dd159de7e626f3daf1eb16f0 by Ralf Habacker. Committed on 21/01/2014 at 20:30. Pushed by habacker into branch 'KDE/4.12'. Fix Q_OBJECT macro parse error. FIXED-IN:2.12.2,4.11.6 (cherry picked from commit fa356a629dbef8b352d9d3d71a5df830454a7c38) M +6 -1 umbrello/codeimport/kdevcppparser/preprocesslexer.cpp http://commits.kde.org/umbrello/0047de9c3e3767c7dd159de7e626f3daf1eb16f0 Git commit e1b421517ec1825b7c822c04c761adc789d91e38 by Ralf Habacker. Committed on 21/01/2014 at 20:30. Pushed by habacker into branch 'KDE/4.11'. Fix Q_OBJECT macro parse error. FIXED-IN:4.11.6 (cherry picked from commit fa356a629dbef8b352d9d3d71a5df830454a7c38) M +6 -1 umbrello/codeimport/kdevcppparser/preprocesslexer.cpp http://commits.kde.org/umbrello/e1b421517ec1825b7c822c04c761adc789d91e38 |