public override void ParseFormel(List <char> formel) { if (formel.First() != '!') { throw new Exception("Missing !"); } else { formel.RemoveAt(0); if (formel.First() == '!') { next = new NegationExpression(); next.ParseFormel(formel); } else if (formel.First() == '(') { next = new BracketsExpression(); next.ParseFormel(formel); } else if (formel.First() > 'a' && formel.First() < 'z') { next = new VariableExpression(); next.ParseFormel(formel); } } }
public override void ParseFormel(List <char> formel) { if (formel.First() == '(') { next = new TermExpression(); formel.RemoveAt(0); next.ParseFormel(formel); if (formel.First() != ')') { throw new Exception("Missing )"); } } else { throw new ArgumentException("Unexpected Exception"); } }
public override void ParseFormel(List <char> formel) { if (formel.First() == '!') { left = new NegationExpression(); left.ParseFormel(formel); } else if (formel.First() == '(') { left = new BracketsExpression(); left.ParseFormel(formel); } else if (char.IsLetter(formel.First())) { left = new VariableExpression(); left.ParseFormel(formel); } else { throw new ArgumentException("Unexpected Exception"); } if (formel.Count > 0) { if (formel.First() == ')') { return; } if (formel.First() != '&' && formel.First() != '|' && formel.First() != '=' && formel.First() != '>') { throw new ArgumentException("Missing &, |, =, >"); } operation = formel.First(); formel.RemoveAt(0); right = new TermExpression(); right.ParseFormel(formel); } }