Flow Control

The following functions can be used to manage program execution/flow:

%DEF

Determine if an equate has been previously defined.

#IF

Define sections of source code to be compiled or ignored.

#TOOLS

Enable/disable integrated development tools in compiled code.

CALL

Invoke a procedure (Sub, Function, Method, Property, or FastProc).

CALL DWORD

Invoke a procedure (Sub, Function, Method, Property, or FastProc) indirectly.

CALLSTK

Capture a representation of the stack frames in the call stack.

CALLSTK$

Retrieve the details of a specific stack frame.

CALLSTKCOUNT

Retrieve the number of stack frames in the call stack.

CHOOSE

Return one of several values, based upon the value of an index.

CODEPTR

Obtain a 32-bit address of a label or procedure..

DLLMAIN

User-defined function called when a DLL the DLL is loaded/unloaded.

DO/LOOP

Define a group of statements that are executed repetitively.

END

Terminate the program immediately.

EXIT

Transfer program execution out of a block structure.

FASTPROC/END FASTPROC

Define a FastProc code section.

FOR/NEXT

Define a loop of program statements controlled by a counter.

FOR EACH/NEXT

Define a loop of program statements which can sequentially examine and act upon each member of a PowerCollection or LinkListCollection.

FUNCNAME$

Return the name of the current Sub, Function, Method, or Property.

FUNCTION/END FUNCTION

Define a Function block.

GOSUB

Invoke a local subroutine.

GOSUB DWORD

Invoke a local subroutine indirectly.

GOTO

Transfer program execution to the statement identified by a label.

GOTO DWORD

Transfer execution indirectly to a local label or line number.

IF

Test a condition and execute one or more program statements.

IF/END IF

Create a IF/THEN/ELSE block with multiple lines and conditions.

IIF

Return one of two values based upon a True/False evaluation.

ISFALSE

Return the logical falsity of a given expression.

ISMISSING

Determine whether an optional parameter was passed by the calling code.

ISNOTHING

Determine the current status of a given object variable.

ISOBJECT

Determine the current status of a given object variable.

ISTRUE

Return the logical truth of a given expression.

ITERATE

Start an immediate iteration of a loop structure.

LIBMAIN

User-defined function called when a DLL the DLL is loaded/unloaded.

MACRO

Define a single or multi-line text substitution block.

METHOD/END METHOD

Define a METHOD procedure within a class.

ON ERROR

Specify an error handling routine; enable/disable trapping.

ON GOSUB

Call one of several subroutines based on a numeric expression.

ON GOTO

Send program flow to one of several labels based on a value.

PBLIBMAIN

User-defined function called when a DLL the DLL is loaded/unloaded.

PBMAIN

Define the initial entry-point Function for an application.

PREFIX/END PREFIX

Executes a series of statements, each of which utilizes pre-defined source code.

PROFILE

Capture an execution time profile of the Subs, Functions, Methods, and Properties.

PROPERTY/END PROPERTY

Define a PROPERTY procedure within a class.

RESUME

Continue execution after error handling with ON ERROR GOTO.

RESUME FLUSH

Execution continues on the line immediately following the RESUME FLUSH.

RESUME NEXT

Execution continues on the line immediately following the one which generated the error.

RESUME <Label>

Execution continues at the specified label location.

RETURN

Return from a (GOSUB) subroutine to its caller.

RETURN FLUSH

Removes the most recent return address from the system stack.

SELECT CASE

Control program flow based on the value of an expression.

SLEEP

Pause the current thread for a specified number of milliseconds.

SUB/END SUB

Define a Sub (procedure) block.

TRY/END TRY

A structured method of trapping and responding to errors.

WHILE/WEND

Define a block of statements that are executed repeatedly.

WINMAIN

Define the initial entry-point Function for an application.