public Expression(AdditionString value)
 {
     Value           = value;
     Subexpressions  = new List <Expression>();
     RegisterTargets = new List <RegisterAtom>();
     Simple          = true;
     Layer           = 0;
     InitialiseExpression();
 }
 public AddTransaction(AdditionString input)
 {
     this.Transactions = new List <MultTransaction>();
     foreach (var a in input.List)
     {
         if (a.List.Count == 1)
         {
             Transactions.Add(new MultTransaction(a.List[0]));
         }
         else
         {
             throw new Exception("AddTransaction Error: Subtraction not supported in simple strings");
         }
     }
 }
 public SubExpressionAtom(AdditionString expression)
 {
     Expression = new Expression(expression);
     AtomType   = ExpressionAtomType.SubExpression;
 }
 public ExpressionTransaction(AdditionString expression, ExpressionWriteTransaction transaction)
 {
     this.Transaction = transaction;
     this.Expression  = new AddTransaction(expression);
 }