Parse Unicode code points into a CST.
(parse-from-codepoints+ codepoints) → (mv tree lexemes)
Lexes, tokenizes, and parses a Leo source file expressed
as a list of Unicode code points. Returns a
If any step fails, returns a reserr. The parse consumes all the bytes or a reserr is returned.
Function:
(defun parse-from-codepoints+ (codepoints) (declare (xargs :guard (nat-listp codepoints))) (let ((__function__ 'parse-from-codepoints+)) (declare (ignorable __function__)) (b* ((lexemes-or-err (lexemize-leo codepoints))) (lexemes-to-cst+ "file" lexemes-or-err))))
Theorem:
(defthm tree-resultp-of-parse-from-codepoints+.tree (b* (((mv ?tree ?lexemes) (parse-from-codepoints+ codepoints))) (abnf::tree-resultp tree)) :rule-classes :rewrite)
Theorem:
(defthm tree-listp-of-parse-from-codepoints+.lexemes (b* (((mv ?tree ?lexemes) (parse-from-codepoints+ codepoints))) (abnf::tree-listp lexemes)) :rule-classes :rewrite)