Added support for terminal and production precedence

class MyParser(Parser):

    PRECEDENCE = (
        (RIGHT, 'UMINUS'),
        (LEFT, 'TIMES', 'DIVIDE'),
        (LEFT, 'PLUS', 'MINUS'),
    )

    @attach('e : MINUS e', prec_symbol='UMINUS')
    def negate(self, op, expr):
        return -expr

"Symbols" in the PRECEDENCE tuple can be anything. Terminals will have
precedence according to their own name, while productions can use
"made-up" symbols (like UMINUS).