diff options
Diffstat (limited to 'cmamut.lisp')
-rw-r--r-- | cmamut.lisp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/cmamut.lisp b/cmamut.lisp index 6f20d3e..55784cc 100644 --- a/cmamut.lisp +++ b/cmamut.lisp @@ -181,6 +181,7 @@ (let ((tag (gethash "tag" (aref spec i)))) (cond ((string= tag "function") (push (aref spec i) (spec-functions s))) + ((string= tag "typedef") (let ((internal-type (gethash "type" (aref spec i)))) (cond ((string= (gethash "tag" internal-type) "struct") @@ -191,8 +192,9 @@ (json:from-string (format nil "{ \"tag\": \":struct\", \"name\": ~s }" - (gethash "name" (aref spec i)))))) - (t (push (aref spec i) (spec-typedefs s)))))) + (gethash "name" (aref spec i))))))) + (push (aref spec i) (spec-typedefs s)))) + ((string= tag "struct") (push (aref spec i) (spec-structs s))) ((string= tag "enum") @@ -200,7 +202,7 @@ ((string= tag "union") (push (aref spec i) (spec-unions s))) (t)))) - s)) + s)) (defun codegen (spec) (clrhash enum-references) |