def _add_page(self, page):
self._pages.append(page)
- def add_namespace(self, namespace):
- self._namespace = namespace
- self._formatter.set_namespace(namespace)
+ def add_transformer(self, transformer):
+ self._transformer = transformer
+
+ self._namespace = self._transformer._namespace
+ self._formatter.set_namespace(self._namespace)
- for name, node in namespace.iteritems():
+ for name, node in self._namespace.iteritems():
self._add_node(node, name)
def _add_node(self, node, name):
import optparse
from .docbookwriter import DocBookWriter
-from .girparser import GIRParser
+from .transformer import Transformer
class GIDocGenerator(object):
def parse(self, filename):
- self.parser = GIRParser()
- self.parser.parse(filename)
+ self.transformer = Transformer.parse_from_gir(filename)
def generate(self, writer, output):
- ns = self.parser.get_namespace()
- writer.add_namespace(ns)
+ writer.add_transformer(self.transformer)
writer.write(output)
def doc_main(args):
% (girname, searchdirs))
sys.exit(1)
+ @staticmethod
+ def parse_from_gir(filename):
+ transformer = Transformer(None)
+ transformer._parse_include(filename)
+ parser = transformer._cachestore.load(filename)
+ transformer._namespace = parser.get_namespace()
+ del transformer._includes[transformer._namespace.name]
+ return transformer
+
def _parse_include(self, filename, uninstalled=False):
parser = None
if self._cachestore is not None:
import os
import sys
+import __builtin__
+
+__builtin__.__dict__['DATADIR'] = "@datarootdir@"
if 'GI_SCANNER_DEBUG' in os.environ:
def on_exception(exctype, value, tb):