Making some progress on eliminating missing types
[trivial-gtk.git] / gir-generator.lisp
blob15dbfed7e824ce5ce40e46e74986b71e1bcc5ff2
2 (in-package :gir)
4 ;; actually generates the binding
6 (defun produce-binding ()
7 (load-gir-files)
8 (iterate
9 (for gir in *gir-files*)
10 (for repository in *repository-files*)
11 (with-open-file (outs
12 (merge-pathnames
13 (cl-fad::pathname-as-file (format nil "~A-types.lisp" (repository-name repository))))
14 :direction :output
15 :if-exists :supersede)
16 (parse-repository outs gir *gir-top-level-type-elements*)))
17 (iterate
18 (for gir in *gir-files*)
19 (for repository in *repository-files*)
20 (with-open-file (outs
21 (merge-pathnames
22 (cl-fad::pathname-as-file (format nil "~A-funcs.lisp" (repository-name repository))))
23 :direction :output
24 :if-exists :supersede)
25 (parse-repository outs gir *gir-top-level-function-elements*)))
26 (with-open-file (outs (merge-pathnames
27 (cl-fad::pathname-as-file (format nil "missing-types.lisp")))
28 :direction :output
29 :if-exists :supersede)
30 (format outs ";; the following types need to be defined in order to use this binding~%")
31 (iterate
32 (for unknown in *unknown-types*)
33 (format outs ";; ~T~A~%" unknown))
34 (format outs ";; thank you for your attention!~%")))