((declare (in) float a)
 (function sub
  (signature float (parameters)
   ((declare (temporary) bool execute_flag)
    (assign (x) (var_ref execute_flag) (constant bool (1)))
    (declare (temporary) float return_value)
    (declare (temporary) bool return_flag)
    (assign (x) (var_ref return_flag) (constant bool (0)))
    (if (expression bool > (var_ref a) (constant float (0.000000)))
     ((assign (x) (var_ref return_value) (constant float (1.000000)))
      (assign (x) (var_ref return_flag) (constant bool (1)))
      (assign (x) (var_ref execute_flag) (constant bool (0))))
     ((assign (x) (var_ref return_value) (constant float (2.000000)))
      (assign (x) (var_ref return_flag) (constant bool (1)))
      (assign (x) (var_ref execute_flag) (constant bool (0)))))
    (return (var_ref return_value))))))
