// File di specifica JavaCup per un riconoscitore di espressioni aritmetiche import java_cup.runtime.*; class Parser; //nome da attribuire al parser (classe generata) //la classe per i token avra' lo stesso nome seguito da Sym (ParserSym) /* Simboli terminali (token restituiti dallo scanner). */ terminal PIU, MENO, PER, DIVISO; terminal UNARIO, TONDA_APERTA, TONDA_CHIUSA; terminal NUMERO; terminal IDENT; /* Non terminali */ non terminal expr; /* Precedenze e associativita' */ precedence left PIU, MENO; precedence left PER, DIVISO; precedence nonassoc UNARIO; /* Simbolo iniziale */ start with expr; /* Produzioni */ expr ::= expr PIU expr | expr MENO expr | expr PER expr | expr DIVISO expr | NUMERO | IDENT | MENO expr %prec UNARIO | PIU expr %prec UNARIO | TONDA_APERTA expr TONDA_CHIUSA ;