Ejemplo n.º 1
0
        /// <inheritdoc/>
        public override string Print(SignOperNode node)
        {
            switch (node.Sign)
            {
            case Sign.POSITIVE:
                return($"+{node.Child.Print(this)}");

            case Sign.NEGATIVE:
                return($"-{node.Child.Print(this)}");

            default:
                return(node.Child.Print(this));
            }
        }
Ejemplo n.º 2
0
        /// <inheritdoc/>
        public override ExpNode Execute(SignOperNode node)
        {
            node.Child = node.Child.Execute(this);
            switch (node.Sign)
            {
            case Sign.POSITIVE:
                return(node.Child);

            case Sign.NEGATIVE:
            {
                if (node.Child is NumericalValueNode nvNode)
                {
                    return(QuickOpers.MakeNumericalNode(nvNode.DoubleValue * -1));
                }

                return(QuickOpers.Multiply(-1, node.Child).Execute(this));
            }

            default:
                return(node);
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Executes operation on a <see cref="SignOperNode"/>.
 /// </summary>
 /// <param name="node">The <see cref="SignOperNode"/> to execute operation on.</param>
 /// <returns>The result of the operation on a <see cref="SignOperNode"/>.</returns>
 public virtual ExpNode Execute(SignOperNode node) => Execute((UOperNode)node);
Ejemplo n.º 4
0
 /// <inheritdoc/>
 public override ExpNode Execute(SignOperNode node)
 {
     node.Child = node.Child.Execute(this);
     return(node);
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Prints a <see cref="SignOperNode"/>.
 /// </summary>
 /// <param name="node">The <see cref="SignOperNode"/> to print.</param>
 /// <returns>The <see cref="SignOperNode"/> printed to a string.</returns>
 public virtual string Print(SignOperNode node) => Print((UOperNode)node);