Map a token that is a storage class specifier to the correspoding storage class specifier.
(token-to-storage-class-specifier token) → stoclaspec
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")) (stoclaspec-typedef)) ((equal token (token-keyword "extern")) (stoclaspec-extern)) ((equal token (token-keyword "static")) (stoclaspec-static)) ((equal token (token-keyword "_Thread_local")) (stoclaspec-threadloc)) ((equal token (token-keyword "auto")) (stoclaspec-auto)) ((equal token (token-keyword "register")) (stoclaspec-register)) (t (prog2$ (impossible) (irr-stoclaspec))))))
Theorem:
(defthm stoclaspecp-of-token-to-storage-class-specifier (b* ((stoclaspec (token-to-storage-class-specifier token))) (stoclaspecp stoclaspec)) :rule-classes :rewrite)