An actual running implementation, which makes code that compiles.
[sod] / src / sod.asd
index 0b7f6a7..e127819 100644 (file)
@@ -63,6 +63,7 @@
 
   :components
   ((:file "utilities")
+   (:file "optparse" :depends-on ("utilities"))
 
    ;; Parser equipment.  This is way more elaborate than it needs to be, but
    ;; it was interesting, and it may well get split off into a separate
@@ -97,7 +98,7 @@
      (:file "scanner-context-impl" :depends-on
            ("parser-proto" "scanner-proto"))))
 
-   (:file "package" :depends-on ("parser"))
+   (:file "package" :depends-on ("utilities" "optparse" "parser"))
 
    ;; Lexical analysis.
    (:file "lexer-proto" :depends-on ("package" "parser"))
    ;; C type representation protocol.
    (:file "c-types-proto" :depends-on ("package"))
    (:file "c-types-impl" :depends-on ("c-types-proto"))
-   (:file "c-types-parse" :depends-on ("c-types-proto" "fragment-parse"))
+   (:file "c-types-parse" :depends-on
+         ("c-types-proto" "c-types-class-impl" "fragment-parse"))
 
    ;; Property set protocol.
    (:file "pset-proto" :depends-on ("package"))
    (:file "pset-parse" :depends-on ("pset-proto" "lexer-proto"))
 
    ;; Code generation protocol.
-   (:file "codegen-proto" :depends-on ("package"))
+   (:file "codegen-proto" :depends-on ("module-proto"))
    (:file "codegen-impl" :depends-on ("codegen-proto"))
 
    ;; Modules.
    (:file "module-proto" :depends-on ("package"))
    (:file "module-impl" :depends-on
          ("module-proto" "pset-proto" "c-types-class-impl" "builtin"))
-   (:file "builtin" :depends-on ("module-proto" "pset-proto" "classes"
-                                "c-types-impl" "c-types-class-impl"))
+   (:file "builtin" :depends-on
+         ("module-proto" "pset-proto" "c-types-impl" "c-types-class-impl"
+          "classes" "class-layout-proto"))
    (:file "module-parse" :depends-on
-         ("module-impl" "lexer-proto" "fragment-parse"))
+         ("class-make-proto" "class-finalize-proto"
+          "fragment-parse" "lexer-proto" "module-impl"))
    (:file "module-output" :depends-on ("module-impl" "output-proto"))
 
    ;; Output.
    (:file "method-impl" :depends-on ("method-proto"))
 
    ;; Class output.
-   (:file "class-output" :depends-on ("output-proto" "classes"))))
+   (:file "class-output" :depends-on
+         ("classes" "class-layout-proto" "class-layout-impl"
+          "method-proto" "method-impl" "output-proto"))
+
+   ;; User interface.
+   (:file "frontend" :depends-on
+         ("optparse" "module-proto" "module-parse"))))
 
 ;;;--------------------------------------------------------------------------
 ;;; Testing.
 
 (defmethod perform ((op test-op) (component (eql (find-system "sod"))))
+  (declare (ignore op component))
   (operate 'test-op "sod-test" :force t))
 
 ;;;----- That's all, folks --------------------------------------------------