Commands :
Execute a C or Assembler procedure
CALL <idProcedure> [WITH <exp list>]
Terminate program processing
CANCEL* | QUIT
Call a procedure
DO <idProcedure> [WITH <argument list>]
Terminate program processing
QUIT | CANCEL*
Execute a DOS command or program
RUN | !* <xcCommandLine>
Assign a procedure invocation to a key
SET KEY <nInkeyCode> TO [<idProcedure>]
Compile procedures/functions into the current .OBJ file
SET PROCEDURE TO [<idProgramFile>[.<ext>]]
Suspend program processing until a key is pressed
WAIT [<expPrompt>] [TO <idVar>]
Statements :
Declare a module identifier
ANNOUNCE <idModule>
Define a sequence of statements for a BREAK
BEGIN SEQUENCE
<statements>...
[BREAK [<exp>]]
<statements>...
[RECOVER [USING <idVar>]]
<statements>...
END [SEQUENCE]
Execute one of several alternative blocks of statements
DO CASE
CASE <lCondition1>
<statements>...
[CASE <lCondition2>]
<statements>...
[OTHERWISE]
<statements>...
END[CASE]
Execute a loop while a condition is true (.T.)
[DO] WHILE <lCondition>
<statements>...
[EXIT]
<statements>...
[LOOP]
<statements>...
END[DO]
Declare an exit procedure
EXIT PROCEDURE <idProcedure>
[FIELD <idField list> [IN <idAlias>]]
[LOCAL <identifier> [[:= <initializer>]]]
[MEMVAR <identifer list>]
.
. <executable statements>
.
[RETURN]
Declare a list of procedure or user-defined function names
EXTERNAL <idProcedure list>
Execute a block of statements a specified number of times
FOR <idCounter> := <nStart> TO <nEnd> [STEP <nIncrement>]
<statements>...
[EXIT]
<statements>...
[LOOP]
NEXT
Declare a user-defined function name and formal parameters
[STATIC] FUNCTION <idFunction>[(<idParam list>)]
[LOCAL <identifier> [[:= <initializer>], ... ]]
[STATIC <identifier> [[:= <initializer>], ... ]]
[FIELD <identifier list> [IN <idAlias>]]
[MEMVAR <identifier list>]
.
. <executable statements>
.
RETURN <exp>
Execute one of several alternative blocks of statements
IF <lCondition1>
<statements>...
[ELSEIF <lCondition2>]
<statements>...
[ELSE]
<statements>...
END[IF]
Declare an initialization procedure
INIT PROCEDURE <idProcedure> [(<idParam list>)]
[FIELD <idField list> [IN <idAlias>]]
[LOCAL <identifier> [[:= <initializer>]]]
[MEMVAR <identifer list>]
.
. <executable statements>
.
[RETURN]
Place a single-line comment in a program file
NOTE This is a comment line
Create private parameter variables
PARAMETERS <idPrivate list>
Declare a procedure name and formal parameters
[STATIC] PROCEDURE <idProcedure> [(<idParam list>)]
[FIELD <idField list> [IN <idAlias>]
[LOCAL <identifier> [[:= <initializer>], ... ]]
[MEMVAR <identifier list>]
[STATIC <identifier> [[:= <initializer>], ... ]]
.
. <executable statements>
.
[RETURN]
Declare a module request list
REQUEST <idModule list>
Terminate a procedure, user-defined function or program
RETURN [<exp>]
Functions :
Branch out of a BEGIN SEQUENCE…END construct
BREAK(<exp>) --> NIL
Evaluate a code block
EVAL(<bBlock>, [<BlockArg list>]) --> LastBlockValue
Return the result of an expression based on a condition
[I]IF(<lCondition>, <expTrue>, <expFalse>) --> Value
Determine the position of the last actual parameter passed
PCOUNT() --> nLastArgumentPos
Assign an action block to a key
SETKEY(<nInkeyCode>, [<bAction>]) --> bCurrentAction
Toggle Alt-C and Ctrl-Break as program termination keys
SETCANCEL([<lToggle>]) --> lCurrentSetting
Convert CALL command numeric parameters from double to int
WORD(<nNumber>) --> NIL