Review Request: Parser support for C99 designated initializers

Alexandre Courbot gnurou at gmail.com
Sun Dec 18 12:29:00 UTC 2011


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


Probably not ready for being merged yet, but I'd like to make sure I did not do things completely wrong.

This adds parser support for C99 designated initializers that are heavily used in projects like the Linux kernel. Support is not complete as DUChains are not built (need to update the expression visitor for that), but at least the parser does not signal errors anymore and the right-members of initializations are even correctly indexed. Using the implemented scheme only the left struct members need special attention.

I have something already partially implemented for DUChain support, but would like to get reviews on the parser part first to make sure the AST is constructed correctly. Depending on the review we may ship DUChain support as a separate patch, or add it to this one.

- Alexandre Courbot


On Dec. 18, 2011, 12:23 p.m., Alexandre Courbot wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/103448/
> -----------------------------------------------------------
> 
> (Updated Dec. 18, 2011, 12:23 p.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 ffc3967e9bec09ff56204aab98e8f80ec6b036cf 
>   languages/cpp/parser/parser.cpp 1c9d9e403500f35761ebc6deb737a4a68a53c28d 
>   languages/cpp/parser/tests/test_parser.h fa92f1ce284df0936724f74f42f9ad6d4b3c97fc 
>   languages/cpp/parser/tests/test_parser.cpp f747cfa44bdf962be33cf97841fdae739b3e1771 
> 
> Diff: http://git.reviewboard.kde.org/r/103448/diff/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/20111218/7fc3572f/attachment.html>


More information about the KDevelop-devel mailing list