Не обязательно усложнять парсер. Можно усложнить сканер : ). После разбора знака минуса проверить, не идёт ли следом число. Если число не укладывается в верхний предел, но укладывается в нижний, то вернуть не минус с последующим числом, а плюс и отрицательное число.
Для этого в сканере придётся завести список опознанных, но не отправленных парсеру лексем.
А чем Вам не нравится такой способ?## Код:
```
i := j - 9223372036854775807 - 1
```
Ведь Вы же не расстраиваетесь по поводу того, что нельзя так:## Код:
```
i := j - 9223372036854775808 DIV 2 * 3
```
