(false and (74 >= 34)) xor 45 < 78 ; El análisis semántico en CUP se hace de forma ascendente, por ello se parte del árbol completo para su explicación.
Al aplicar una reducción en el árbol se calcula el valor de cierto o falso de la parte a reducir y se pasa al antecedente como atributo sintetizado. En este caso se reduce el terminal FALSE al no terminal J que pasa a tener en su atributo “valor” el valor false.
Se reduce J a L tomando L en su atributo “valor” el que tenia J en el mismo atributo.
Antes de reducir se calcula el valor de la expresión “74 >= 34” para dar valor al atributo “valor” del no terminal C, pasando este a valer TRUE.
El valor TRUE va ascendiendo en las sucesivas reducciones de los no terminales en el atributo “valor” de cada no terminal.
Al reducir el consecuente “(L)” se pasa al atributo “valor” del no terminal J el valor del atributo “valor” del no terminal L, ascendiendo de este modo en el árbol.
Antes de reducir el consecuente “L AND J” se calcula el valor de la expresión según sus atributos “valor” y el operador AND para dar valor al atributo “valor” de L al reducir.
En los sucesivos pasos se repite el esquema explicado ascendiendo en las reducciones los valores hacia el atributo “valor” del antecedente, hasta que finalmente se llega a reducir el árbol completo llegando el valor final al no terminal A.