private void E()
        {
            if (expression.StartsWith("int") || expression.StartsWith("real") || expression.StartsWith("bool") || expression.StartsWith("string")
                || Regex.IsMatch(expression, PATTERN_VARIABLE_NAME))
            {
                var variableInterpretator = new VariableInterpretator(context);
                var expressionString = Regex.Match(expression, "^.+?;").Value;
                variableInterpretator.Run(expressionString);

                expression = expression.SkipWord(expressionString);

                E();
            }
        }
Exemplo n.º 2
0
        public void BoolArrayInitTest()
        {
            var context = new Context();
            var interpretator = new VariableInterpretator(context);

            var expressionString = "bool[] a = new bool[2];";
            interpretator.Run(expressionString);
            Assert.AreEqual(false, (context.Lookup("a").Value as bool[])[0]);
            Assert.AreEqual(false, (context.Lookup("a").Value as bool[])[1]);
            try
            {
                var errorVariable = (context.Lookup("a").Value as bool[])[2];
                Assert.Fail();
            }
            catch (IndexOutOfRangeException ex)
            {
            }
        }
Exemplo n.º 3
0
        public void InitVariableTest()
        {
            var context = new Context();
            var interpretator = new VariableInterpretator(context);

            var expressionString = "int a = 54-33;";
            interpretator.Run(expressionString);
            Assert.AreEqual(54 - 33, (int)context.Lookup("a").Value);

            expressionString = "real b = 154.26/4.12+15*(15.12*45.87)-151;";
            interpretator.Run(expressionString);
            Assert.AreEqual(154.26 / 4.12 + 15 * (15.12 * 45.87) - 151, (double)context.Lookup("b").Value);

            expressionString = "bool c = (5 >= 4) && (5*4 != 21) && (\"Apple\" == \"Apple\");";
            interpretator.Run(expressionString);
            Assert.AreEqual((5 >= 4) && (5*4 != 21) && ("Apple" == "Apple"), (bool)context.Lookup("c").Value);

            expressionString = "string s = \"Pinkie Pie\" + \" is coolest pony\";";
            interpretator.Run(expressionString);
            Assert.AreEqual("Pinkie Pie is coolest pony", (string)context.Lookup("s").Value);
        }