code: def aggregate_windowed_function(self, tree):
      agg_func_arg = None
      agg_func_name = None
  
      for child in tree.children:
          if isinstance(child, Tree):
              if child.data == "function_arg":
                  agg_func_arg = self.visit(child)
              elif child.data == "aggregate_function_name":
                  agg_func_name = self.visit(child).value
          elif isinstance(child, Token):
              token = child.value
              # Support for COUNT(*)
              if token != "*":
                  agg_func_name = token
              elif token == "*":
                  agg_func_arg = TupleValueExpression(name="_row_id")
              else:
                  agg_func_arg = TupleValueExpression(name="id")
  
      agg_func_type = self.get_aggregate_function_type(agg_func_name)
      agg_expr = AggregationExpression(
          agg_func_type, None, agg_func_arg
      )
      return agg_expr
  
file_path: evadb/evadb/parser/lark_visitor/_functions.py
imports: from lark import Token, Tree
  from evadb.expression.abstract_expression import ExpressionType
  from evadb.expression.aggregation_expression import AggregationExpression
  from evadb.expression.constant_value_expression import ConstantValueExpression
  from evadb.expression.function_expression import FunctionExpression
  from evadb.expression.tuple_value_expression import TupleValueExpression
  from evadb.parser.create_function_statement import CreateFunctionStatement
label_desc: Use image node_id 5 for calling the Functions obj's underlying member method code with example usage: obj.aggregate_windowed_function(tree) and returns: agg_expr