Review Request: Parser support for C99 designated initializers

Ivan Shapovalov intelfx100 at gmail.com
Thu Apr 12 13:02:13 UTC 2012



> On April 10, 2012, 8:22 a.m., Alexandre Courbot wrote:
> > Still not good unfortunately, the new parseDesignatedInitializer() causes a parse error on constructs like this:
> > 
> > #include <Qt/qstring.h>
> > 
> > void foo(const QString &s);
> > QString bar();
> > 
> > void f() {
> >     foo( bar() + " " );
> >     QString command;
> > }
> > 
> > Here the "QString command" line will raise a parser error (parses perfectly without this patch). Slightly changing the above line (like removing the parentheses on bar(), or changing the '+' to a ',' fixes it. Crazy.

I've somewhat refactored the patch, it passes given testcases and this QString testcase without parse errors.
Could you provide the testcase which makes the original patch enter an infinite loop?


- Ivan


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/103448/#review12286
-----------------------------------------------------------


On April 10, 2012, 6:17 a.m., Alexandre Courbot wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/103448/
> -----------------------------------------------------------
> 
> (Updated April 10, 2012, 6:17 a.m.)
> 
> 
> Review request for KDevelop and Milian Wolff.
> 
> 
> Description
> -------
> 
> Parser support for C99 designated initializers
> 
> Support C99 initializers in the C++ parser, e.g:
> 
> struct foo_t foo = {
>   .has_cake = true,
>   .nb_candles = 12,
> };
> 
> int bar[10] = {
>   [1] = 15,
>   [9] = 25,
> };
> 
> 
> Diffs
> -----
> 
>   languages/cpp/parser/parser.h 64b5c505866ac2a0ed847aa67e4c7809df3af6b5 
>   languages/cpp/parser/parser.cpp a45ee31a1207d56efef292babb2e774b51378ead 
>   languages/cpp/parser/tests/test_parser.h 2869d9ddae2632aced2f2e2fa966382da3a0082d 
>   languages/cpp/parser/tests/test_parser.cpp 94e3ee06dc9187568c000dcdd8baf8d87d1d06e6 
> 
> Diff: http://git.reviewboard.kde.org/r/103448/diff/
> 
> 
> Testing
> -------
> 
> Used it for a couple of weeks, ensured the parser tests all pass.
> 
> 
> Thanks,
> 
> Alexandre Courbot
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20120412/dbc3b3db/attachment.html>


More information about the KDevelop-devel mailing list