Fixnum optimized version of lc-nthcdr-str.
(lc-nthcdr-str-fast n x pos xl line col) → (mv * * *)
Function:
(defun lc-nthcdr-str-fast (n x pos xl line col) (declare (xargs :guard (and (natp n) (stringp x) (natp pos) (natp line) (natp col) (equal xl (length x))))) (declare (type (unsigned-byte 60) pos xl line col n) (type string x)) (declare (xargs :guard (and (<= pos xl) (<= line pos) (<= col pos)))) (let ((__function__ 'lc-nthcdr-str-fast)) (declare (ignorable __function__)) (mbe :logic (lc-nthcdr-str n x pos xl line col) :exec (b* (((when (or (zp n) (eql pos xl))) (mv pos line col)) ((the character char1) (char x pos)) ((the (unsigned-byte 60) n) (- n 1)) ((the (unsigned-byte 60) pos) (+ 1 pos))) (if (eql char1 #\Newline) (lc-nthcdr-str-fast n x pos xl (the (unsigned-byte 60) (+ 1 line)) 0) (lc-nthcdr-str-fast n x pos xl line (the (unsigned-byte 60) (+ 1 col))))))))