Beispiel #1
0
        public PredicateBuilderNode AddVariableDeclaration(string varName, string value)
        {
            var newNode = new PredicateBuilderNode(data);

            data = new PredicateBuilderNodeDataVariableDeclaration(varName, value, newNode);
            return(newNode);
        }
Beispiel #2
0
        public PredicateBuilderNode AddDisjunct(string disjunct)
        {
            var newNode      = new PredicateBuilderNode(data);
            var disjunctNode = new PredicateBuilderNode(new PredicateBuilderNodeDataExpression(disjunct));

            data = new PredicateBuilderNodeDataDisjunction(disjunctNode, newNode);
            return(newNode);
        }
Beispiel #3
0
        public PredicateBuilderNode AddConjunct(string conjunct)
        {
            var newNode      = new PredicateBuilderNode(data);
            var conjunctNode = new PredicateBuilderNode(new PredicateBuilderNodeDataExpression(conjunct));

            data = new PredicateBuilderNodeDataConjunction(conjunctNode, newNode);
            return(newNode);
        }
Beispiel #4
0
 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>();
 }
Beispiel #5
0
        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);
        }
Beispiel #6
0
 public PredicateBuilderNodeDataConjunction(PredicateBuilderNode i_child1, PredicateBuilderNode i_child2)
 {
     children = new List <PredicateBuilderNode> {
         i_child1, i_child2
     };
 }
Beispiel #7
0
 public PredicateBuilderNodeDataVariableDeclaration(string i_varName, string i_value, PredicateBuilderNode i_child)
 {
     varName = i_varName;
     value   = i_value;
     child   = i_child;
 }
Beispiel #8
0
 public void AddDisjunct(string disjunct)
 {
     current = current.AddDisjunct(disjunct);
 }
Beispiel #9
0
 public void AddConjunct(string conjunct)
 {
     current = current.AddConjunct(conjunct);
 }
Beispiel #10
0
 public PredicateBuilderNodeDataDisjunction(PredicateBuilderNode child1, PredicateBuilderNode child2)
 {
     children = new List <PredicateBuilderNode> {
         child1, child2
     };
 }