1 * Summary: Tree debugging APIs 2 * Description: Interfaces to a set of routines used for debugging the tree 3 * produced by the XML parser. 4 * 5 * Copy: See Copyright for the status of this software. 6 * 7 * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. 8 9 /if not defined(DEBUG_XML__) 10 /define DEBUG_XML__ 11 12 /include "libxmlrpg/xmlversion" 13 14 /if defined(LIBXML_DEBUG_ENABLED) 15 16 /include "libxmlrpg/xmlTypesC" 17 /include "libxmlrpg/tree" 18 /include "libxmlrpg/xpath" 19 20 * The standard Dump routines. 21 22 d xmlDebugDumpString... 23 d pr extproc('xmlDebugDumpString') 24 d output * value FILE * 25 d str * value options(*string) const xmlChar * 26 27 d xmlDebugDumpAttr... 28 d pr extproc('xmlDebugDumpAttr') 29 d output * value FILE * 30 d attr value like(xmlAttrPtr) 31 d depth value like(xmlCint) 32 33 d xmlDebugDumpAttrList... 34 d pr extproc('xmlDebugDumpAttrList') 35 d output * value FILE * 36 d attr value like(xmlAttrPtr) 37 d depth value like(xmlCint) 38 39 d xmlDebugDumpOneNode... 40 d pr extproc('xmlDebugDumpOneNode') 41 d output * value FILE * 42 d node value like(xmlNodePtr) 43 d depth value like(xmlCint) 44 45 d xmlDebugDumpNode... 46 d pr extproc('xmlDebugDumpNode') 47 d output * value FILE * 48 d node value like(xmlNodePtr) 49 d depth value like(xmlCint) 50 51 d xmlDebugDumpNodeList... 52 d pr extproc('xmlDebugDumpNodeList') 53 d output * value FILE * 54 d node value like(xmlNodePtr) 55 d depth value like(xmlCint) 56 57 d xmlDebugDumpDocumentHead... 58 d pr extproc('xmlDebugDumpDocumentHead') 59 d output * value FILE * 60 d doc value like(xmlDocPtr) 61 62 d xmlDebugDumpDocument... 63 d pr extproc('xmlDebugDumpDocument') 64 d output * value FILE * 65 d doc value like(xmlDocPtr) 66 67 d xmlDebugDumpDTD... 68 d pr extproc('xmlDebugDumpDTD') 69 d output * value FILE * 70 d dtd value like(xmlDtdPtr) 71 72 d xmlDebugDumpEntities... 73 d pr extproc('xmlDebugDumpEntities') 74 d output * value FILE * 75 d doc value like(xmlDocPtr) 76 77 **************************************************************** 78 * * 79 * Checking routines * 80 * * 81 **************************************************************** 82 83 d xmlDebugCheckDocument... 84 d pr extproc('xmlDebugCheckDocument') 85 d like(xmlCint) 86 d output * value FILE * 87 d doc value like(xmlDocPtr) 88 89 **************************************************************** 90 * * 91 * XML shell helpers * 92 * * 93 **************************************************************** 94 95 d xmlLsOneNode pr extproc('xmlLsOneNode') 96 d output * value FILE * 97 d node value like(xmlNodePtr) 98 99 d xmlLsCountNode pr extproc('xmlLsCountNode') 100 d like(xmlCint) 101 d node value like(xmlNodePtr) 102 103 d xmlBoolToText pr * extproc('xmlBoolToText') const char * 104 d boolval value like(xmlCint) 105 106 **************************************************************** 107 * * 108 * The XML shell related structures and functions * 109 * * 110 **************************************************************** 111 112 /if defined(LIBXML_XPATH_ENABLED) 113 114 * xmlShellReadlineFunc: 115 * @prompt: a string prompt 116 * 117 * This is a generic signature for the XML shell input function. 118 * 119 * Returns a string which will be freed by the Shell. 120 121 d xmlShellReadlineFunc... 122 d s * based(######typedef######) 123 d procptr 124 125 * xmlShellCtxt: 126 * 127 * A debugging shell context. 128 * TODO: add the defined function tables. 129 130 d xmlShellCtxtPtr... 131 d s * based(######typedef######) 132 133 d xmlSchellCtxt ds based(xmlShellCtxtPtr) 134 d align qualified 135 d filename * char * 136 d doc like(xmlDocPtr) 137 d node like(xmlNodePtr) 138 d pctxt like(xmlXPathContextPtr) 139 d loaded like(xmlCint) 140 d output * FILE * 141 d input like(xmlShellReadlineFunc) 142 143 * xmlShellCmd: 144 * @ctxt: a shell context 145 * @arg: a string argument 146 * @node: a first node 147 * @node2: a second node 148 * 149 * This is a generic signature for the XML shell functions. 150 * 151 * Returns an int, negative returns indicating errors. 152 153 d xmlShellCmd s * based(######typedef######) 154 d procptr 155 156 d xmlShellPrintXPathError... 157 d pr extproc('xmlShellPrintXPathError') 158 d errorType value like(xmlCint) 159 d arg * value options(*string) const char * 160 161 d xmlShellPrintXPathResult... 162 d pr extproc('xmlShellPrintXPathResult') 163 d list value like(xmlXPathObjectPtr) 164 165 d xmlShellList pr extproc('xmlShellList') 166 d like(xmlCint) 167 d ctxt value like(xmlShellCtxtPtr) 168 d arg * value options(*string) char * 169 d node value like(xmlNodePtr) 170 d node2 value like(xmlNodePtr) 171 172 d xmlShellBase pr extproc('xmlShellBase') 173 d like(xmlCint) 174 d ctxt value like(xmlShellCtxtPtr) 175 d arg * value options(*string) char * 176 d node value like(xmlNodePtr) 177 d node2 value like(xmlNodePtr) 178 179 d xmlShellDir pr extproc('xmlShellDir') 180 d like(xmlCint) 181 d ctxt value like(xmlShellCtxtPtr) 182 d arg * value options(*string) char * 183 d node value like(xmlNodePtr) 184 d node2 value like(xmlNodePtr) 185 186 d xmlShellLoad pr extproc('xmlShellLoad') 187 d like(xmlCint) 188 d ctxt value like(xmlShellCtxtPtr) 189 d filename * value options(*string) char * 190 d node value like(xmlNodePtr) 191 d node2 value like(xmlNodePtr) 192 193 /if defined(LIBXML_OUTPUT_ENABLED) 194 d xmlShellPrintNode... 195 d pr extproc('xmlShellPrintNode') 196 d node value like(xmlNodePtr) 197 198 d xmlShellCat pr extproc('xmlShellCat') 199 d like(xmlCint) 200 d ctxt value like(xmlShellCtxtPtr) 201 d arg * value options(*string) char * 202 d node value like(xmlNodePtr) 203 d node2 value like(xmlNodePtr) 204 205 d xmlShellWrite pr extproc('xmlShellWrite') 206 d like(xmlCint) 207 d ctxt value like(xmlShellCtxtPtr) 208 d filename * value options(*string) char * 209 d node value like(xmlNodePtr) 210 d node2 value like(xmlNodePtr) 211 212 d xmlShellSave pr extproc('xmlShellSave') 213 d like(xmlCint) 214 d ctxt value like(xmlShellCtxtPtr) 215 d filename * value options(*string) char * 216 d node value like(xmlNodePtr) 217 d node2 value like(xmlNodePtr) 218 /endif LIBXML_OUTPUT_ENABLD 219 220 /if defined(LIBXML_VALID_ENABLED) 221 d xmlShellValidate... 222 d pr extproc('xmlShellValidate') 223 d like(xmlCint) 224 d ctxt value like(xmlShellCtxtPtr) 225 d dtd * value options(*string) char * 226 d node value like(xmlNodePtr) 227 d node2 value like(xmlNodePtr) 228 /endif LIBXML_VALID_ENABLED 229 230 d xmlShellDu pr extproc('xmlShellDu') 231 d like(xmlCint) 232 d ctxt value like(xmlShellCtxtPtr) 233 d arg * value options(*string) char * 234 d tree value like(xmlNodePtr) 235 d node2 value like(xmlNodePtr) 236 237 d xmlShellPwd pr extproc('xmlShellPwd') 238 d like(xmlCint) 239 d ctxt value like(xmlShellCtxtPtr) 240 d buffer * value options(*string) char * 241 d node value like(xmlNodePtr) 242 d node2 value like(xmlNodePtr) 243 244 * The Shell interface. 245 246 d xmlShell pr extproc('xmlShell') 247 d doc value like(xmlDocPtr) 248 d filename * value options(*string) char * 249 d input value like(xmlShellReadlineFunc) 250 d output * value FILE * 251 252 /endif LIBXML_XPATH_ENABLED 253 /endif LIBXML_DEBUG_ENABLED 254 /endif DEBUG_XML__ 255