parser code reorg; make precedence easier to deal with