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

import java.io.*;
import java.util.*;
import java.text.NumberFormat;


/** <i>Parser f&uuml;r Formeln - liefert den Parsebaum mit den entsprechenden 
    Objekten der Formel zur&uuml;ck</i>
*/

public class FormelParser 
{
    // Attribute
    boolean ErrorFlag = false;

	  // Objektreferenzen
	  Scanner scanner;
    SyntaxRegel startRegel;
    Knoten Wurzel = null;

	  // Konstruktor
    public FormelParser(String s) 
    { 
       scanner = new Scanner(new StringReader(s));
       startRegel = new SyntaxFormel(this);
       startRegel.initProduktion();
       scanner.nextSymbol();
       Wurzel = startRegel.parse();
       if (ErrorFlag) 
       {
          Wurzel = null;
       }   
    }

	  /** liefert die Wurzel des neuen Teilbaums zur&uuml;ck */
    public Knoten getParseBaum()  
    { 
    	 return Wurzel; 
    }

    /** wird gerufen, wenn bei der Analyse der Eingabe ein Syntaxfehler festgestellt wird */
    public void errorOccured()  
    {  
    	 ErrorFlag = true; 
    }
}