Map a token that is a storage class specifier to the correspoding storage class specifier.
(token-to-storage-class-specifier token) → stor-spec
Function:
(defun token-to-storage-class-specifier (token) (declare (xargs :guard (tokenp token))) (declare (xargs :guard (token-storage-class-specifier-p token))) (let ((__function__ 'token-to-storage-class-specifier)) (declare (ignorable __function__)) (cond ((equal token (token-keyword "typedef")) (stor-spec-typedef)) ((equal token (token-keyword "extern")) (stor-spec-extern)) ((equal token (token-keyword "static")) (stor-spec-static)) ((equal token (token-keyword "_Thread_local")) (stor-spec-threadloc)) ((equal token (token-keyword "auto")) (stor-spec-auto)) ((equal token (token-keyword "register")) (stor-spec-register)) (t (prog2$ (impossible) (irr-stor-spec))))))
Theorem:
(defthm stor-specp-of-token-to-storage-class-specifier (b* ((stor-spec (token-to-storage-class-specifier token))) (stor-specp stor-spec)) :rule-classes :rewrite)