Skip to content

Commit a5ef0aa

Browse files
committed
add special case to speed-up braced initialization lists
1 parent b6e47cf commit a5ef0aa

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

cxx-squid/src/main/java/org/sonar/cxx/parser/CxxGrammarImpl.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1463,7 +1463,7 @@ private static void declarators(LexerfulGrammarBuilder b) {
14631463
b.sequence("=", initializerClause), // C++
14641464
bracedInitList // C++
14651465
)
1466-
);
1466+
).skip();
14671467

14681468
b.rule(initializerClause).is(
14691469
// C-COMPATIBILITY: C99 designated initializers
@@ -1477,14 +1477,15 @@ private static void declarators(LexerfulGrammarBuilder b) {
14771477
assignmentExpression, // C++
14781478
bracedInitList // C++
14791479
)
1480-
);
1480+
).skipIfOneChild();
14811481

14821482
b.rule(initializerList).is(
14831483
initializerClause, b.optional("..."), b.zeroOrMore(",", initializerClause, b.optional("...")) // C++
14841484
);
14851485

14861486
b.rule(bracedInitList).is(
14871487
b.firstOf(
1488+
b.sequence("{", LITERAL, b.oneOrMore(",", LITERAL), "}" ), // syntax sugar: speed-up initialisation of big arrays
14881489
b.sequence("{", initializerList, b.optional(","), "}"), // C++
14891490
b.sequence("{", "}") // C++
14901491
)

0 commit comments

Comments
 (0)