Navigation: Language Reference > 2 - Program Source Code Format > Program Format >====== PROGRAM (declare a program) ====== | |
PROGRAM |
MAP |
Prototypes |
. [MODULE( ) |
Prototypes |
END ] |
END |
global data |
CODE |
Statements |
[RETURN] |
Procedures |
In Clarion#, you can add a default access modifier to the PROGRAM statement:
PROGRAM[, PUBLIC|,INTERNAL]
All declarations without explicit access modifier will have the default access modifier. The default for PROGRAM is PUBLIC.
PROGRAM | The first declaration in a Clarion program source module. Required. |
MAP | Global procedure declarations. Required. |
MODULE | Declare member source modules. |
prototypes | PROCEDURE declarations. |
global data | Declare Global data which may be referenced by all procedures. |
CODE | Terminate the data declaration section and begin the executable code section of the PROGRAM. |
statements | Executable program instructions. |
RETURN | Terminate program execution. Return to operating system control. |
procedures | Source code for the procedures in the PROGRAM module. |
The PROGRAM statement is required to be the first declaration in a Clarion program source module. It may only be preceded by source code comments. The PROGRAM source file name is used as the object (.OBJ) and executable (.EXE) file name, when compiled. The PROGRAM statement may have a label, but the label is ignored by the compiler.
A PROGRAM with PROCEDUREs must have a MAP structure. The MAP declares the PROCEDURE prototypes. Any PROCEDURE contained in a separate source file must be declared in a MODULE structure within the MAP.
Data declared in the PROGRAM module, between the keywords PROGRAM and CODE, is Global data that may be accessed by any PROCEDURE in the PROGRAM. Its memory allocation is Static.
Example:
PROGRAM !Sample program declaration
INCLUDE('EQUATES.CLW') !Include standard equates
MAP
CalcTemp PROCEDURE !Procedure Prototype
END
CODE
CalcTemp !Call procedure
CalcTemp PROCEDURE
Fahrenheit REAL(0) !Global data declarations
Centigrade REAL(0)
Window WINDOW('Temperature Conversion'),CENTER,SYSTEM
STRING('Enter Fahrenheit Temperature: '),AT(34,50,101,10)
ENTRY(@N-04),AT(138,49,60,12),USE(Fahrenheit)
STRING('Centigrade Temperature:'),AT(34,71,80,10),LEFT
ENTRY(@N-04),AT(138,70,60,12),USE(Centigrade),SKIP
BUTTON('Another'),AT(34,92,32,16),USE(?Another)
BUTTON('Exit'),AT(138,92,32,16),USE(?Exit)
END
CODE !Begin executable code section
OPEN(Window)
ACCEPT
CASE ACCEPTED()
OF ?Fahrenheit
Centigrade = (Fahrenheit - 32) / 1.8
DISPLAY(?Centigrade)
OF ?Another
Fahrenheit = 0
Centigrade = 0
DISPLAY
SELECT(?Fahrenheit)
OF ?Exit
BREAK
END
END
CLOSE(Window)
RETURN
See Also: