; generate declarations for enumerations (in-package "VERRAZANO") ; for enumerations, output defcenum declaration (generate-for ((par namespace-type) (edg defines) (tgt enum-type) bst) (let ((enum-name (named-name tgt))) (define-symbol enum-name "enum" (list par edg tgt) bst) `("cffi:defcenum" ,enum-name ,@(remove-duplicates (collect-output tgt bst 'allocates) :key #'cadr :test #'equal)))) ; for enumeration values, output tuple (generate-for ((par enum-type) (edg allocates) (tgt qualified-type) bst) `(,(concatenate 'string ":" (named-name edg)) ,(allocates-edge-value edg)))