<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/103448/">http://git.reviewboard.kde.org/r/103448/</a>
     </td>
    </tr>
   </table>
   <br />





 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">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.</pre>
 <br />







<p>- Alexandre</p>


<br />
<p>On December 18th, 2011, 12:23 p.m., Alexandre Courbot wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for KDevelop and Milian Wolff.</div>
<div>By Alexandre Courbot.</div>


<p style="color: grey;"><i>Updated Dec. 18, 2011, 12:23 p.m.</i></p>






<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">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,
};</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Used it for a couple of weeks, ensured the parser tests all pass.</pre>
  </td>
 </tr>
</table>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>languages/cpp/parser/parser.h <span style="color: grey">(ffc3967e9bec09ff56204aab98e8f80ec6b036cf)</span></li>

 <li>languages/cpp/parser/parser.cpp <span style="color: grey">(1c9d9e403500f35761ebc6deb737a4a68a53c28d)</span></li>

 <li>languages/cpp/parser/tests/test_parser.h <span style="color: grey">(fa92f1ce284df0936724f74f42f9ad6d4b3c97fc)</span></li>

 <li>languages/cpp/parser/tests/test_parser.cpp <span style="color: grey">(f747cfa44bdf962be33cf97841fdae739b3e1771)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/103448/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>








  </div>
 </body>
</html>