Esempio n. 1
0
        internal static int GetNextToken(string source, int position, out Token token, Token prevToken = null)
        {
            char symbol = source[position];
            token = null;
            if (DoubleToken.IsStartSymbol(symbol))
            {
                token = new DoubleToken().FromString(source, ref position);
                return position;
            }

            if (BracketToken.IsStartSymbol(symbol))
            {
                token = BracketToken.GetBracket(symbol, prevToken);
                return position + 1;
            }

            if (OperationToken.TryGetOperation(symbol, prevToken, out token))
            {
                return position + 1;
            }

            if (FunctionToken.IsStartSymbol(symbol))
            {
                token = new FunctionToken().FromString(source, ref position);
                return position;
            }

            throw new ArgumentOutOfRangeException("symbol", symbol, "Unexpected symbol");
        }
Esempio n. 2
0
        public void TestMethod_NewDoubleToken_IntString()
        {
            string intString = "123";
            int position = 0;
            var token = new DoubleToken().FromString(intString, ref position) as DoubleToken;

            Assert.AreEqual(123D, token.Value);
        }
Esempio n. 3
0
        public void TestMethod_NewDoubleToken_DoubleStringGetFromMiddleString()
        {
            string doubleString = "123.45.6";
            int position = 4;
            var token = new DoubleToken().FromString(doubleString, ref position) as DoubleToken;

            Assert.AreEqual(45.6, token.Value);
        }