Skip to content

Commit

Permalink
Merge pull request #1664 from guwirth/fix-1415
Browse files Browse the repository at this point in the history
speed-up initialization list handling
  • Loading branch information
guwirth authored Jan 12, 2019
2 parents c7fdb54 + a5ef0aa commit b11375a
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
import org.sonar.check.Priority;
import org.sonar.check.Rule;
import org.sonar.check.RuleProperty;
import org.sonar.cxx.api.CxxTokenType;
import org.sonar.cxx.checks.utils.CheckUtils;
import org.sonar.cxx.parser.CxxGrammarImpl;
import org.sonar.cxx.tag.Tag;
import org.sonar.squidbridge.annotations.ActivatedByDefault;
import org.sonar.squidbridge.annotations.SqaleConstantRemediation;
Expand Down Expand Up @@ -69,7 +69,7 @@ public class HardcodedAccountCheck extends SquidCheck<Grammar> {
@Override
public void init() {
pattern = CheckUtils.compileUserRegexp(regularExpression);
subscribeTo(CxxGrammarImpl.LITERAL);
subscribeTo(CxxTokenType.STRING);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
import org.sonar.check.Priority;
import org.sonar.check.Rule;
import org.sonar.check.RuleProperty;
import org.sonar.cxx.api.CxxTokenType;
import org.sonar.cxx.checks.utils.CheckUtils;
import org.sonar.cxx.parser.CxxGrammarImpl;
import org.sonar.cxx.tag.Tag;
import org.sonar.squidbridge.annotations.ActivatedByDefault;
import org.sonar.squidbridge.annotations.SqaleConstantRemediation;
Expand Down Expand Up @@ -67,7 +67,7 @@ public class HardcodedIpCheck extends SquidCheck<Grammar> {
@Override
public void init() {
pattern = CheckUtils.compileUserRegexp(regularExpression);
subscribeTo(CxxGrammarImpl.LITERAL);
subscribeTo(CxxTokenType.STRING);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import org.sonar.check.Priority;
import org.sonar.check.Rule;
import org.sonar.check.RuleProperty;
import org.sonar.cxx.parser.CxxGrammarImpl;
import org.sonar.cxx.api.CxxTokenType;
import org.sonar.cxx.tag.Tag;
import org.sonar.squidbridge.annotations.ActivatedByDefault;
import org.sonar.squidbridge.annotations.SqaleConstantRemediation;
Expand Down Expand Up @@ -57,7 +57,7 @@ public class StringLiteralDuplicatedCheck extends SquidCheck<Grammar> {

@Override
public void init() {
subscribeTo(CxxGrammarImpl.LITERAL);
subscribeTo(CxxTokenType.STRING);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,7 @@ private static void misc(LexerfulGrammarBuilder b) {
BOOL, // boolean-literal
NULLPTR // pointer-literal
)
);
).skip();
}

private static void vcAttributedAtl(LexerfulGrammarBuilder b) {
Expand Down Expand Up @@ -1463,7 +1463,7 @@ private static void declarators(LexerfulGrammarBuilder b) {
b.sequence("=", initializerClause), // C++
bracedInitList // C++
)
);
).skip();

b.rule(initializerClause).is(
// C-COMPATIBILITY: C99 designated initializers
Expand All @@ -1477,14 +1477,15 @@ private static void declarators(LexerfulGrammarBuilder b) {
assignmentExpression, // C++
bracedInitList // C++
)
);
).skipIfOneChild();

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

b.rule(bracedInitList).is(
b.firstOf(
b.sequence("{", LITERAL, b.oneOrMore(",", LITERAL), "}" ), // syntax sugar: speed-up initialisation of big arrays
b.sequence("{", initializerList, b.optional(","), "}"), // C++
b.sequence("{", "}") // C++
)
Expand Down

0 comments on commit b11375a

Please sign in to comment.