Esempio n. 1
0
        public BlockData ConverToBlock()
        {
            function.FuncString funstring = new function.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 function.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 UExpData(strExpress);
                (cd as UExpData).GetValueFinal();


                return(dt);
            }
            if (semicolon != -1)
            {
                dt = DataType.MATRIX;
                ConvertToMatrix();

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


            return(dt);
        }