import java_cup.runtime.Symbol; import java.io.*; class Espressioni { static public void main(String[] args) throws java.io.IOException { // creazione del canale di input BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); //lettura della stringa da esaminare System.out.print("Espressione? "); String s = in.readLine(); //creazione del parser parser p = new parser(new Scanner(new StringReader(s))); try { Symbol ris = p.parse(); Expr albero = (Expr) ris.value; System.out.println("La notazione postfissa e' " + albero.toString()); System.out.println("Il risultato dell'espressione e' " + albero.calcola()); /* Nota: il metodo parse restituisce un oggetto di tipo Symbol che si riferisce al token corrispondente alla radice. Nel campo value, dichiarato del tipo generico Object, si trova il result assegnato dall'azione semantica */ } catch (Exception e){ System.out.println(e); } } }