analizador de expresiones booleanas en java

¿Existen bibliotecas o técnicas de java para analizar expresiones booleanas de forma poco sistemática?

A lo que me refiero se le da una expresión como esta:

T && ( F || ( F && T ) )

Podría descomponerse en un árbol de expresiones para mostrar qué token causó el valor 'F', como tal (tal vez algo como esto):

T &&               <- rhs false
    ( F ||         <- rhs false
        ( F && T ) <- eval, false
    )

Estoy tratando de comunicar evaluaciones de expresiones booleanas a no programadores. He tocado con Anlr, pero no pude hacer mucho (parece tener una pequeña curva de aprendizaje).

No me opongo a escribirlo yo mismo, pero preferiría no reinventar la rueda.

Respuestas a la pregunta(5)

Su respuesta a la pregunta