if funcionando, no entanto com shift/reduce