SyntaxAnalyse/TokenRecord/Symbol/Arithmetic/TokenDivide.cs

(完整代码) 1KB

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

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

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

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

            TokenRecord TokenFirst = this.ChildList[0];
            TokenRecord TokenSecond = this.ChildList[1];
            TokenFirst.Execute();
            TokenSecond.Execute();

            //检查除数不能为0
            if (TokenSecond.ChangeTokenToDouble("除法的运算元素不是数值") == 0)
            {
                //throw new DivideByZeroException(string.Format("算术运算错误,列{0},除数不能为零。",this.Index.ToString()));
                throw new SyntaxException(this.Index, this.Length, "算术运算错误,除数不能为零");
            }

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

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

AI 解读 AI

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

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