public PredicateBuilderNode AddVariableDeclaration(string varName, string value) { var newNode = new PredicateBuilderNode(data); data = new PredicateBuilderNodeDataVariableDeclaration(varName, value, newNode); return(newNode); }
public PredicateBuilderNode AddDisjunct(string disjunct) { var newNode = new PredicateBuilderNode(data); var disjunctNode = new PredicateBuilderNode(new PredicateBuilderNodeDataExpression(disjunct)); data = new PredicateBuilderNodeDataDisjunction(disjunctNode, newNode); return(newNode); }
public PredicateBuilderNode AddConjunct(string conjunct) { var newNode = new PredicateBuilderNode(data); var conjunctNode = new PredicateBuilderNode(new PredicateBuilderNodeDataExpression(conjunct)); data = new PredicateBuilderNodeDataConjunction(conjunctNode, newNode); return(newNode); }
public PredicateBuilder(Program i_prog, bool defaultValue) { prog = i_prog; valid = true; if (defaultValue) { top = new PredicateBuilderNode(new PredicateBuilderNodeDataTrue()); } else { top = new PredicateBuilderNode(new PredicateBuilderNodeDataFalse()); } current = top; variableUseCount = new Dictionary <string, int>(); }
public string AddVariableDeclaration(string varName, string value) { if (!valid) { Debug.Assert(false); return(null); } int count; if (variableUseCount.TryGetValue(varName, out count)) { variableUseCount[varName] = count + 1; varName = $"{varName}{count+1}"; } else { variableUseCount[varName] = 1; } current = current.AddVariableDeclaration(varName, value); return(varName); }
public PredicateBuilderNodeDataConjunction(PredicateBuilderNode i_child1, PredicateBuilderNode i_child2) { children = new List <PredicateBuilderNode> { i_child1, i_child2 }; }
public PredicateBuilderNodeDataVariableDeclaration(string i_varName, string i_value, PredicateBuilderNode i_child) { varName = i_varName; value = i_value; child = i_child; }
public void AddDisjunct(string disjunct) { current = current.AddDisjunct(disjunct); }
public void AddConjunct(string conjunct) { current = current.AddConjunct(conjunct); }
public PredicateBuilderNodeDataDisjunction(PredicateBuilderNode child1, PredicateBuilderNode child2) { children = new List <PredicateBuilderNode> { child1, child2 }; }