| | |
| | |
| | |
| |
|
| | import re |
| |
|
| | moduleMap = { |
| | 'HTMLtree': 'HTML', |
| | 'HTMLparser': 'HTML', |
| | 'c14n': 'C14N', |
| | 'catalog': 'CATALOG', |
| | 'debugXML': 'DEBUG', |
| | 'nanohttp': 'HTTP', |
| | 'pattern': 'PATTERN', |
| | 'relaxng': 'RELAXNG', |
| | 'schemasInternals': 'SCHEMAS', |
| | 'schematron': 'SCHEMATRON', |
| | 'xinclude': 'XINCLUDE', |
| | 'xlink': 'XPTR', |
| | 'xmlautomata': 'REGEXP', |
| | 'xmlmodule': 'MODULES', |
| | 'xmlreader': 'READER', |
| | 'xmlregexp': 'REGEXP', |
| | 'xmlsave': 'OUTPUT', |
| | 'xmlschemas': 'SCHEMAS', |
| | 'xmlschemastypes': 'SCHEMAS', |
| | 'xmlwriter': 'WRITER', |
| | 'xpath': 'XPATH', |
| | 'xpathInternals': 'XPATH', |
| | 'xpointer': 'XPTR', |
| | } |
| |
|
| | symbolMap1 = { |
| | |
| | 'xmlValidateNCName': '', |
| | 'xmlValidateNMToken': '', |
| | 'xmlValidateName': '', |
| | 'xmlValidateQName': '', |
| |
|
| | 'htmlDefaultSAXHandlerInit': 'HTML', |
| | 'xmlSAX2InitHtmlDefaultSAXHandler': 'HTML', |
| |
|
| | 'xmlRegisterHTTPPostCallbacks': 'HTTP', |
| |
|
| | '__xmlOutputBufferCreateFilename': 'OUTPUT', |
| | 'xmlAttrSerializeTxtContent': 'OUTPUT', |
| | 'xmlUTF8ToIsolat1': 'OUTPUT', |
| | 'xmlSprintfElementContent': 'OUTPUT', |
| |
|
| | 'xmlCreatePushParserCtxt': 'PUSH', |
| | 'xmlParseChunk': 'PUSH', |
| |
|
| | 'xmlParseBalancedChunkMemory': 'SAX1', |
| | 'xmlParseBalancedChunkMemoryRecover': 'SAX1', |
| | 'xmlParseDoc': 'SAX1', |
| | 'xmlParseEntity': 'SAX1', |
| | 'xmlParseExternalEntity': 'SAX1', |
| | 'xmlParseFile': 'SAX1', |
| | 'xmlParseMemory': 'SAX1', |
| | 'xmlSAXDefaultVersion': 'SAX1', |
| | 'xmlSetupParserForBuffer': 'SAX1', |
| |
|
| | 'xmlCtxtGetValidCtxt': 'VALID', |
| | 'xmlFreeValidCtxt': 'VALID', |
| | 'xmlNewValidCtxt': 'VALID', |
| |
|
| | 'xmlCatalogConvert': 'SGML_CATALOG', |
| | 'xmlConvertSGMLCatalog': 'SGML_CATALOG', |
| | 'xmlLoadSGMLSuperCatalog': 'SGML_CATALOG', |
| | } |
| |
|
| | symbolMap2 = { |
| | |
| | 'xmlOutputBufferCreateFilenameDefault': '', |
| |
|
| | 'xmlXPathDebugDumpCompExpr': 'DEBUG', |
| | 'xmlXPathDebugDumpObject': 'DEBUG', |
| | 'xmlSchemaDump': 'DEBUG', |
| | 'xmlRelaxNGDump': 'DEBUG', |
| |
|
| | 'xmlACatalogDump': 'OUTPUT', |
| | 'xmlCatalogDump': 'OUTPUT', |
| | 'xmlIOHTTPOpenW': 'OUTPUT', |
| | 'xmlNanoHTTPSave': 'OUTPUT', |
| | 'xmlRegisterHTTPPostCallbacks': 'OUTPUT', |
| | 'xmlRelaxNGDumpTree': 'OUTPUT', |
| |
|
| | 'xmlTextReaderPreservePattern': 'PATTERN', |
| |
|
| | 'htmlCreatePushParserCtxt': 'PUSH', |
| | 'htmlParseChunk': 'PUSH', |
| |
|
| | 'xmlValidBuildContentModel': 'REGEXP', |
| | 'xmlValidatePopElement': 'REGEXP', |
| | 'xmlValidatePushCData': 'REGEXP', |
| | 'xmlValidatePushElement': 'REGEXP', |
| |
|
| | 'xmlTextReaderRelaxNGSetSchema': 'RELAXNG', |
| | 'xmlTextReaderRelaxNGValidate': 'RELAXNG', |
| | 'xmlTextReaderRelaxNGValidateCtxt': 'RELAXNG', |
| |
|
| | 'xmlTextReaderSchemaValidate': 'SCHEMAS', |
| | 'xmlTextReaderSchemaValidateCtxt': 'SCHEMAS', |
| | 'xmlTextReaderSetSchema': 'SCHEMAS', |
| |
|
| | 'xmlTextReaderReadInnerXml': 'WRITER', |
| | 'xmlTextReaderReadOuterXml': 'WRITER', |
| | } |
| |
|
| | outputRegex = '|'.join(( |
| | '^(html|xml(Buf)?)(Doc(Content|Format)?|Elem|Node)Dump', |
| | '^(html|xml)Save(Format)?File', |
| | '^xmlDump.*(Decl|Table)', |
| | '^xml(Alloc)?OutputBuffer', |
| | '^xml.*OutputCallbacks', |
| | )) |
| |
|
| | def findModules(filename, symbol): |
| | module1 = symbolMap1.get(symbol) |
| |
|
| | if module1 is None: |
| | module1 = moduleMap.get(filename) |
| |
|
| | if module1 is None: |
| | if re.search('^xml(Ctxt)?Valid|Parse(DTD|Dtd)', symbol): |
| | module1 = 'VALID' |
| | elif re.search('^xml(Recover|SAX(User)?Parse)', symbol): |
| | module1 = 'SAX1' |
| | elif re.search('^xmlIOHTTP', symbol): |
| | module1 = 'HTTP' |
| |
|
| | module2 = symbolMap2.get(symbol) |
| |
|
| | if module2 is None: |
| | if re.search(outputRegex, symbol): |
| | if module1 is None: |
| | module1 = 'OUTPUT' |
| | else: |
| | module2 = 'OUTPUT' |
| |
|
| | if module1 is None: |
| | module1 = '' |
| | if module2 is None: |
| | module2 = '' |
| |
|
| | return module1, module2 |
| |
|