code: def create_index(self, tree):
      index_name = None
      if_not_exists = False
      table_name = None
      vector_store_type = None
      index_elem = None
  
      for child in tree.children:
          if isinstance(child, Tree):
              if child.data == "uid":
                  index_name = self.visit(child)
              if child.data == "if_not_exists":
                  if_not_exists = True
              elif child.data == "table_name":
                  table_name = self.visit(child)
                  table_ref = TableRef(table_name)
              elif child.data == "vector_store_type":
                  vector_store_type = self.visit(child)
              elif child.data == "index_elem":
                  index_elem = self.visit(child)
  
      # Projection list of child of index creation.
      project_expr_list = []
  
      # Parse either a single function call or column list.
      if not isinstance(index_elem, list):
          project_expr_list += [index_elem]
  
          # Traverse to the tuple value expression.
          while not isinstance(index_elem, TupleValueExpression):
              index_elem = index_elem.children[0]
          index_elem = [index_elem]
      else:
          project_expr_list += index_elem
  
      # Add tv_expr for projected columns.
      col_list = []
      for tv_expr in index_elem:
          col_list += [ColumnDefinition(tv_expr.name, None, None, None)]
  
      return CreateIndexStatement(
          index_name,
          if_not_exists,
          table_ref,
          col_list,
          vector_store_type,
          project_expr_list,
      )
  
imports: from lark import Tree
  from evadb.catalog.catalog_type import ColumnType, NdArrayType, VectorStoreType
  from evadb.expression.tuple_value_expression import TupleValueExpression
  from evadb.parser.create_index_statement import CreateIndexStatement
  from evadb.parser.create_statement import ColConstraintInfo, ColumnDefinition, CreateDatabaseStatement, CreateJobStatement, CreateTableStatement
  from evadb.parser.table_ref import TableRef
  from evadb.parser.types import ColumnConstraintEnum
label_desc: Use image node_id 1 for calling the CreateIndex obj's underlying member method code with example usage: obj.create_index(tree) and returns: CreateIndexStatement