The new pre-processor was not recognising the '!' character as a potential system keyword.
Previous Release Behavior
The pre-processor has to pre-parse the source code and make it ready for the main compiler. In this case it wasn't recognising the '!' character as a potential system keyword, and only recognised it as either a comment or a maths symbol
Current Release Behavior
The anomaly is fixed and the example shown below now compiles.
This example shows 2 rather strange anomalies in the multi-value language at work.
First anomaly. The '!' symbol at the start of a statement means it is a comment that follows until end of line. However the '!' symbol anywhere else is a logical OR operator.
This first anomaly is what created the problem when trying to fix the second anomaly, whereby the '<' and '>' also have dual meaning. In one case they can be attribute extraction such as A = B<2> , in the second case they can mean less-than or greater-than, as in IF ANS < 1 ! ANS > 10 THEN DEBUG. It is while trying to resolve this anomaly that the pre-processor got confused with the meaning of '!', the first anomaly.
LTMP=125 IF LTMP<32 ! (LTMP>126 & LTMP LT 255) THEN CRT 'Hello'