Cleanup parser code. Decide to ignore shift-reduce conflict

The default behavior of yacc/bison is to shift, so the shift-reduce doesn't
effect anything (we want to shift). However, it might be possible to refactor
the grammar to avoid the conflict entirely, and this would be best. I tried to
do this, but don't have enough background in language theory to resolve the
problem.