code: def visit_invenio_keyword_query(self, node):
          
          try:
              keyword = node.left.accept(self)
          except AttributeError:
              # The keywords whose values aren't an InspireKeyword are simple strings.
              keyword = Keyword(node.left)
  
          value = node.right.accept(self)
  
          if isinstance(value, SimpleValueBooleanQuery):
              return _convert_simple_value_boolean_query_to_and_boolean_queries(value, keyword)
  
          return KeywordOp(keyword, value)
docs: Transform an :class:`InvenioKeywordQuery` into a :class:`KeywordOp`.
  
          Notes:
              In case the value being a :class:`SimpleValueBooleanQuery`, the subtree is transformed to chained
              :class:`AndOp` queries containing :class:`KeywordOp`, whose keyword is the keyword of the current node and
              values, all the :class:`SimpleValueBooleanQuery` values (either :class:`SimpleValues` or
              :class:`SimpleValueNegation`.)