/*
 * SyntaxTerm.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 Terme (Details siehe Klasses SyntaxRegel)</i> */
 
public class SyntaxTerm extends SyntaxRegel 
{
   public SyntaxTerm(FormelParser p)  
   {
      super(p);
      Produktion = new SyntaxFaktor(p);
   }

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

   public Knoten parse() 
   {
      Knoten k = Produktion.parse();

      while ((scanner.Symbol == scanner.TT_MULT) || (scanner.Symbol == scanner.TT_DIV))
      {
         Operator OperatorKnoten;

         // Aktion
         if (scanner.Symbol == scanner.TT_MULT)
         {
            OperatorKnoten = new MultOperator();
         }
         else
         {
            OperatorKnoten = new DivOperator();
         }
         OperatorKnoten.Op1 = k;

         // naechstes Symbol
         scanner.nextSymbol();  

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

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