code: def comparison_operator(self, tree):
      op = str(tree.children[0])
  
      if op == "=":
          return ExpressionType.COMPARE_EQUAL
      elif op == "<":
          return ExpressionType.COMPARE_LESSER
      elif op == ">":
          return ExpressionType.COMPARE_GREATER
      elif op == ">=":
          return ExpressionType.COMPARE_GEQ
      elif op == "<=":
          return ExpressionType.COMPARE_LEQ
      elif op == "!=":
          return ExpressionType.COMPARE_NEQ
      elif op == "@>":
          return ExpressionType.COMPARE_CONTAINS
      elif op == "<@":
          return ExpressionType.COMPARE_IS_CONTAINED
      elif op == "LIKE":
          return ExpressionType.COMPARE_LIKE
  
imports: import numpy
  from lark import Tree
  from evadb.catalog.catalog_type import ColumnType
  from evadb.expression.abstract_expression import ExpressionType
  from evadb.expression.comparison_expression import ComparisonExpression
  from evadb.expression.constant_value_expression import ConstantValueExpression
  from evadb.expression.logical_expression import LogicalExpression
  from evadb.utils.generic_utils import string_comparison_case_insensitive
label_desc: Use image node_id 8 for calling the Expressions obj's underlying member method code with example usage: obj.comparison_operator(tree) and returns: ExpressionType, ExpressionType, ExpressionType, ExpressionType, ExpressionType, ExpressionType, ExpressionType, ExpressionType, ExpressionType