Exemple #1
0
 private void AddOperatorToPostFix(Stack <RegexElement> stack, RegexElement op)
 {
     while (stack.Count > 0 && op.CompareTo(stack.Peek()) <= 0)
     {
         _postFix.Add(stack.Pop());
     }
     stack.Push(op);
 }
Exemple #2
0
 public void RemoveTransition(RegexElement re, Node node)
 {
     if (Transitions.ContainsKey(re.Value) && Transitions[re.Value].Contains(node))
     {
         if (Transitions[re.Value].Count > 1)
         {
             Transitions[re.Value].Remove(node);
         }
         else
         {
             Transitions.Remove(re.Value);
         }
     }
     else
     {
         throw new Exception("Transition doesn't exist");
     }
 }
Exemple #3
0
 public void AddTransition(RegexElement re, Node node)
 {
     if (re == null && Transitions.ContainsKey(NFA.Null))
     {
         Transitions[NFA.Null].Add(node);
     }
     else if (re == null)
     {
         Transitions.Add(NFA.Null, new List <Node>(new Node[] { node }));
     }
     else if (Transitions.ContainsKey(re.Value))
     {
         Transitions[re.Value].Add(node);
     }
     else
     {
         Transitions.Add(re.Value, new List <Node>(new Node[] { node }));
     }
 }