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