> -- arisu писал(а):
> я не очень понял, подколка ли это или нет.  вообще, у меня переполнение не проверяется в том числе и парзером, и сворачивалкой констант (потому что это делается тем же `resolveExpr()` что и весь остальной код).впрочем, даже если я и добавлю эти проверки, то подобное всё равно будет разрешено. по той логике, что INTEGER — это 32-bit 2-complement signed. мы это знаем, компилятор это знает, CPU это знает — и нет смысла притворяться, что оно не так. соответственно, нет и смысла отвергать альтернативные формы записи этих битов.а в CP2 хексы вообще парзятся в LONGINT, без вариантов. диапазон проверяется только при присваивании, и — насколько помню — [MININT…MAXUINT]. как раз чтобы подобное работало.я б, может, тоже проверял, но в языке у меня лонгинтов нет в принципе, а в крестах нормально проверить переполнение нельзя. я, конечно, использую "-fwrapv", но городить проверки ручками мне лень.
В BlackBox и вProject Oberonэто компилируется, но если заменить 0E0000000H на 3758096384, то уже нет.
В voc/ofront — не компилируется.