diff --git a/src/language/PEGGrammar.hpp b/src/language/PEGGrammar.hpp index 60f23afd6bb5144ae6111f024d0b52c0eee3ea74..56a650baa1dcd24687d99e61c920d6d547081fb1 100644 --- a/src/language/PEGGrammar.hpp +++ b/src/language/PEGGrammar.hpp @@ -148,12 +148,12 @@ struct postfix_expression : seq< primary_expression, star<postfix_operator> > {} struct unary_expression : sor< seq< unary_operator, unary_expression >, postfix_expression > {}; -struct and_op : seq< sor<TAO_PEGTL_STRING("&&"), and_kw>, ignored > {}; -struct or_op : seq< sor<TAO_PEGTL_STRING("||"), or_kw>, ignored > {}; +struct and_op : seq< and_kw, ignored > {}; +struct or_op : seq< or_kw, ignored > {}; -struct xor_op : seq< sor< one< '^' >, xor_kw>, ignored >{}; -struct bitand_op : seq< sor< seq< one< '&' >, not_at< one< '&' > > >, bitand_kw>, ignored >{}; -struct bitor_op : seq< sor< seq< one< '|' >, not_at< one< '|' > > >, bitor_kw>, ignored >{}; +struct xor_op : seq< xor_kw, ignored >{}; +struct bitand_op : seq< bitand_kw, ignored >{}; +struct bitor_op : seq< bitor_kw, ignored >{}; struct eqeq_op : seq< TAO_PEGTL_STRING("=="), ignored > {}; struct not_eq_op : seq< TAO_PEGTL_STRING("!="), ignored > {}; diff --git a/tests/test_ASTBuilder.cpp b/tests/test_ASTBuilder.cpp index 56d39839572e197c7ac03f27eeeb46fa58c8ebd6..8807bfc6817d58444be3ae3dc8863a065a06853a 100644 --- a/tests/test_ASTBuilder.cpp +++ b/tests/test_ASTBuilder.cpp @@ -165,7 +165,7 @@ string s; s = "foo"; SECTION("all operators mix") { std::string_view data = R"( -1+2 and 3<= 2 * 4 - 1 == 2 or 2>=1 / 5 ^ 6 & 7 && 2 || 1 | 2 <3 >7 xor -2 bitand 2 bitor + true - not false; +1+2 and 3<= 2 * 4 - 1 == 2 or 2>=1 / 5 xor 6 bitand 7 and 2 or 1 bitor 2 <3 >7 xor -2 bitand 2 bitor + true - not false; )"; std::string_view result = R"(