/*
 * SyntaxFormel.java	01.07.99
 *
 *
 * Beilage zum Buch "Software-Entwurf mit UML"
 * von J.Seemann & J. Wolff von Gudenberg,
 * Springer-Verlag, 1999
 * 
 */

/** <i>Syntaxregel f&uuml;r ganze Formeln (Details siehe Klasses SyntaxRegel)</i> */
 
public class SyntaxFormel extends SyntaxRegel 
{
   public SyntaxFormel(FormelParser p)  
   {
      super(p);
      Produktion = new SyntaxTerm(p);
   }

   public void initProduktion()  {Produktion.initProduktion(); }

   public Knoten parse()
   {
      Knoten k = Produktion.parse();
      while ((scanner.Symbol == scanner.TT_PLUS) || (scanner.Symbol == scanner.TT_MINUS))
      {
         Operator OperatorKnoten;

         // Aktion
         if (scanner.Symbol == scanner.TT_PLUS)
         {
            OperatorKnoten = new PlusOperator();
         }
         else
         {
            OperatorKnoten = new MinusOperator();
         }
         OperatorKnoten.Op1 = k;

         // naechstes Symbol
         scanner.nextSymbol();  

         // zweiter Operand
         OperatorKnoten.Op2 = Produktion.parse();

         k = OperatorKnoten;
      }
      return k;
   }
   void aktion() {}
}