úÎnÚf=x      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwBasic XML types. provisional'Iavor S. Diatchki <diatchki@galois.com> XML qualified names \As-is character data; pretty printer passes it along without any escaping or CDATA wrap-up. 6Unescaped character data; pretty printer embeds it in < ![CDATA[.. 0Ordinary character data; pretty printer escapes &, < etc.  XML CData XML attributes  XML elements  XML content A line is an Integer  Blank names  Blank cdata Blank elements        provisional'Iavor S. Diatchki <diatchki@galois.com> 5Get the text value of an XML element. This function @ ignores non-text elements, and concatenates all text elements. !5Select only the elements from a list of XML content. "(Select only the elements from a parent. #1Select only the text from a list of XML content. $1Find all immediate children with the given name. %5Filter all immediate children wrt a given predicate. &FFilter all immediate children wrt a given predicate over their names. '-Find an immediate child with the given name. (-Find an immediate child with the given name. )8Find an immediate child with name matching a predicate. *AFind the left-most occurrence of an element matching given name. +DFilter the left-most occurrence of an element wrt. given predicate. ,DFilter the left-most occurrence of an element wrt. given predicate. -.Find all non-nested occurances of an element. 8 (i.e., once we have found an element, we do not search & for more occurances among the element' s children). .DFind all non-nested occurrences of an element wrt. given predicate. 8 (i.e., once we have found an element, we do not search & for more occurances among the element' s children). /QFind all non-nested occurences of an element wrt a predicate over element names. 8 (i.e., once we have found an element, we do not search & for more occurances among the element' s children). 0"Lookup the value of an attribute. 1!Lookup attribute name from list.  !"#$%&'()*+,-./01 !"#$%&'()*+,-./01 !"#$%&'()*+,-./01,Output handling for the lightweight XML lib. provisional'Iavor S. Diatchki <diatchki@galois.com>2The XML 1.0 header 32Pretty printing renders XML documents faithfully, 0 with the exception that whitespace may be added/removed ! in non-verbatim character data. 4Pretty printing elements 5Pretty printing content x$Pretty printing content using ShowS yz6 Adds the  ?xml? header. 789{|DGood for transmition (no extra white space etc.) but less readable. }DGood for transmition (no extra white space etc.) but less readable. ~&Convert a text element to characters. €:‚;< 23456789:;< 6789<;354:2 23456789:;<portable provisional'Iavor S. Diatchki <diatchki@galois.com>%ƒ„…†‡ˆ‰Š‹Œ=7parseXMLDoc, parse a XMLl document to maybe an element >%parseXML to a list of content chunks Ž‘’“”•–—˜™š›œ;Match the value for an attribute. For malformed XML we do ! our best to guess the programmer' s intention. žŸ ¡¢£¤¥=>>==>portable provisional'Iavor S. Diatchki <diatchki@galois.com>6?7The position of a piece of content in an XML document. @A The currently selected content. B%Siblings on the left, closest first. C&Siblings on the right, closest first. D6The contexts of the parent elements of this location. EFGHIJKLMN"The parent of the given location. O+The top-most parent of the given location. P(The left sibling of the given location. Q)The right sibling of the given location. R'The first child of the given location. S&The last child of the given location. T7Find the next left sibling that satisfies a predicate. U8Find the next right sibling that satisfies a predicate. V,The first child that satisfies a predicate. WJThe next position in a left-to-right depth-first traversal of a document: N either the first child, right sibling, or the right sibling of a parent that  has one. XAPerform a depth first search for a descendant that satisfies the  given predicate. Y2The child with the given index (starting from 0). ¦!private: computes the parent for down operations. Z A cursor for the given content. [ A cursor for the given element. \,The location of the first tree in a forest. ],Computes the tree containing this location. ^.Computes the forest containing this location. _#Are we at the top of the document? `,Are we at the left end of the the document? a)Are we at the right end of the document? b&Are we at the bottom of the document? cDo we have a parent? d3Get the node index inside the sequence of children eDo we have children? fChange the current content. gModify the current content. h4Modify the current content, allowing for an effect. i4Insert content to the left of the current position. j5Insert content to the right of the current position. k@Remove the content on the left of the current position, if any. lARemove the content on the right of the current position, if any. m4Insert content to the left of the current position. / The new content becomes the current position. n5Insert content to the right of the current position. / The new content becomes the current position. oRemove the current element. * The new position is the one on the left. pRemove the current element. + The new position is the one on the right. qRemove the current element. 5 The new position is the parent of the old position. §+private: Gets the given element of a list. L Also returns the preceding elements (reversed) and the following elements. ¨0private: combChildren ls x ys = reverse ls ++ [x] ++ ys 3?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq3FGHIJKLM?@ABCDEZ[\^]NOYRSPQWVTUX_`abcedfghijmnklopq3?@ABCD@ABCDEFGHIJGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq portability provisional'Iavor S. Diatchki <diatchki@galois.com>r@A smart element constructor which uses the type of its argument , to determine what sort of element to make. st Add an attribute to an element. u#Add some attributes to an element. vCreate an unqualified name. w"Create node with unqualified name E  !"#$%&'()*+,-./0123456789:;<=>rstuvwtuvrswrsstuvw©      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIIJKLMNOPQRSTUVW*XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª xml-1.3.4Text.XML.Light.TypesText.XML.Light.ProcText.XML.Light.OutputText.XML.Light.InputText.XML.Light.CursorText.XML.LightQNameqNameqURIqPrefix CDataKindCDataRaw CDataVerbatim CDataTextCData cdVerbatimcdDatacdLineAttrattrKeyattrValElementelName elAttribs elContentelLineContentCRefTextElemLine blank_name blank_cdata blank_element strContent onlyElems elChildrenonlyText findChildrenfilterChildrenfilterChildrenName findChild filterChildfilterChildName findElement filterElementfilterElementName findElementsfilterElementsfilterElementsNamefindAttr lookupAttr xml_header ppTopElement ppElement ppContentshowTopElement showContent showElement showCDatatagEndshowAttr showQName parseXMLDocparseXMLCursorCurcurrentleftsrightsparentsPathTagtagName tagAttribstagLinegetTagsetTagfromTagparentrootleftright firstChild lastChildfindLeft findRightnextDFfindRecgetChild fromContent fromElement fromForesttoTreetoForestisRootisFirstisLastisLeafisChild getNodeIndex hasChildren setContent modifyContentmodifyContentM insertLeft insertRight removeLeft removeRight insertGoLeft insertGoRight removeGoLeft removeGoRight removeGoUpNodenodeadd_attr add_attrsunqualunode ppContentS ppElementSppCData showCRefS showContentS showElementS showCDataSescCDataescCharescStrtagStartTxtCRefBitTxtBitTokenTokTextTokCRefTokEndTokStartLStringLCharNSInfoparsenodes annotName annotAttraddNStokenstokens'specialqualNametagattribsattribattr_val dropSpacestringbreak'breakn decode_attr decode_text cref_to_charnum_esccvt_char preprocess linenumber downParents splitChildren combChildren