Check if a token is a given punctuator.
(token-punctuatorp token punctuator) → yes/no
This operates on an optional token, since we normally call this function on an optional token.
Function:
(defun token-punctuatorp (token punctuator) (declare (xargs :guard (and (token-optionp token) (stringp punctuator)))) (and token (token-case token :punctuator) (equal (the string (token-punctuator->unwrap token)) (the string punctuator))))
Theorem:
(defthm booleanp-of-token-punctuatorp (b* ((yes/no (token-punctuatorp token punctuator))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm token-punctuatorp-of-token-option-fix-token (equal (token-punctuatorp (token-option-fix token) punctuator) (token-punctuatorp token punctuator)))
Theorem:
(defthm token-punctuatorp-token-option-equiv-congruence-on-token (implies (token-option-equiv token token-equiv) (equal (token-punctuatorp token punctuator) (token-punctuatorp token-equiv punctuator))) :rule-classes :congruence)
Theorem:
(defthm non-nil-when-token-punctuatorp (implies (token-punctuatorp token punctuator) token) :rule-classes :forward-chaining)