Stored Procedure Function Oracle PLSQL

SQL> DECLARE
  2    v_TempVal BINARY_INTEGER := 5;
  3
  4    PROCEDURE B(p_Counter IN OUT BINARY_INTEGER);
  5
  6    PROCEDURE A(p_Counter IN OUT BINARY_INTEGER) IS
  7    BEGIN
  8      IF p_Counter > 0 THEN
  9        B(p_Counter);
 10        p_Counter := p_Counter - 1;
 11      END IF;
 12    END A;
 13
 14    PROCEDURE B(p_Counter IN OUT BINARY_INTEGER) IS
 15    BEGIN
 16      p_Counter := p_Counter - 1;
 17      A(p_Counter);
 18    END B;
 19  BEGIN
 20    B(v_TempVal);
 21  END;
 22  /
PL/SQL procedure successfully completed.
SQL>
SQL>