(vl-read-string echars st) → (mv str? prefix remainder)
Function:
(defun vl-read-string (echars st) (declare (xargs :guard (and (and (vl-echarlist-p echars) (consp echars) (equal (vl-echar->char (car echars)) #\")) (vl-lexstate-p st)))) (let ((__function__ 'vl-read-string)) (declare (ignorable __function__)) (b* (((mv err eacc vacc remainder) (vl-read-string-aux (cdr echars) nil nil st)) ((when err) (mv (cw "Lexer error (~s0) while reading string: ~s1.~%" (vl-location-string (vl-echar->loc (car echars))) err) nil echars))) (mv (str::rchars-to-string vacc) (cons (car echars) (reverse eacc)) remainder))))
Theorem:
(defthm return-type-of-vl-read-string.str? (b* (((mv ?str? ?prefix ?remainder) (vl-read-string echars st))) (equal (stringp str?) (if str? t nil))) :rule-classes :rewrite)
Theorem:
(defthm return-type-of-vl-read-string.prefix (b* (((mv ?str? ?prefix ?remainder) (vl-read-string echars st))) (iff prefix str?)) :rule-classes :rewrite)