diff --git a/src/language/PugsParser.cpp b/src/language/PugsParser.cpp
index 757b9d5ac69addec6ef033fe494b268775bdff6b..ff0c37f6dbd35a38391719c7f5cfcc19abdc5534 100644
--- a/src/language/PugsParser.cpp
+++ b/src/language/PugsParser.cpp
@@ -154,14 +154,14 @@ struct or_op : seq< sor<TAO_PEGTL_STRING("||"), 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 bitor_op : seq< sor< seq< one< '|' >, not_at< one< '|' > > >, bitor_kw>, ignored >{};
 
 struct eqeq_op : seq< TAO_PEGTL_STRING("=="), ignored > {};
 struct not_eq_op : seq< TAO_PEGTL_STRING("!="), ignored > {};
 
 struct lesser_op : seq< one< '<' >, not_at< one< '<' > >, ignored > {};
 struct lesser_or_eq_op : seq< TAO_PEGTL_STRING("<="), ignored > {};
-struct greater_op : seq< one< '>' >, not_at< one< '<' > >, ignored > {};
+struct greater_op : seq< one< '>' >, not_at< one< '>' > >, ignored > {};
 struct greater_or_eq_op : seq< TAO_PEGTL_STRING(">="), ignored > {};
 
 struct shift_left_op : seq< TAO_PEGTL_STRING("<<"), ignored > {};