Attempts to eat a
(parse-continue-statement tokens) → (mv result-ast tokens-after-statement)
Function:
(defun parse-continue-statement (tokens) (declare (xargs :guard (abnf::tree-listp tokens))) (let ((__function__ 'parse-continue-statement)) (declare (ignorable __function__)) (b* (((mv statement-or-nil tokens-after-statement) (parse-keyword "continue" tokens))) (if (or (not (statementp statement-or-nil)) (reserrp tokens-after-statement)) (mv (reserrf "no continue statement here") (abnf::tree-list-fix tokens)) (mv statement-or-nil (abnf::tree-list-fix tokens-after-statement))))))
Theorem:
(defthm statement-resultp-of-parse-continue-statement.result-ast (b* (((mv ?result-ast ?tokens-after-statement) (parse-continue-statement tokens))) (statement-resultp result-ast)) :rule-classes :rewrite)
Theorem:
(defthm tree-listp-of-parse-continue-statement.tokens-after-statement (b* (((mv ?result-ast ?tokens-after-statement) (parse-continue-statement tokens))) (abnf::tree-listp tokens-after-statement)) :rule-classes :rewrite)
Theorem:
(defthm len-of-parse-continue-statement-< (b* (((mv ?result-ast ?tokens-after-statement) (parse-continue-statement tokens))) (implies (not (reserrp result-ast)) (< (len tokens-after-statement) (len tokens)))) :rule-classes :linear)