Progress report would say that so far this has been done:
- procedure parameter range - function `Return' value range - `Include', `Exclude' - `Inc', `Dec' - `and', `or', `xor', `shl', `shr' as procedure - sets (assignment to a set when expression contains elements out of set's range) - Val (2nd parm)
It can be seen here: http://www.alu.hr/~mtodorov/pascal/rngv0.02.tar.gz (updated)
Comments welcome, if you have time.
Remaining is:
- `Pack', `Unpack' - `BlockRead', `BlockWrite' 4th parameter - `Val' (3rd parm) (-- must dig legal errorcodes out of source to get something out of range) - conformant arrays (index type in conformant array's formal parameter list is a subrange) - `New' with variant records - initialization of types, variables and typed constants
If we can think of more cases where range checking occurs, even better.
Yet, frankly, I'm not that deep into internals.
Cheers, Mirsad