From c853f5792ba86a18440d1adf46c5449e922e0e7d Mon Sep 17 00:00:00 2001 From: Alexander Moriarty Date: Tue, 9 Oct 2018 05:38:41 -0700 Subject: [PATCH 1/2] [sonar/cxx/api] NOT_EQ: "not_eq " to "not_eq" --- cxx-squid/src/main/java/org/sonar/cxx/api/CppPunctuator.java | 2 +- cxx-squid/src/main/java/org/sonar/cxx/api/CxxKeyword.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cxx-squid/src/main/java/org/sonar/cxx/api/CppPunctuator.java b/cxx-squid/src/main/java/org/sonar/cxx/api/CppPunctuator.java index 644d645abe..c17d5307ce 100644 --- a/cxx-squid/src/main/java/org/sonar/cxx/api/CppPunctuator.java +++ b/cxx-squid/src/main/java/org/sonar/cxx/api/CppPunctuator.java @@ -102,7 +102,7 @@ public enum CppPunctuator implements TokenType { AL_BITOR("bitor"), AL_COMPL("compl"), AL_NOT("not"), - AL_NOT_EQ("not_eq "), + AL_NOT_EQ("not_eq"), AL_OR("or"), AL_OR_EQ("or_eq"), AL_AL_XOR("xor"), diff --git a/cxx-squid/src/main/java/org/sonar/cxx/api/CxxKeyword.java b/cxx-squid/src/main/java/org/sonar/cxx/api/CxxKeyword.java index 67f50741cb..12732426d4 100644 --- a/cxx-squid/src/main/java/org/sonar/cxx/api/CxxKeyword.java +++ b/cxx-squid/src/main/java/org/sonar/cxx/api/CxxKeyword.java @@ -109,7 +109,7 @@ public enum CxxKeyword implements TokenType { BITOR("bitor"), COMPL("compl"), NOT("not"), - NOT_EQ("not_eq "), + NOT_EQ("not_eq"), OR("or"), OR_EQ("or_eq"), XOR("xor"), From e21003ccec37c211100e533c761649504df13a88 Mon Sep 17 00:00:00 2001 From: Alexander Moriarty Date: Tue, 9 Oct 2018 11:32:23 -0700 Subject: [PATCH 2/2] CxxGrammar: Add Alternative Operators Try to fix #1569. This adds the alternative operators keywords after they occured in the CxxGrammar. See: https://en.cppreference.com/w/cpp/language/operator_alternative Includes fixes from review --- .../java/org/sonar/cxx/parser/CxxGrammarImpl.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cxx-squid/src/main/java/org/sonar/cxx/parser/CxxGrammarImpl.java b/cxx-squid/src/main/java/org/sonar/cxx/parser/CxxGrammarImpl.java index ecf5eeda8d..25c235593c 100644 --- a/cxx-squid/src/main/java/org/sonar/cxx/parser/CxxGrammarImpl.java +++ b/cxx-squid/src/main/java/org/sonar/cxx/parser/CxxGrammarImpl.java @@ -490,8 +490,8 @@ private static void expressions(LexerfulGrammarBuilder b) { b.rule(binaryOperator).is( // todo b.firstOf( - "||", "&&", "&", "|", "^", "==", "!=", "<=", "<", ">=", ">", - "<<", ">>", "*", "/", "+", "-", assignmentOperator + "||", CxxKeyword.OR, "&&", CxxKeyword.AND, "&", CxxKeyword.BITAND, "|", CxxKeyword.BITOR, "^", CxxKeyword.XOR, + "==", "!=", CxxKeyword.NOT_EQ, "<=", "<", ">=", ">", "<<", ">>", "*", "/", "+", "-", assignmentOperator ) ); @@ -575,9 +575,9 @@ private static void expressions(LexerfulGrammarBuilder b) { b.rule(foldOperator).is( b.firstOf( // C++ - "+", "-", "*", "/", "%", "ˆ", "&", "|", "<<", ">>", - "+=", "-=", "*=", "/=", "%=", "ˆ=", "&=", "|=", "<<=", ">>=", "=", - "==", "!=", "<", ">", "<=", ">=", "&&", "||", ",", ".*", "->*" + "+", "-", "*", "/", "%", "ˆ", CxxKeyword.XOR, "&", CxxKeyword.BITAND, "|", CxxKeyword.BITOR, "<<", ">>", + "+=", "-=", "*=", "/=", "%=", "ˆ=", CxxKeyword.XOR_EQ, "&=", CxxKeyword.AND_EQ, "|=", CxxKeyword.OR_EQ, "<<=", ">>=", "=", + "==", "!=", CxxKeyword.NOT_EQ, "<", ">", "<=", ">=", "&&", CxxKeyword.AND, "||", CxxKeyword.OR, ",", ".*", "->*" ) ); @@ -658,7 +658,7 @@ private static void expressions(LexerfulGrammarBuilder b) { ).skipIfOneChild(); b.rule(unaryOperator).is( - b.firstOf("*", "&", "+", "-", "!", "~") // C++ + b.firstOf("*", "&", "+", "-", "!", CxxKeyword.NOT, "~", CxxKeyword.COMPL) // C++ ); b.rule(newExpression).is( @@ -773,7 +773,7 @@ private static void expressions(LexerfulGrammarBuilder b) { ).skipIfOneChild(); b.rule(assignmentOperator).is( - b.firstOf("=", "*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", "^=", "|=") // C++ + b.firstOf("=", "*=", "/=", "%=", "+=", "-=", ">>=", "<<=", "&=", CxxKeyword.AND_EQ, "^=", CxxKeyword.XOR_EQ, "|=", CxxKeyword.OR_EQ) // C++ ); b.rule(expression).is(