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(); }
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"); }
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"); }
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"); }
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"); }
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"); }