Причина, по которой это трудно сделать, состоит в том, что Inc (x), Dec (x) и другие, такие как Pred (x) и Succ (x), на самом деле генерируются компилятором и, если хотите, просто FunctionСинтаксис стиля сахар по сравнению с внутренней операцией компилятора.
Вы можете, как некоторые люди предлагают, сделать это с перегрузкой, частично с умным использованием обобщений, а некоторые с вариантами.Но ничто не будет так удобно для эмуляции этих функций или точно так же функционально.
Компилятор реализует Inc (), например, для всех упорядоченных типов, включая Enums, Integer и subranges для этих типов (сейчасдовольно неясная особенность классического «виртского» паскаля заключается в том, что у всех типов могут быть определены поддиапазоны для этих типов).
Если вы на самом деле рассказали нам больше о том, что вы делали, возможно, можно было бы подойти ближе.Но общий ответ: нет, даже нет исходного кода для Inc и Dec, потому что это примитивы компилятора.Если для функции Inc был исходный код RTL, вы можете посмотреть на него и адаптировать его.
inc (x) может быть определено как x: = Succ (x), но как тогда определить Succ (x)?Как х: = Inc (х)?Ты видишь.В какой-то момент, компилятор "магия" вступает во владение.