private static TreeNodeBase BuildTreeNode(string symbol)
 {
     switch (symbol)
     {
         case "1":
             return new Constant();
         case "x":
             return new State();
         case "t":
             return new Time();
         case "+":
             return new Addition();
         case "*":
             return new Multiplication();
         case "-":
             return new Substraction();
         default:
             try
             {
                 int a = Convert.ToInt32(symbol);
                 var temp =new Constant();
                 temp.SetValue(a);
                 return temp;
             }
             catch (Exception)
             {
                 throw new Exception();
             }
     }
 }
 public override TreeNodeBase DeepCopy()
 {
     Constant node = new Constant {Value = Value};
     return node;
 }