docstr: A symbol is a function declaration.
  :param name: name of the symbol
  :param op_name: name of the operation
  :param ret_type: return type of the operation
  :param arg_names: names of the arguments
  :param arg_types: types of the arguments
docstr_tok: ["A","symbol","is","a","function","declaration",".",":","param","name",":","name","of","the","symbol",":","param","op_name",":","name","of","the","operation",":","param","ret_type",":","return","type","of","the","operation",":","param","arg_names",":","names","of","the","arguments",":","param","arg_types",":","types","of","the","arguments"]
code: def __init__(
      self,
      name: str,
      op_name: str,
      ret_type: str,
      arg_names: List[str],
      arg_types: List[str],
  ) -> None:
      """
      A symbol is a function declaration.
      :param name: name of the symbol
      :param op_name: name of the operation
      :param ret_type: return type of the operation
      :param arg_names: names of the arguments
      :param arg_types: types of the arguments
      """
      self._name = name
      self._op_name = op_name
      self._ret_type = ret_type
      self._arg_names = list(arg_names)
      self._arg_types = list(arg_types)
  
imports: import argparse
  import subprocess
  from abc import ABC, abstractmethod
  from typing import Dict, List, Optional
label_desc: Use image node_id 1 to create a new Symbol object  with example: obj = Symbol(name, op_name, ret_type, arg_names, arg_types)