Aula Prática

Utilize o JavaCC para gerar as classes referentes a esta especificação:

Calculator.jj 

Para treinar o uso do JavaCC, modifique o arquivo acima, para incluir expressões parentetizadas e exponenciação, de forma que a gramática passe a ser:

expr := number
      | expr '+' expr
      | expr '-' expr
      | expr '*' expr
      | expr '/' expr
      | - expr
      | exp ^ number
      | (exp)


number := digit+ ('.' digit+)?
digit := '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'

A precedência é:

parentêses > exponenciação > menos unário > (multiplicação | divisão) > (soma/subtração)