All keyword characters are upper case, and the language is case sensitive. Thus FOR is a keyword while for , foR , For , FOr , FoR , fOr , fOR are seven valid independent symbols, but not keywords. Thus the following is valid code, though no sane programmer would ever write it.
FOR For = foR TO to STEP Step ' FOR, TO, STEP are
PRINT For, foR, to, Step ' For, foR, to, Step are variables
NEXT For ' don't ever write code like this!
names and symbols
Names or Symbols are strings of one or more characters, beginning with an alphabetic character and including all subsequent characters up to the first non-symbol character. Characters that immediately follow symbols and constitute valid type-suffixes are considered part of the symbol and determine its data type. Characters that immediately precede symbols and constitute valid scope-prefixes are considered part of the symbol and determine its scope.
The type suffixes that can be appended to variables to explicitly specify their data type are:
|@||SBYTE||8-bit signed byte integer|
|@@||UBYTE||8-bit unsigned byte integer|
|%||SSHORT||16-bit signed short integer|
|%%||USHORT||16-bit unsigned short integer|
|&||SLONG||32-bit signed long integer|
|&&||ULONG||32-bit unsigned long integer|
|~||XLONG||32/64-bit signed machine integer|
|$$||GIANT||64-bit signed giant (financial) integer|
|!||SINGLE||IEEE single precision floating point|
|#||DOUBLE||IEEE double precision floating point|
|$||STRING||String of unsigned bytes|
The scope prefixes that can be prepended to variables to explicitly specify their scope are:
|#||SHARED||variable shared within a program|
|##||EXTERNAL||variable shared between multiple programs|
|$||Local Constant||constant visible within one function|
|$$||Shared Constant||constant visible throughout a program|
Most language elements are symbols. Language keywords symbols contain only upper-case characters, never a lower case character. Symbols begin with an alphabetic character followed by zero or more symbol characters, possibly terminated by a type-suffix or begun by a prefix, both of which become part of the symbol. Local and shared constants are symbols prefixed by $ and $$ , as in $PI and $$PIE .
Array names are always followed by square-brackets, though whitespace between the symbol and square brackets is permissible, so a$[j] and a$ [j] are equivalent. Function names are always followed by parentheses, though whitespace between the symbol and parentheses is permissible, so Func() and Func () are equivalent.