From c2646ffff5de299624428c7150171103cde105b9 Mon Sep 17 00:00:00 2001
From: Adam Wardynski <award@.(win7-laptop)>
Date: Sun, 28 Nov 2010 18:42:52 +0100
Subject: [PATCH] Fix nondeterminism in ? ? operator.

---
 libwccl/parser/grammar.g | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/libwccl/parser/grammar.g b/libwccl/parser/grammar.g
index 9a0128e..9bb435f 100644
--- a/libwccl/parser/grammar.g
+++ b/libwccl/parser/grammar.g
@@ -521,12 +521,9 @@ condit_sym
 			}
 		}
 	| Q_MARK 
-			(p_true = sym_set_operators [tagset, vars] | 
-			 p_true = condit_sym [tagset, vars])
+			(p_true = sym_set_operators [tagset, vars])
 		Q_MARK 
-			(test = logical_predicates [tagset, vars] | 
-			 test = condit_bool [tagset, vars])
-		{
+			(test = logical_predicates [tagset, vars]) {
 			op.reset(new Wccl::Conditional<Wccl::TSet>(test, p_true));
 		}
 ;
@@ -652,12 +649,9 @@ condit_str
 		}
 	}
 	| Q_MARK 
-			(p_true = string_operators [tagset, vars] | 
-			 p_true = condit_str [tagset, vars])
+			p_true = string_operators [tagset, vars]
 		Q_MARK 
-			(test = logical_predicates [tagset, vars] | 
-			 test = condit_bool [tagset, vars])
-		{
+			test = logical_predicates [tagset, vars] {
 			op.reset(new Wccl::Conditional<Wccl::StrSet>(test, p_true));
 		}
 ;
@@ -900,12 +894,9 @@ condit_bool
 		}
 	}
 	| Q_MARK 
-			(p_true = logical_predicates [tagset, vars] | 
-			 p_true = condit_bool [tagset, vars])
+			p_true = logical_predicates [tagset, vars]
 		Q_MARK 
-			(test = logical_predicates [tagset, vars] | 
-			 test = condit_bool [tagset, vars])
-		{
+			test = logical_predicates [tagset, vars] {
 			op.reset(new Wccl::Conditional<Wccl::Bool>(test, p_true));
 		}
 ;
-- 
GitLab