/// <summary>
 /// Add a new property to the parameters.
 /// </summary>
 /// <param name="property">The property to add.</param>
 /// <returns>The parameters with the new property added.</returns>
 public IParameters Add(IProperty property)
 {
     TokenTree parameters = this[0].Clone();
     parameters.Children.AddIfMissing(new TokenTree(property.Name, property.StringValue));
     TokenTreeParameters treeParameters = new TokenTreeParameters {parameters};
     for (int i = 1; i < Count; ++i)
         treeParameters.Add(this[i]);
     return treeParameters;
 }
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="data">The main data.</param>
 /// <param name="parameters">Calculation data.</param>
 public TokenTreeElement(TokenTree data, TokenTreeList parameters = null)
 {
     _data = data;
     _parameters = parameters == null ? null : new TokenTreeParameters(parameters);
 }