y~pl~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}Basic 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>2~3The XML 1.0 header 4&Default pretty orinting configutaion. & * Always use abbreviate empty tags. 5>The predicate specifies for which empty tags we should use XML's  abbreviated notation  TAG /). This is useful if we are working with F some XML-ish standards (such as certain versions of HTML) where some . empty tags should always be displayed in the  TAG /TAG form. KDpecify if we should Use extra white-space to make document more readable. = WARNING: This adds additional white-space to text elements, 3 and so it may change the meaning of the document. 62Pretty printing renders XML documents faithfully, 0 with the exception that whitespace may be added/removed ! in non-verbatim character data. 7Pretty printing elements 8Pretty printing content 92Pretty printing renders XML documents faithfully, 0 with the exception that whitespace may be added/removed ! in non-verbatim character data. :Pretty printing elements ;Pretty printing content $Pretty printing content using ShowS < Adds the  ?xml? header. =>?&Convert a text element to characters. @AB23456789:;<=>?@AB<=>?BA6879;:245@323456789:;<=>?@ABportable provisional'Iavor S. Diatchki <diatchki@galois.com>%C7parseXMLDoc, parse a XMLl document to maybe an element D%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. CDDCCDportable provisional'Iavor S. Diatchki <diatchki@galois.com>6E7The position of a piece of content in an XML document. FG The currently selected content. H%Siblings on the left, closest first. I&Siblings on the right, closest first. J6The contexts of the parent elements of this location. KLMNOPQRST"The parent of the given location. U+The top-most parent of the given location. V(The left sibling of the given location. W)The right sibling of the given location. X'The first child of the given location. Y&The last child of the given location. Z7Find the next left sibling that satisfies a predicate. [8Find the next right sibling that satisfies a predicate. \,The first child that satisfies a predicate. ]JThe 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. ^APerform a depth first search for a descendant that satisfies the  given predicate. _2The child with the given index (starting from 0). !private: computes the parent for down operations. ` A cursor for the given content. a A cursor for the given element. b,The location of the first tree in a forest. c,Computes the tree containing this location. d.Computes the forest containing this location. e#Are we at the top of the document? f,Are we at the left end of the the document? g)Are we at the right end of the document? h&Are we at the bottom of the document? iDo we have a parent? j3Get the node index inside the sequence of children kDo we have children? lChange the current content. mModify the current content. n4Modify the current content, allowing for an effect. o4Insert content to the left of the current position. p5Insert content to the right of the current position. q@Remove the content on the left of the current position, if any. rARemove the content on the right of the current position, if any. s4Insert content to the left of the current position. / The new content becomes the current position. t5Insert content to the right of the current position. / The new content becomes the current position. uRemove the current element. * The new position is the one on the left. vRemove the current element. + The new position is the one on the right. wRemove 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 3EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw3LMNOPQRSEFGHIJK`abdcTU_XYVW]\Z[^efghikjlmnopstqruvw3EFGHIJFGHIJKLMNOPMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw portability provisional'Iavor S. Diatchki <diatchki@galois.com>x@A smart element constructor which uses the type of its argument , to determine what sort of element to make. yz Add an attribute to an element. {#Add some attributes to an element. |Create an unqualified name. }"Create node with unqualified name K  !"#$%&'()*+,-./0123456789:;<=>?@ABCDxyz{|}z{|xy}xyyz{|}      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOOPQRSTUVWXYZ[\]*^_`abcdefghijklmnopqrstuvwxyz{|}~5 xml-1.3.5Text.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 lookupAttrConfigPP xml_headerdefaultConfigPPuseShortEmptyTags ppTopElement ppElement ppContent ppcTopElement ppcElement ppcContentshowTopElement 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 shortEmptyTagprettifyuseExtraWhiteSpaceprettyConfigPP ppContentS ppElementSppCDataS showCRefS showCDataSescCDataescCharescStrtagStartTxtCRefBitTxtBitTokenTokTextTokCRefTokEndTokStartLStringLCharNSInfoparsenodes annotName annotAttraddNStokenstokens'specialqualNametagattribsattribattr_val dropSpacestringbreak'breakn decode_attr decode_text cref_to_charnum_esccvt_char preprocess linenumber downParents splitChildren combChildren