def METHOD_NAME(self, p):
    """jsonpath : NUMBER operator NUMBER
                | FLOAT operator FLOAT
                | ID operator ID
                | NUMBER operator jsonpath
                | FLOAT operator jsonpath
                | jsonpath operator NUMBER
                | jsonpath operator FLOAT
                | jsonpath operator jsonpath
    """
    # NOTE(sileht): If we have choice between a field or a string we
    # always choice string, because field can be full qualified
    # like $.foo == foo and where string can't.
    for i in [1, 3]:
        if (isinstance(p[i], Fields) and len(p[i].fields) == 1):  # noqa
            p[i] = p[i].fields[0]
    p[0] = _arithmetic.Operation(p[1], p[2], p[3])