148 of 208
ZBasic Language Reference 140 ZX Microcontroller Family preserve-parens The presence of this options restricts the use of expression optimizations to parenthetical boundaries. strength-reduction Reduction-in-strength optimizations may be performed, e.g. multiplication by a power of two replaced by left shift. string-pooling Code size is reduced by detecting identical strings. Each string appears just once in Program Memory but may be referred to in multiple places. unreachable-code Code that cannot possibly be executed may be eliminated. unreferenced-code Routines that are not used are not included in the generated code. unreferenced-vars Variables that are not referenced or are eliminated by optimization may not be allocated space. use-identities Expression complexity may be reduced by applying algebraic or logical identities. For example, i * j can be replaced by i if j is known to have the value 1. useless-code Code that is known to have no useful effect may be eliminated. For example, assigning a value to a local variable that is never used is considered useless. The invocation option –-help-optimize displays similar information and also indicates which optimizations are on by default. --out=<file> This option explicitly specifies the name for the file for the generated code. In the absence of this option, the output file name is derived from either the project file, if specified, or the first file compiled. If an earlier or later option specifies that no code should be generated this option is ignored. --overload This option enables procedure overloading. --project=<file> This option specifies the name of a project file. A project file is similar to an arguments file in that it may contain additional compiler options and filenames that are processed before processing subsequent command line options. Additionally, however, several other file names (e.g. map file, output file) are derived from the first-specified project’s filename in the absence of other overriding options. Project files may contain blank lines and comment lines (beginning with a pound sign or an apostrophe). Project files may not be nested but an arguments file may be specified within a project file and vice versa. --strict={On|Off|Default} This option specifies whether strict syntax mode should be on, off or the default state for the selected language. See Section 2.3.1 for more information on the default state of this option for the supported language variants and the effects of strict mode. --string-size=<value> This option specifies the default string length, in decimal, for statically allocated strings in modules subsequently processed. It may be overridden in any module by the Option StringSize directive. See Section 2.3.1 for more information on how this value is used.