/* ---------------------------------------------------------------------- */

#define ns__aproc0 "::aproc"
static void c__aproc0(int x, int has_y, int y, int z)
{

}

static int
tcl__aproc0(ClientData cd, Tcl_Interp *interp, Tcl_Size oc, Tcl_Obj *CONST ov[])
{
  int _x;
  int _has_y = 0;
  int _y;
  int _z;
  int idx_;
  int argc_;

  critcl_trace_cmd_args (ns__aproc0, oc, ov);

  if ((oc < 3) || (4 < oc)) {
    Tcl_WrongNumArgs(interp, 1, ov, "x ?y? z");
    return critcl_trace_cmd_result (TCL_ERROR, interp);
  }

  /* (int x) - - -- --- ----- -------- */
	{
	if (Tcl_GetIntFromObj(interp, ov[1], &_x) != TCL_OK) return critcl_trace_cmd_result (TCL_ERROR, interp); }


  idx_  = 2;
  argc_ = oc - 2;

  /* (int y, optional, default -1) - - -- --- ----- -------- */
  if (argc_ > 1) {
	{
	if (Tcl_GetIntFromObj(interp, ov[idx_], &_y) != TCL_OK) return critcl_trace_cmd_result (TCL_ERROR, interp); }
    idx_++;
    argc_--;
    _has_y = 1;
  } else {
    _y = -1;
  }


  /* (int z) - - -- --- ----- -------- */
	{
	if (Tcl_GetIntFromObj(interp, ov[idx_], &_z) != TCL_OK) return critcl_trace_cmd_result (TCL_ERROR, interp); }


  /* Call - - -- --- ----- -------- */
  c__aproc0(_x, _has_y, _y, _z);

  /* (void return) - - -- --- ----- -------- */
	return critcl_trace_cmd_result (TCL_OK, interp);
}
