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.