Unicode ILF Literals
The ILF editor and compiler have been reworked to support the following Unicode literals.
Overview
ILF Literal values are stored in the STMT file as RAW Alpha character.
An ILF literal may include Unicode escape sequences provided that the other operand is a UNICODE or NATIONAL alpha field.
Unicode escape sequences are not supported if the other operand is a RAW alpha field or a group header.
Supported Unicode escape sequences where '#' is a hex-digit:
- \u#### (4 hex digits)
- \U######## (8 hex digits)
The process compiler will compile literals to optimize runtime processing using these rules:
- If the field type of the other operand is Unicode or National the literal will compile to a UTF-32 literal.
- If the field type of the other operand is Raw the literal will be compiled to a RAW literal.
Test Plan:
Encoding Types:
Test Requirements:
- Are unicode literals interpreted as characters when the left operand is a RAW alpha?
- Are unicode literals treated correctly when the left operand is UNICODE and NATIONAL?
BUGS
- Entering invalid literals causes process not to run (first attempt) or Appx to crash (second attempt). Invalid literal examples: \U with less than 8 hex digits, or \u with non hex digits. * FIXED * April 5 engine. Invalid literals create compile time errors.