Ну как побочный... там целая специальная ветка для этого яичка, хоть и не сложная:
## Код:
```
ELSIF (x.class = Nconst) & (f = String8) & (p.typ.form = Int32) & (x.conval.intval2 <= 5) THEN
   i := 0; n := 0;
   WHILE i < x.conval.intval2 - 1 DO n := 256 * n + ORD(x.conval.ext[i]); INC(i) END;
   x := NewIntConst(n)
ELSIF
```


Полезность не могу понять этой фичи. Тем более что сформировать осмысленную строку-константу с  значениями байтов меньше пробела - невозможно жеж в синтаксисе...

> -- Илья Ермаков писал(а):
> VAL - трактовать последовательность байт как другой тип.
Как раз пропоследовательность байттам не указано, хотя именно так и сделано в большинстве случаев; но как видно во фрагменте, в случае со строкой-константой реализовано по-другому, и результат эквивалентен "последовательности байт" big-endian: первый байт становится старшим. Т.е. тут некая "человеческая запись" интерпретируется: в строке сначала идут самые весомые циферки.

И, кстати, передать строку длиннее 4 литер, или с не-аски литерами - ошибка компиляции. Как ни крути, выделяют этот особый случай; другие строковые литералы VAL не принимает (кроме случаев java, но в этом я не разобрался).