class_docstr: Python AST visitor pass which finally lowers it to HalideIR
docstr: Parameters
  ----------
  args: A list of tvm.te.placeholder or te.var
      Provided by the user, the argument list of the function to be lowered.
  
  usage: A dict of variables used in last in this function
      Provided by last lower pass, which collects this information
  
  symbols : list of str
      The symbol list of the global context of the function.
  
  closure_vars: dict
      A dict of external name reference captured by this function.
  
  Returns
  -------
  func_name: str
      The name of the function to be lowered; if not provided,
      the compiler will use the name in the AST
docstr_tok: ["Parameters","--","--","--","--","--","args",":","A","list","of","tvm.te.placeholder","or","te.var","Provided","by","the","user",",","the","argument","list","of","the","function","to","be","lowered",".","usage",":","A","dict","of","variables","used","in","last","in","this","function","Provided","by","last","lower","pass",",","which","collects","this","information","symbols",":","list","of","str","The","symbol","list","of","the","global","context","of","the","function",".","closure_vars",":","dict","A","dict","of","external","name","reference","captured","by","this","function",".","Returns","--","--","--","-","func_name",":","str","The","name","of","the","function","to","be","lowered",";","if","not","provided",",","the","compiler","will","use","the","name","in","the","AST"]
code: def __init__(
      self, args, usage, symbols, closure_vars, func_name=None
  ):
      """
      Parameters
      ----------
      args: A list of tvm.te.placeholder or te.var
          Provided by the user, the argument list of the function to be lowered.
  
      usage: A dict of variables used in last in this function
          Provided by last lower pass, which collects this information
  
      symbols : list of str
          The symbol list of the global context of the function.
  
      closure_vars: dict
          A dict of external name reference captured by this function.
  
      Returns
      -------
      func_name: str
          The name of the function to be lowered; if not provided,
          the compiler will use the name in the AST
      """
      self.args = list(args)
      self.usage = usage.copy()
  
      self.symbols = {}  # Symbol table
      for k, v in symbols.items():
          if callable(v):
              self.add_symbol(k, Symbol.Callable, v)
  
      self.closure_vars = closure_vars
  
      self.binds = {}  # Thread binds
      self.device = 0  # Is it generating device
  
      self.func_name = (
          func_name  # The name of the function to be lowered
      )
      self.outputs = []  # Output tensors' name
      self.side_effect = set()  # Tensors with side effects
      self.parsed_body = None  # The parsed HalideIR body
      self.analyzer = tvm.arith.Analyzer()
      self.returned = False
  
imports: import ast
  import operator
  import logging
  import sys
  import numbers
  from enum import Enum
  from tvm.ir import Array, Range
  import tvm.runtime
  import tvm.tir
  import tvm.te
  import tvm.te._ffi_api
  import tvm.arith
  from tvm.tir import expr
  from tvm.tir import stmt
  from tvm.te.tensor import Tensor, Operation
  from tvm.tir import all
  from tvm.tir import any
  from .utils import _internal_assert
  from .None import calls
  from .None import utils
  from .preprocessor import determine_variable_usage
label_desc: Use image node_id 1 to create a new HybridParser object from inherited base classes: ast with example: obj = HybridParser(args, usage, symbols, closure_vars, func_name)