view trunk/src/docgen/tests/listing.d @ 453:4e5b35df3060

Parsing bugfixes, cleaned up imports.
author Jari-Matti M?kel? <jmjm@iki.fi>
date Thu, 25 Oct 2007 01:08:38 +0300
parents f658ec4a15dd
children dbdc9fa5d479
line wrap: on
line source

/**
 * Author: Jari-Matti Mäkelä
 * License: GPL3
 */
module docgen.tests.listing;

import docgen.misc.parser;
import docgen.tests.common;
import docgen.sourcelisting.writers;
import docgen.document.writers;
import tango.io.FileConduit;
import tango.text.Util;

// doc template
//@unittest
void listing1() {
  auto gen = new TestDocGenerator;
  gen.options.docFormat = DocFormat.LaTeX;
  auto fname = "files.tex";
  
  auto ddf = new DefaultDocumentWriterFactory(gen);
  auto dlwf = new DefaultListingWriterFactory(gen);
  auto file = new FileConduit("docgen/teststuff/" ~ fname, FileConduit.WriteCreate);
  

  Module[] modules;

  Parser.loadModules(
    [ "c" ], [ "docgen/teststuff/" ],
    null, true, -1,
    (char[] fqn, char[] path, Module m) {},
    (Module imported, Module importer) {},
    modules
  );
  
  foreach(mod; modules) {
    auto dstFname = replace(mod.moduleFQN.dup, '.', '_');
    
    auto srcFile = new FileConduit(mod.filePath);
    auto dstFile = new FileConduit("docgen/teststuff/_" ~ dstFname ~ ".d", FileConduit.WriteCreate);
    auto writer = dlwf.createListingWriter( ddf.createDocumentWriter( [ file ] ) );
    
    writer.generateListing(srcFile, dstFile, mod.moduleFQN);

    srcFile.close();
    dstFile.close();
  }
  
  file.close();
}