[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 FORWARD                     Forward Declaration                      pp 145

 Syntax:  Forward

 Type:    N/A

 Form:    Declaration

 Purpose: Enable usage of a function or procedure before it is declared.

 Notes:   A subroutine is Forward declared by specifying its heading
          separately from the code block.  This separate heading is exactly
          the same as the the normal heading except that it is terminated by
          the reserved word Forward.

          The code block follows later within the same declaration part.
          This code block will be initiated by a copy of the heading using
          the name only.  No parameters or types will be given.


 Usage:
       PROGRAM
          Crash                          ;      { Program will crash        }

       VAR
          Alpha : Integer                ;      { Test argument             }

       Procedure Test2 (var A : Integer) ; Forward ;
       Procedure Test1 (var A : Integer) ;
          Begin
          If A > 0 then Test2 (A)        ;      { Non-Forward compile fails }
          End                            ;

       Procedure Test2                   ;      { New declaration           }
    (* Procedure Test2 (var A : Integer) ; *)   { Deleted by Forward        }
          Begin
          If A > 0 then Test1 (A)        ;      { Recurse until you crash   }
          End                            ;

       BEGIN                             ;      { Main line code            }
          Alpha := 15                    ;      { Assign argument           }
          Test1 (Alpha)                  ;      { Call recursion            }
       END.                              ;      { End of main line          }

See Also: Function Procedure
This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson