Checks if THING is a JSON AST outer struct declaration object member, including the duplicate name.
(jsonast-looks-like-struct-declaration-p thing) → yes/no
Function:
(defun jsonast-looks-like-struct-declaration-p (thing) (declare (xargs :guard (json::memberp thing))) (let ((__function__ 'jsonast-looks-like-struct-declaration-p)) (declare (ignorable __function__)) (b* (((unless (json::memberp thing)) nil) (outer-struct-mangled-name (json::member->name thing)) (inner-struct-val (json::member->value thing)) ((json::pattern (:object (:member "identifier" (:string inner-struct-mangled-name)) (:member "members" (:array *..)) (:member "is_record" true-or-false))) inner-struct-val)) (and json::match? (equal outer-struct-mangled-name inner-struct-mangled-name)))))