An ambiguous construct was detected.
#2500 Compile-time warning
An ambiguous construct was detected.
Additional Information
The current comparison uses string comparison, but all the entries
could be numeric values.
or
In a REOPEN action, the BREAK-WIDTH sequence could be a modifier or
a separate declaration. If it's a modifier, preceding it with the
WITH keyword will prevent this message. If it's a declaration, it
must be moved somewhere else so it doesn't immediately follow a
dynamic repeat action. It is assumed to be a modifier.
Explanation
The first problem occurs in code such as the following:
SET STREAM s TO "6"
DO WHEN "3" < "04" < s
All the values in this test could be interpreted as either numbers
or strings. As numbers, the test would be true. As strings, false
(because the "3" in the first value is greater than the "0" in the
second value). By default, the test does string comparison. To coerce
the test to a numeric comparison, coerce one of the strings to a
number. The simplest way is to do:
SET STREAM s TO "6"
DO WHEN +"3" < "04" < s
The REOPEN problem occurs in code such as the following:
DOWN-TRANSLATE
GLOBAL STREAM s
DOCUMENT-START
OPEN s AS BUFFER
PUT (s AND #MAIN-OUTPUT) "abcd%/%_efgh%/%_ijkl%/%_mnop%n"
CLOSE s
REOPEN s
BREAK-WIDTH 5 50
REPLACEMENT-BREAK "%_" "%n"
This code will not have the desired effect: the BREAK-WIDTH
declaration is actually a modifier applied to the REOPEN action. To
get it to affect the #MAIN-OUTPUT stream, you could put the
REPLACEMENT-BREAK declaration between the end of the DOCUMENT-START
rule and the BREAK-WIDTH declaration.