I don't understand, in Pascal standard iso 7185, http://www.pascal-central.com/docs/iso7185.pdf, on 6.7.2.2 Arithmetic operators section,
it clearly says that, "A term of the form i mod j shall be an error if j is zero or negative ; otherwise, the value of i mod j shall be that value of (i-(k*j)) for integral k such that 0 < = i mod j < j."
But, when i try in free pascal compiler 3.0 , writeln(-5 mod 3); it produce a negative number "-2" instead of "1", does it violates the pascal standard?