ENUM statement
Purpose: ENUM defines a list of
variables which represent integer numbers and provides for
enumeration of the variables. ENUM is
similar to BCX CONST.
Syntax 1:
ENUM Variable1%, Variable2%, Variable3%, ...
Parameters:
|
Syntax 2:
ENUM Variable1% = 3, Variable2%, Variable3%, ...
Parameters:
|
ENUM can also be structured as an
ENUM...END ENUM block. ENUM defined in this way is always GLOBAL in scope.
Syntax 3: ENUM Variable1% = 3 Variable2% Variable3% ... END ENUM Parameters:
|
Instead of coding :
CONST Mon = 1 CONST Tue = 2 CONST Wed = 3 CONST Thu = 4 CONST Fri = 5 CONST Sat = 6 CONST Sun = 7
ENUM could be used.
ENUM Mon=1, Tue, Wed, Thu, Fri, Sat, Sun
BCX's implementation of ENUM places the
declarations inside the SUB or FUNCTION within which they are declared. If declared in
a console app outside any user defined SUB
or FUNCTION then the ENUM is placed in the main() function.
Consider the following valid sample:
ENUM Mon=1, Tue, Wed, Thu, Fri, Sat, Sun 'declared and visible in main() SUB foo1 ENUM Mon=10, Tue, Wed, Thu, Fri, Sat, Sun END SUB SUB foo2 ENUM Mon=20, Tue, Wed, Thu, Fri, Sat, Sun END SUB
In a console application, if a global ENUM is needed, the above restriction regarding scope
can be circumvented by using the ENUM...END
ENUM block syntax which is always GLOBAL in scope. A second
method for global scope is to use the $NOMAIN directive and a SUB
main() as in this example.
$NOMAIN ENUM Mon=1, Tue, Wed, Thu, Fri Sat, Sun SUB main() PRINT Wed KEYPRESS END SUB
The program below demonstrates beginning a series with the base number 100 then changing the base to 200.
Example:
ENUM a=100, b, c, d=200, e, f PRINT a,b,c,d,e,f
Result: 100 101 102 200 201 202
Example: ENUM...END ENUM block example.
ENUM apples bananas oranges END ENUM PRINT apples PRINT bananas PRINT oranges PRINT ENUM grapes = 100 'start at 100, then increment by 1 berries kiwis END ENUM PRINT grapes PRINT berries PRINT kiwis