SyntaxAnalyse/TokenRecord/Symbol/Arithmetic/TokenMinus.cs

(完整代码) 1KB

//xxxxxxxxxxx
using System;
using System.Collections.Generic;
using System.Text;

namespace ConExpress.Calculator
{
    public class TokenMinus : TokenArithmeticSymbol
    {
        public TokenMinus(int Index, int Length)
            : base(Index, Length)
        {
        }

        protected override void SetPriority()
        {
            this.m_Priority = 2;
        }

        /// <summary>
        /// 检查下级数量
        /// </summary>
        /// <returns></returns>
        protected new void CheckChildCount(string ErrorInformation)
        {
            if (!(this.ChildList.Count == 1 || this.ChildList.Count == 2))
            {
                //throw new ArgumentException(string.Format("语法错误,列{0},{1}。", this.Index.ToString(), ErrorInformation));
                throw new SyntaxException(this.Index, this.Length, ErrorInformation);
            }
        }


        public override void Execute()
        {
            this.CheckChildCount("减法的运算元素数量不合法");

            TokenRecord TokenFirst;
            TokenRecord TokenSecond;
            if (this.ChildList.Count == 1)
            {
                TokenFirst = TokenNumberFactory.ProduceToken("0", this.Index);
                TokenSecond = this.ChildList[0];
            }
            else
            {
                TokenFirst = this.ChildList[0];
                TokenSecond = this.ChildList[1];
            }

            TokenFirst.Execute();
            TokenSecond.Execute();

            this.TokenValue = TokenFirst.ChangeTokenToDouble("减法的运算元素不是数值") - TokenSecond.ChangeTokenToDouble("减法的运算元素不是数值");
        }

    }
}

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。