Handle hop with constant negative or zero argument
Handle hop with constant negative or zero argument

hop 0 is a no-op, so warn about it and convert it to `true` in the
analyser.

hop with a negative argument has always been documented to signal f, but
all the current backends actually move the cursor in the opposite
direction.  We've decided to make it work as documented, so warn about
hop with a constant negative argument and convert it to `false` in
the analyser.  That way backends can special case hop by a constant
amount without having to worry about negative constant hop.

snowballstem/snowball,snowballstem/snowball,snowballstem/snowball,snowballstem/snowball,snowballstem/snowball,snowballstem/snowball,snowballstem/snowball,snowballstem/snowball