úÎk_bÜv      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuBasic 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 v$Pretty printing content using ShowS wx6 Adds the  ?xml? header. 789yzDGood 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. ›œžŸ ¡¢£=>>==>:XML cursors for working XML content withing the context of provisional'Iavor S. Diatchki <diatchki@galois.com>4?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. W2The child with the given index (starting from 0). ¤!private: computes the parent for down operations. X A cursor for the guven content. Y A cursor for the guven element. Z,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? _)Are we at the right end of the document? `&Are we at the bottom of the document? aDo we have a parent? b3Get the node index inside the sequence of children cDo we have children? dChange the current content. eModify the current content. f4Modify the current content, allowing for an effect. g4Insert content to the left of the current position. h5Insert content to the right of the current position. i?Remove the conent on the left of the current position, if any. j@Remove the conent on the right of the current position, if any. k4Insert content to the left of the current position. / The new content becomes the current position. l5Insert content to the right of the current position. / The new content becomes the current position. mRemove the current element. * The new position is the one on the left. nRemove the current element. + The new position is the one on the right. oRemove 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 preceeding elements (reversed) and the folloing elements. ¦0private: combChildren ls x ys = reverse ls ++ [x] ++ ys 1?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno1FGHIJKLM?@ABCDEXYZ\[NOWRSPQVTU]^_`acbdefghklijmno1?@ABCD@ABCDEFGHIJGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno portability provisional'Iavor S. Diatchki <diatchki@galois.com>p@A smart element constructor which uses the type of its argument , to determine what sort of element to make. qr Add an attribute to an element. s#Add some attributes to an element. tCreate an unqualified name. u"Create node with unqualified name E  !"#$%&'()*+,-./0123456789:;<=>pqrsturstpqupqqrstu§      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIIJKLMNOPQRSTUVW*XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨ xml-1.3.2Text.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 findRightgetChild 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