Пример #1
0
        public override void Execute()
        {
            if (Command is PredicateSyntacticElement)
            {
                PredicateSyntacticElement pse = (PredicateSyntacticElement)(Command);
                Bertrand.program.Add(commandText);
                if (pse.State == State.Known)
                {
                    Console.WriteLine("added predicate {0} > '{1}' with a value of {2}", pse.Name, pse.Predicate, pse.Value.ToString());
                }
                else
                {
                    Console.WriteLine("added predicate {0} > '{1}' with an unknown value", pse.Name, pse.Predicate);
                }
                return;
            }
            if (Command is PropositionExpression)
            {
                PropositionExpression pse = (PropositionExpression)(Command);
                Bertrand.program.Add(commandText);
                Console.WriteLine("added proposition {0}' ", pse.Text);
                return;
            }
            if (Command is PropositionSyntacticElement)
            {
                PropositionSyntacticElement pse = (PropositionSyntacticElement)(Command);
                Bertrand.program.Add(commandText);
                Console.WriteLine("added proposition setter {0}' ", pse.Text);
                return;
            }

            if (Command is PropositionNegationSyntacticElement)
            {
                PropositionExpression pse = (PropositionExpression)(Command);
                Bertrand.program.Add(commandText);
                Console.WriteLine("added proposition setter {0}' ", pse.Text);
                return;
            }

            if (Command is ThereforeSyntacticElement)
            {
                ThereforeSyntacticElement pse = (ThereforeSyntacticElement)(Command);
                Bertrand.program.Add(commandText);
                Console.WriteLine("added therefore command {0}' ", pse.Text);
                return;
            }

            if (Command is InvalidSyntacticElement)
            {
                InvalidSyntacticElement ise = (InvalidSyntacticElement)Command;
                Console.WriteLine("Error> {0}: {1}", ise.Title, ise.Message);
                Console.WriteLine(commandText);
                return;
            }
            throw new NotImplementedException();
        }
Пример #2
0
        public void LineParser_InValidPredicateDefinition_NoName_ReturnsInvalidSyntacticElement()
        {
            string line;

            line = "\tpredicate > raining in chicago = false";
            SyntacticElement parseResult;

            parseResult = LineParser.Parse(line);
            Assert.AreEqual(parseResult.GetType(), typeof(InvalidSyntacticElement));
            InvalidSyntacticElement ise = (InvalidSyntacticElement)parseResult;

            Assert.AreEqual(ise.Title, "No predicate name");
        }
Пример #3
0
        public void LineParser_InValidPredicateDefinition_ReservedWordifandonlyif_ReturnsInvalidSyntacticElement()
        {
            string line;

            line = "\tpredicate p > raining in chicago ifandonlyif you are in illinois = false";
            SyntacticElement parseResult;

            parseResult = LineParser.Parse(line);
            Assert.AreEqual(parseResult.GetType(), typeof(InvalidSyntacticElement));
            InvalidSyntacticElement ise = (InvalidSyntacticElement)parseResult;

            Assert.AreEqual(ise.Title, "Predicate may not contain reserved words");
        }
Пример #4
0
        public void LineParser_InValidPredicateDefinition_IntegerValue5_ReturnsInvalidSyntacticElement()
        {
            string line;

            line = "\tpredicate p > p = 5";
            SyntacticElement parseResult;

            parseResult = LineParser.Parse(line);
            Assert.AreEqual(parseResult.GetType(), typeof(InvalidSyntacticElement));
            InvalidSyntacticElement ise = (InvalidSyntacticElement)parseResult;

            Assert.AreEqual(ise.Title, "Invalid value");
        }
Пример #5
0
        public void LineParser_InValidPredicateDefinition_MoreThanOneEqualsSign_ReturnsInvalidSyntacticElement()
        {
            string line;

            line = "\tpredicate p > p = = false";
            SyntacticElement parseResult;

            parseResult = LineParser.Parse(line);
            Assert.AreEqual(parseResult.GetType(), typeof(InvalidSyntacticElement));
            InvalidSyntacticElement ise = (InvalidSyntacticElement)parseResult;

            Assert.AreEqual(ise.Title, "Equals sign not in the expected place");
        }
Пример #6
0
        public void LineParser_InValidPredicateDefinition_NoPredicateSymbol_ReturnsInvalidSyntacticElement()
        {
            string line;

            line = "\tpredicate p p = false";
            SyntacticElement parseResult;

            parseResult = LineParser.Parse(line);
            Assert.AreEqual(parseResult.GetType(), typeof(InvalidSyntacticElement));
            InvalidSyntacticElement ise = (InvalidSyntacticElement)parseResult;

            Assert.AreEqual(ise.Title, "predicate symbol not found");
        }