GrammarReaderController controller,
ExpressionPool pool ) {
try {
DTDReader reader = new DTDReader(controller,pool);
DTDParser parser = new DTDParser();
parser.setDtdHandler(reader);
parser.setEntityResolver(controller);
parser.parse(source);
return reader.getResult();
} catch( SAXParseException e ) {
return null; // this error was already handled by GrammarReaderController
} catch( Exception e ) {