diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g index c98b8501d9d03e337c65385fd0ed7357089b0ea7..cfca8cf9318b51372c624199f448ac401cbb965e 100644 --- a/libwccl/parser/grammar.g +++ b/libwccl/parser/grammar.g @@ -520,6 +520,12 @@ condit_sym op.reset(new Wccl::Conditional<Wccl::TSet>(test, p_true)); } } + | Q_MARK + (p_true = sym_set_operators [tagset, vars]) + Q_MARK + (test = logical_predicates [tagset, vars]) { + op.reset(new Wccl::Conditional<Wccl::TSet>(test, p_true)); + } ; // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- @@ -642,6 +648,12 @@ condit_str op.reset(new Wccl::Conditional<Wccl::StrSet>(test, p_true)); } } + | Q_MARK + p_true = string_operators [tagset, vars] + Q_MARK + test = logical_predicates [tagset, vars] { + op.reset(new Wccl::Conditional<Wccl::StrSet>(test, p_true)); + } ; // ---------------------------------------------------------------------------- @@ -881,6 +893,12 @@ condit_bool op.reset(new Wccl::Conditional<Wccl::Bool>(test, p_true)); } } + | Q_MARK + p_true = logical_predicates [tagset, vars] + Q_MARK + test = logical_predicates [tagset, vars] { + op.reset(new Wccl::Conditional<Wccl::Bool>(test, p_true)); + } ; ///////////////////////////////////////////////////////////////////////////////