| **Navigation:**  [[introduction.htm|Language Reference]] > 2 - Program Source Code Format > Program Format >====== MAP (declare PROCEDURE prototypes) ====== | [[member identify member source file .htm|{{btn_prev_n.gif|Previous page}}]][[introduction.htm|{{btn_home_n.gif|Return to chapter overview}}]][[module specify member source file .htm|{{btn_next_n.gif|Next page}}]] | | || | | **MAP** | | | //prototypes// | | | [**MODULE( )** | | | //prototypes// | | | **END **] | | | **END** | {{blk2blue.jpg|blk2blue.jpg}} | **MAP** | Contains the //prototypes// which declare the procedures and external source modules used in a PROGRAM, MEMBER module, or PROCEDURE. | | //prototypes// | Declare PROCEDUREs. | | **MODULE** | Declare a member source module that contains the definitions of the //prototypes// in the MODULE. | A **MAP** structure contains the //prototypes// which declare the PROCEDUREs and external source modules used in a PROGRAM, MEMBER module, or PROCEDURE which are not members of a CLASS structure. A MAP declared in the PROGRAM source module declares //prototypes// of PROCEDUREs available for use throughout the program. A MAP in a MEMBER module declares //prototypes// of PROCEDUREs that are explicitly available in that MEMBER module. The same //prototypes// may be placed in multiple MEMBER modules to make them explicitly available in each. A MAP can also be included within a PROCEDURE declaration. All prototypes of PROCEDUREs declared in a local PROCEDURE MAP may only be referenced within the PROCEDURE itself. A MAP structure is mandatory for any non-trivial Clarion program because the BUILTINS.CLW file is automatically included in your PROGRAM's MAP structure by the compiler. This file contains prototypes of most of the procedures in the Clarion internal library that are available as part of the Clarion language. This file is required because the compiler does not have these prototypes built into it (making it more efficient). Since the prototypes in the BUILTINS.CLW file use some constant EQUATEs that are defined in the EQUATES.CLW file, this file is also automatically included by the compiler in every Clarion program. **Example:** **!One file contains:** ** PROGRAM              !Sample program in sample.cla** ** ****MAP****                  !Begin map declaration** **LoadIt PROCEDURE      !LoadIt procedure** ** ****END****                  !End of map** **!A separate file contains:** ** MEMBER('Sample')     !Declare MEMBER module** ** ****MAP****                  !Begin MODULE local map declaration** **ComputeIt PROCEDURE   ! compute it procedure** ** ****END****                  !End of map** **ComputeIt  PROCEDURE** **LOC:Var LONG** ** ****MAP****                 ! PROCEDURE local map** **    Proc1** ** ****END** **  CODE** **  Proc1()** **  RETURN** **Proc1 Procedure** **  CODE** **  LOC:Var += 1** **  RETURN** **See Also:** [[program declare a program .htm|PROGRAM]] [[member identify member source file .htm|MEMBER]] [[module specify member source file .htm|MODULE]] [[procedure define a procedure .htm|PROCEDURE]] [[procedure prototypes.htm|PROCEDURE Prototypes]]