import java_cup.runtime.*; import java.io.*; class GeneraPostfissa { public static 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 da esaminare? "); String s = in.readLine(); //creazione della symbol factory ComplexSymbolFactory sf = new ComplexSymbolFactory(); //creazione dell'analizzatore lessicale Scanner scanner = new Scanner(new StringReader(s), sf); //creazione del parser Parser p = new Parser(scanner, sf); try { Symbol ris = p.parse(); System.out.println("La notazione postfissa e' " + ris.value); /* 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); } } }