ZBasic Language Reference
120
ZX Microcontroller Family
hidden-data
5
Warn about data definitions hiding definitions at outer levels.
never-returns
8
Warn that a routine will never return (automatically suppressed for the
entry routine and routines invoked using CallTask).
questionable-code
4
Warn about questionable coding practices.
structure-compare
12
Warn about comparison of structures containing allocated strings.
task-stack-size
13
Warn about insufficient task stack size.
undefined-variable
2
Warn about the use of a variable before a value is assigned to it or
when at least one path through a function does not set the return value.
unused-parameter
6
Warn about an unused parameter.
unused-procedure
14
Warn about an unused procedure.
useless-code
7
Warn about code that will never be executed or has no effect.
warnings
1000
Refers to all warning types collectively.
The invocation option -help-warning displays similar information and also indicates which warning
types are on by default.
-D<id>[=<value>]
This option defines an identifier that may be used in a conditional construct (see Section 3.12). If no
value is specified, the identifier is considered to be an integral identifier and is assigned the value 1. The
value may be specified as a decimal value or, when prefixed by &H or 0, as a hexadecimal value.
Otherwise, the value is considered to be a string value. The string value may optionally be enclosed in
matching quote marks or apostrophes but this is only necessary if the value contains white space or
begins with a character sequence that would otherwise indicate that an integral value is being specified.
Note that depending on your operating system, using the ampersand or other special characters on the
command line may require special quoting or escape characters.
If the identifier already exists, an error message will be displayed. The U option may be used to avoid
this situation. Also note that identifiers defined in this fashion are also available to be used in program
code somewhat as if they were defined by a Const definition. The primary difference is that integral
valued identifiers have a universal type that can be used just like a literal integral value.
Identifiers defined by this means are visible in all modules processed after the appearance of the option.
Note that within a particular module the identifier may be undefined and re-defined. However, this has
effect only within that particular module; the remaining modules will see the value as originally defined.
-U<id>
This option causes the compiler to remove the specified identifier (as defined by D) from the internal
symbol table if the identifier exists. If the identifier doesnt exist, the option is silently ignored.
7.3 Error and Warning Messages
The compiler will output messages for detected error conditions and warnings to stderr (by default, the
console). The message output may be redirected to a file using the I/O redirection capabilities of the
operating system or by using a compiler option to specify the error output file (see -error above).
Error messages relating to problems with compiler options will not be affected by the presence of the
error output specification.
For code-related errors and warnings, the message will contain a reference to the filename and line
number of the code corresponding to the error or warning. Although the line number given will generally
be correct, code involving line continuations may lead to the line number reported being different than the
actual physical line number where the offending code appears.
The general format of the error and warning messages may be modified to some extent using the -
error-format option described in the preceding section. This may be useful if you are using the