
/*
 * Modulo per la verifica del funzionamento di Evaluator
 * nel caso di valutazione numerica di espressioni infisse.
 *
 * A tal fine e' necessario il codice di supporto (bytecode)
 * reso disponibile attraverso il file expressions.jar.
 *
 * Per compilare:
 *
 *   javac -classpath hierarchies.jar *.java
 *
 * Per eseguire:
 *
 *   java -classpath hierarchies.jar:. Check
 *
 *  (MS-Windows: java -classpath hierarchies.jar;. Check)
 */


public class Check {


  public static void main( String[] args ) {
  
	String[] exp = {
	                 "5 * 8 - (15 - 21 / 7) * 3" ,
					 "7 + 3 * 4"				 ,
					 "5 * 7 + - 3"               ,
					 "5 + 6) - 10"               ,
					 "5 + 6 % 2"                 ,
					 "5 + 3 / (6 - 3*2)"
				   };
	
    Evaluator device = new Evaluator();
	
	for (int k=0; k<exp.length; k++) {
	  try {
	  
		ExpScanner exps = ExpTokenizer.tokenize( exp[k] );
		
		Term result = device.eval( exps );
	
	    System.out.println( exp[k] + " = " + result );
	
	  } catch ( Exception e ) {
	    System.out.println( "caught exception: " + e );
	  }
	}
	System.out.println( "bye." );
  }

}
