6.4. The Trouble Begins There is one very big problem with extensions. If you want to be able to turn them on and off during execution, then your program has to be a bit careful. More and more REXX interpreters (including Regina seem to do a parsing when the interpreter is started. The “old” way was to postpone the parsing of each clause until it was actually executed. This leads to the problem mentioned. Suppose you want to use an extension that allows a slightly different syntax, for the sake of the argument, let us assume that you allow an expression after the SELECT keyword. Also assume that this extension is only allowed in extended more, not in “standard mode”. However, since Regina parses the source code only once (typically at the starts of the program), the problem is a catch- 22: the extension can only be turned on after parsing the program, but it is needed before parsing. This also applies to a lot of other REXX interpreters, and all REXX compilers and preprocessors. If the extension is not turned on during parsing, it will generate a syntax error, but the parsing is all done before the first clause is executed. Consequently, this extension can not be turned on during execution, it has to be set before the parsing starts. Therefore, there are two alternative ways to invoke a set of extensions. · It can be invoked by using the -e option to the interpreter. The word following the option is the extension or standard to invoke. Multiple -e options can be specified. · It can be invoked by setting the environment variable REXXEXTS, which must be a string of the same format as the parameters to the OPTIONS clause.
PREV NEXT