Esempio n. 1
0
        public BlockData ConverToBlock()
        {
            FuncString funstring    = new FuncString(strExpress);
            int        leftBracket  = funstring.FindOp(0, '(');
            int        rightBracket = funstring.FindOp(0, ')');
            int        commaSymbol  = funstring.FindOp(0, ',');

            string[] ab = strExpress.Split(',');
            double   a  = 0;
            double   b  = 0;

            try
            {
                string strA = new ExpData(ab[0].Substring(1)).GetValueEx();
                string strB = new ExpData(ab[1].Substring(0, ab[1].Length - 1)).GetValueEx();
                a = double.Parse(strA);
                b = double.Parse(strB);
            }
            catch (ExpError e)
            {
                throw new AssignedError(e.Message + "\nAssignmentError::区间转换出错" + "\n");
            }
            BlockData bd = new BlockData(a, b);
            bool      left;
            bool      right;

            if (leftBracket != -1 && leftBracket < commaSymbol)
            {
                left = false;
            }
            else
            {
                left = true;
            }
            if (rightBracket != -1 && rightBracket > commaSymbol)
            {
                right = false;
            }
            else
            {
                right = true;
            }
            bd.SetBlockBounderAvailable(left, right);
            cd = bd;
            return(bd);
        }
Esempio n. 2
0
        public DataType GetDataType()
        {
            DataType dt = new DataType();

            Function.FuncString funstring = new FuncString(strExpress);

            int leftSquareBracket  = funstring.FindOp(0, '[');
            int rightSquareBracket = funstring.FindOp(0, ']');
            int leftBracket        = funstring.FindOp(0, '(');
            int rightBracket       = funstring.FindOp(0, ')');
            int commaSymbol        = funstring.FindOp(0, ',');
            int semicolon          = funstring.FindOp(0, ';');

            if (commaSymbol == -1 && semicolon == -1)
            {
                dt = DataType.EXP;
                cd = new ExpData(strExpress);
                (cd as ExpData).GetValueFinal();
                return(dt);
            }
            if (semicolon != -1)
            {
                dt = DataType.MATRIX;
                ConvertToMatrix();

                return(dt);
            }
            if (commaSymbol != -1)
            {
                dt = DataType.BLOCK;
                ConverToBlock();
                return(dt);
            }


            return(dt);
        }