   [lines]
   (lazy-seq
     (when-let [classfn (first (first lines))]
-      (if (#{:comment :code :testcode} classfn)
+      (if (#{:comment :code} classfn)
         (let [[same tail] (split-with #(= classfn (first %)) lines)
               text (string/join "\n" (map second same))]
           (cons [classfn text] (gather-lines- tail)))

                 ["-t" "--theme" "SyntaxHighlighter theme file"]
                 ["-l" "--language" "SyntaxHighlighter language"]
                 ["-s" "--stylesheet" "A stylesheet file to include"]
                 ["-t" "--testtree" "Test tree directory (no documentation)."]
                 ["-v" "--verbose" "Turn on verbose output"
                  :default false :flag true]
                 ["-h" "--help" "Show this help" :default false :flag true])]

        (let [m (partial ?match line)]
          (cond-let
            [text]
            (m test-begin)
            (do (reset! in-test? true)
              line)

            (m test-end)
            (do (reset! in-test? false)
              line)

            :else
            (if @in-test?
              (str *single-comment* line)
              (cond-let
                [text]
                (m include)
                (let [[path comment lang] (include-info text)]
                  (binding [*path* path]
                    (binding [*single-comment* comment]
                      (binding [*language* lang]
                        (write-production-file path outdir))))
                  line)

                (m required)
                (do (io/copy text (io/file outdir text))
                  line)

                :else line))))))))

(defn write-production-tree
  ""
  [in-paths outdir]
  (when (fs/exists? outdir)
    (fs/deltree outdir))
  (fs/mkdir outdir)
  (doseq [p in-paths]
    (write-production-file p outdir)))


; ## Commandline
