Пример #1
0
 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);
         }
     }
 }
Пример #2
0
 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");
     }
 }
Пример #3
0
        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);
            }
        }