Files
intellecton/venv/lib/python3.12/site-packages/pyparsing/__pycache__/results.cpython-312.pyc
T

488 lines
35 KiB
Plaintext
Raw Normal View History

Ë
vRjÓkãóUddlmZddlZddlmZmZmZmZmZddl Z ddl
m Z ddl m
Z
mZmZeefZded<ed „d
D««Zed«Zd ed <Gd
d«ZGdd«Zej4e«ej4e«y)é)Ú annotationsN)ÚMutableMappingÚMappingÚMutableSequenceÚIteratorÚIterable)ÚAnyé)Údeprecate_argumentÚ _is_iterableÚ_flattenztuple[type, ...]Ústr_typec#ó K|]}|Œy­w©)Ú.0Ú_s úT/home/antigravity/intellecton/venv/lib/python3.12/site-packages/pyparsing/results.pyú <genexpr>rsèø€˜aœùs rÚsliceÚ
NULL_SLICEcó8eZdZUded<dgZddZdZdZdZy) Ú_ParseResultsWithOffsetztuple[ParseResults, int]Útupcó||f|_yr©r)ÚselfÚp1Úp2s rÚ__init__z _ParseResultsWithOffset.__init__s
Ø.0°"¨Xˆócó |j|Srr©rÚis rÚ __getitem__z#_ParseResultsWithOffset.__getitem__sØx‰x˜‰{Ðr!có|jSrr©rs rÚ __getstate__z$_ParseResultsWithOffset.__getstate__"s Øx‰xˆr!có|d|_y©Nrr)rÚargss rÚ __setstate__z$_ParseResultsWithOffset.__setstate__%s
ؘ‘7ˆr!N)rÚ ParseResultsrÚintÚreturnÚNone) Ú__name__Ú
__module__Ú __qualname__Ú__annotations__Ú __slots__r r%r(r,rr!rrrs#Ø !Ó€Ióòór!rcóÈeZdZUdZdgdfZded<ded<ded<d ed
<d ed <d
ed<ded<dZGdde«Zd>dZ dddde
f d?dZ dZ e
fdZ
dZd@dZdAdZd@dZdBdZdBdZdZd „Zd!„Zd@d"„Zd#„ZdCd$„Zd%„Zd&„Zd'„Zd(„Zd)„ZdDd*„ZdDd+„Z dEd,„Z!dFd-„Z"dFd.„Z#dGd/„Z$d0d1œdHd2„Z%dId3„Z&dEd4„Z'dEd5„Z(dJd6„Z)dKdFd7„Z*d8„Z+d9„Z,d:„Z-d;„Z.d<„Z/e0dCdEd=„«Z1e%Z2 e&Z3 e)Z4y)Lr-a†Structured parse results, to provide multiple means of access to
the parsed data:
- as a list (``len(results)``)
- by list index (``results[0], results[1]``, etc.)
- by attribute (``results.<results_name>`` - see :class:`ParserElement.set_results_name`)
Example:
.. testcode::
integer = Word(nums)
date_str = (integer.set_results_name("year") + '/'
+ integer.set_results_name("month") + '/'
+ integer.set_results_name("day"))
# equivalent form:
# date_str = (integer("year") + '/'
# + integer("month") + '/'
# + integer("day"))
# parse_string returns a ParseResults object
result = date_str.parse_string("1999/12/31")
def test(s, fn=repr):
print(f"{s} -> {fn(eval(s))}")
test("list(result)")
test("result[0]")
test("result['month']")
test("result.day")
test("'month' in result")
test("'minutes' in result")
test("result.dump()", str)
prints:
.. testoutput::
list(result) -> ['1999', '/', '12', '/', '31']
result[0] -> '1999'
result['month'] -> '12'
result.day -> '31'
'month' in result -> True
'minutes' in result -> False
result.dump() -> ['1999', '/', '12', '/', '31']
- day: '31'
- month: '12'
- year: '1999'
Nrztuple[Any, ...]Ú _null_valuesÚstrÚ_nameÚ_parentzset[str]Ú
_all_namesÚboolÚ_modalz list[Any]Ú_toklistzdict[str, Any]Ú_tokdict)r9r:r;r=r>r?cóeZdZdZddZy)úParseResults.Lista9
Simple wrapper class to distinguish parsed list results that should be preserved
as actual Python lists, instead of being converted to :class:`ParseResults`:
.. testcode::
import pyparsing as pp
ppc = pp.common
LBRACK, RBRACK, LPAR, RPAR = pp.Suppress.using_each("[]()")
element = pp.Forward()
item = ppc.integer
item_list = pp.DelimitedList(element)
element_list = LBRACK + item_list + RBRACK | LPAR + item_list + RPAR
element <<= item | element_list
# add parse action to convert from ParseResults
# to actual Python collection types
@element_list.add_parse_action
def as_python_list(t):
return pp.ParseResults.List(t.as_list())
element.run_tests('''
100
[2,3,4]
[[2, 1],3,4]
[(2, 1),3,4]
(2,3,4)
([2, 3], 4)
''', post_parse=lambda s, r: (r[0], type(r[0]))
)
prints:
.. testoutput::
:options: +NORMALIZE_WHITESPACE
100
(100, <class 'int'>)
[2,3,4]
([2, 3, 4], <class 'list'>)
[[2, 1],3,4]
([[2, 1], 3, 4], <class 'list'>)
[(2, 1),3,4]
([[2, 1], 3, 4], <class 'list'>)
(2,3,4)
([2, 3, 4], <class 'list'>)
([2, 3], 4)
([[2, 3], 4], <class 'list'>)
(Used internally by :class:`Group` when `aslist=True`.)
Ncó®|g}t|t«s-t|jdt |«j«tj |«S)Nz* may only be constructed with a list, not )Ú
isinstanceÚlistÚ TypeErrorr1ÚtypeÚ__new__)ÚclsÚ containeds rrGzParseResults.List.__new__«sTØÐ Ø ä˜i¬ÔØ—||nÐ$NÌtÐT]Ë×OgÑOgÐNhÐðô—<< Ó $r!r)r1r2r3Ú__doc__rGrr!rÚListrAos
ñ9 ôv %r!rKc ó^t|t«r|Stj|«}d|_d|_t
«|_|g|_nOt|ttf«r1t|tj«r|ddgn
t|«|_n|g|_t«|_
|Sr)rCr-ÚobjectrGr9r:Úsetr;r>rDÚ_generator_typerKÚdictr?)rHÚtoklistÚnameÚkwargsrs rrGzParseResults.__new__¶s•Ü gœ|Ô ˆ~‰~˜"ˆØˆŒ
؈Œ Ü›%ˆŒà ˆ?؈D
˜¤$¬Ð!8Ô
˜g¤|×'8Ñ'8Ô ä˜'“]ð
 %˜IˆDŒM܈Œ
؈ r!Tc ót|ddd¬«}|xr|}|||_||dk(ry||t«r t|«}|s|h|_||_||j vry||ttf«r|g}|rV||t«r#tt|j«d«||<ntt|d«d«||<|||_y |d||<y#tttf$r||ur|||<Yy||_YywxYw)asListTÚaslist)Únew_nameÚr)r r=r.r8r;r9r7rrFr-rr>ÚKeyErrorrEÚ
IndexError)rrQrRrVÚmodalrCrSrUs rr zParseResults.__init__Ísô$ F¨H°dÀXÔàÒ"˜FˆÙ ؈Œ à ˆ<˜4 2š:Ø á dœCÔ Üt“9ˆDáØ#˜fˆDŒOàˆŒ
à d× á ¬$Ð iˆ Ù˜'¤<Ô4´\À'×BRÑBRÓ5SÐUVÓWT
ä4´\À'È!Á*Ó5MÈqÓQT
Ø#ˆD‰JÔ Ø ð  ˆDŠJøÜœ)¤ZИ$T“
à!
ð  "úsÃCÃDÃ6DÃ?Dcóît|ttf«r|j|S||jvr|j
|ddSt
|j
|Dcgc]}|dŒ c}«Scc}w)Néÿÿÿÿr)rCr.rr>r;r?r-)rr$Úvs rr%zParseResults.__getitem__ýsjÜ aœ#œu˜Ô —== Ñ D—O‘OÑ —== Ñ# Ñ ¨4¯=©=¸Ñ+;Ö< a˜Q˜q=ùÒ<sÁ A2cóz||t«r;|jj|t««|gz|j|<|d}n^||tt
f«r||j |<|}n9|jj|g«t|d«gz|j|<|}||t«r||_yyr*) rr?ÚgetrDr.rr>r-r:)rÚkr^rCÚsubs rÚ __setitem__zParseResults.__setitem__Ù  #Ÿ}™}×´D³FÓ;¸q¸cÑAˆDM‰M˜!Ñ ØA$‰CÙ
˜œC¤˜
 ˆDM‰M˜!Ñ Ø‰Cà#Ÿ}™}×°BÓ¨1Ó;ñ ˆDM‰M˜!Ñ ðˆ cœ<Ô ˆC )r!c ó,t|ttf«s|j|=y|tk(r|j
j
«yt|j
«}|j
|=t|t«r|dkr||z
}t||dz«}tt|j|«Ž«}|j«|jj«D]4}|D]-}t|«D]\}\}}t||||kDz
«||<ŒŒ/Œ6y)Nrr
)rCr.rr?rr>ÚclearÚlenrDÚrangeÚindicesÚreverseÚvaluesÚ enumerater) rr$ÚmylenÚremovedÚ occurrencesÚjraÚvalueÚpositions rÚ __delitem__zParseResults.__delitem__sܘ!œc¤5˜\Ô
˜ Ø ð
Š?Ø M‰M× Ñ Ô äD—M"ˆØ M‰M˜!Ð ô Ô Ø1ŠuØU‘
ܘQ™ˆAä”u˜aŸi™i¨ÓØÔàŸ=™=× ˆKØò
Ü,5°kÓ,BòÑ((˜˜xÜ%<ؘx¨8°a©<Ñ&K ñ
ñ r!có||jvSr©r?)rras rÚ __contains__zParseResults.__contains__2sØD—M!r!có,t|j«Sr)rfr>r's rÚ__len__zParseResults.__len__5sÜ4—=!r!có:|jxs |j Sr)r>r?r's rÚ__bool__zParseResults.__bool__8sØŸ
Ò¯©Ð7r!có,t|j«Sr©Úiterr>r's rÚ__iter__zParseResults.__iter__;óÜD—M"r!có8t|jddd«S)Nr]r{r's rÚ __reversed__zParseResults.__reversed__>sÜD—MM¡$ B (r!có,t|j«Sr)r|r?r's rÚkeyszParseResults.keysAr~r!có6ˆfdj«D«S)Nc3ó(K|] }|Œ y­wrr©rrars €rrz&ParseResults.values.<locals>.<genexpr>Esøèø€Ò-˜AQ•Ñ-ùsƒ©rr's`rrjzParseResults.valuesDsø€Û- §¡£Ô-r!có6ˆfdj«D«S)Nc3ó,K|] }||fŒ
y­wrrr…s €rrz%ParseResults.items.<locals>.<genexpr>Hsøèø€Ò‘G” Ñ2ùsƒr†r's`rÚitemszParseResults.itemsGsø€Û2 d§i¡i£kÔ2r!có|j S)
Since ``keys()`` returns an iterator, this method is helpful in bypassing
code that looks for the existence of any defined results names.rtr's rÚhaskeyszParseResults.haskeysJsð—}$r!cóì|sdg}|j«D]\}}|dk(r|d|f}Œtd|«t|dt«st |«dk(s|d|vr|d}||}||=|S|d}|S)
Removes and returns item at specified index (default= ``last``).
Supports both ``list`` and ``dict`` semantics for ``pop()``. If
passed no argument or an integer argument, it will use ``list``
semantics and pop tokens from the list of parsed tokens. If passed
a non-integer argument (most likely a string), it will use ``dict``
semantics and pop the corresponding value from any defined results
names. A second default return value argument is supported, just as in
``dict.pop()``.
Example:
.. doctest::
>>> numlist = Word(nums)[...]
>>> print(numlist.parse_string("0 123 321"))
['0', '123', '321']
>>> def remove_first(tokens):
... tokens.pop(0)
...
>>> numlist.add_parse_action(remove_first)
[W:(0-9)]...
>>> print(numlist.parse_string("0 123 321"))
['123', '321']
>>> label = Word(alphas)
>>> patt = label("LABEL") + Word(nums)[1, ...]
>>> print(patt.parse_string("AAB 123 321").dump())
['AAB', '123', '321']
- LABEL: 'AAB'
>>> # Use pop() in a parse action to remove named result
>>> # (note that corresponding value is not
>>> # removed from list form of results)
>>> def remove_LABEL(tokens):
... tokens.pop("LABEL")
... return tokens
...
>>> patt.add_parse_action(remove_LABEL)
{W:(A-Za-z) {W:(0-9)}...}
>>> print(patt.parse_string("AAB 123 321").dump())
['AAB', '123', '321']
r]Údefaultrz)pop() got an unexpected keyword argument r
)r‰rErCr.rf)rr+rSrar^ÚindexÚretÚ defaultvalues rÚpopzParseResults.popPñ\Ø4ˆDØ—L‘L“Nò S‰DˆAˆqØIŠ~ؘQ™ |äÐ"KÈAÈ5Ð QÓ Sô
d˜1‘gœsÔ #¤s¨4£y°A¢~¸¸a¹ÀD¹Ø˜‘GˆEØu‘+ˆCØU ؈Jà ™7ˆLØÐ r!có||vr||S|S)as
Returns named result matching the given key, or if there is no
such name, then returns the given ``default_value`` or ``None`` if no
``default_value`` is specified.
Similar to ``dict.get()``.
Example:
.. doctest::
>>> integer = Word(nums)
>>> date_str = integer("year") + '/' + integer("month") + '/' + integer("day")
>>> result = date_str.parse_string("1999/12/31")
>>> result.get("year")
'1999'
>>> result.get("hour", "not specified")
'not specified'
>>> result.get("hour")
r)rÚkeyÚ
default_values rr`zParseResults.getŽsð. $‰;ؘ‘9Ð à Ð r!cóÐ|jj||«|jj«D]-}t |«D]\}\}}t ||||kDz«||<ŒŒ/y)
Inserts new element at location index in the list of parsed tokens.
Similar to ``list.insert()``.
Example:
.. doctest::
>>> numlist = Word(nums)[...]
>>> print(numlist.parse_string("0 123 321"))
['0', '123', '321']
>>> # use a parse action to insert the parse location
>>> # in the front of the parsed results
>>> def insert_locn(locn, tokens):
... tokens.insert(0, locn)
...
>>> numlist.add_parse_action(insert_locn)
[W:(0-9)]...
>>> print(numlist.parse_string("0 123 321"))
[0, '0', '123', '321']
N)r>Úinsertr?rjrkr)rÚ
ins_stringrnrarprqs rrzParseResults.insertªsoð2
×јU JÔŸ=™=× ˆKÜ(1°+Ó(>ò
Ñ$Ñ$E˜8Ü!8ؘ8 x°%Ñ'7Ñ" ˜Añ
ñ r!có:|jj|«y)a‡
Add single element to end of ``ParseResults`` list of elements.
Example:
.. doctest::
>>> numlist = Word(nums)[...]
>>> print(numlist.parse_string("0 123 321"))
['0', '123', '321']
>>> # use a parse action to compute the sum of the parsed integers,
>>> # and add it to the end
>>> def append_sum(tokens):
... tokens.append(sum(map(int, tokens)))
...
>>> numlist.add_parse_action(append_sum)
[W:(0-9)]...
>>> print(numlist.parse_string("0 123 321"))
['0', '123', '321', 444]
N)r>Úappend)rÚitems rr™zParseResults.appendËsð,
×ј"r!có~t|t«r|j|«y|jj |«y)as
Add sequence of elements to end of :class:`ParseResults` list of elements.
Example:
.. testcode::
patt = Word(alphas)[1, ...]
# use a parse action to append the reverse of the matched strings,
# to make a palindrome
def make_palindrome(tokens):
tokens.extend(reversed([t[::-1] for t in tokens]))
return ''.join(tokens)
patt.add_parse_action(make_palindrome)
print(patt.parse_string("lskdj sdlkjf lksd"))
prints:
.. testoutput::
['lskdjsdlkjflksddsklfjkldsjdksl']
N)rCr-Ú__iadd__r>Úextend)rÚitemseqs rrzParseResults.extendãs,ô2 gœ|Ô M‰M˜ M‰M× Ñ  Õ )r!cóV|jdd=|jj«y)z7
Clear all elements and results names.
N)r>r?rer's rrezParseResults.clears ð
M‰Mš!Ð Ø
×ÑÕr!cód ||S#t$r|jd«r t|«YywxYw)__rX)rYÚ
startswithÚAttributeError)rrRs rÚ __getattr__zParseResults.__getattr__s:ð Ø˜‘:Ð øÜò ؘtÔ$ TÓð ús ‡%/®/có0|j«}||z
}|Sr)Úcopy)rÚotherrs rÚ__add__zParseResults.__add__sØi‰i‹kˆØ ˆu‰ ˆØˆ
r!cóÞ|s|S|jrt|j«Šˆfd}|jj«}|Dcgc]&\}}|D]}|t |d||d««fŒŒ(}}}}|D](\}}|||<t |dt «sŒ||d_Œ*|xj|jz
c_|xj|jzc_|Scc}}}w)Ncó|dkrS|zSr*r)Úoffsets €rú<lambda>z'ParseResults.__iadd__.<locals>.<lambda>sø€¨A°ªE &€°q¸6±z€r!rr
) r?rfr>r‰rrCr-r:r;) rÚ addoffsetÚ
otheritemsraÚvlistr^Úotherdictitemsr¬s @rzParseResults.__iadd__ø€Ù؈ >Š>ܘŸÓ'ˆAˆIØŸ×/ˆJð!+÷ðáAòððÔ+¨A¨a©D±)¸A¸a¹D³/ÓØˆNòð

(‘Qܘa ™d¤LÕ1Ø#'AaD•Lð
Š
˜ŸÑ'
Ø Š˜5×+؈ ùôsÁ +C(cóVt|t«r|dk(r|j«S||zSr*)rCr.)rs rÚ__radd__zParseResults.__radd__+s*Ü eœSÔ ! e¨q¢jà—99“;Ð ð˜4 r!cónt|«jd|jd|j«dS), ú))rFr1r>Úas_dictr's rÚ__repr__zParseResults.__repr__3s2Üt“*×& ¯
©
Ð'8¸¸4¿<¹<»>Ð:JÈ!ÐLr!c
ó²ddj|jDcgc](}t|t«r t |«n
t |«Œ*c}«zdzScc}w)[r¶ú])Újoinr>rCr-r8Úreprr#s rÚ__str__zParseResults.__str__6s\à Øi‰ið"Ÿ]™]öàô¬LÔ9”C˜”F¼tÀA»wÑóñ
ðñ
ð
ùòs-A
cóÒg}|jD]U}|r|r|j|«t|t«r||j «z
}Œ<|jt |««ŒW|Sr)r>r™rCr-Ú
_asStringListr8)rÚsepÚoutršs rzParseResults._asStringListBs^؈ؗM &ˆ
˜3”ܘ$¤ Ô+‘à
œ3˜t
ˆ
r!F)Úflattencóž|r
gt|«¢S|jDcgc]$}t|t«r|j «n|Œ&c}Scc}w)
Returns the parse results as a nested list of matching tokens, all converted to strings.
If ``flatten`` is True, all the nesting levels in the returned list are collapsed.
Example:
.. doctest::
>>> patt = Word(alphas)[1, ...]
>>> result = patt.parse_string("sldkj lsdkj sldkj")
>>> # even though the result prints in string-like form,
>>> # it is actually a pyparsing ParseResults
>>> type(result)
<class 'pyparsing.results.ParseResults'>
>>> print(result)
['sldkj', 'lsdkj', 'sldkj']
.. doctest::
>>> # Use as_list() to create an actual list
>>> result_list = result.as_list()
>>> type(result_list)
<class 'list'>
>>> print(result_list)
['sldkj', 'lsdkj', 'sldkj']
.. versionchanged:: 3.2.0
New ``flatten`` argument.
)r
r>rCr-Úas_list)rÚress rzParseResults.as_listMsPñ> Ø$”X˜d“^Ð  Ÿ=™=öàô",¨C´Ô!>
ÀCÑð
ùòsž)A
cóRˆfdŠtˆfd|j«D««S)ac
Returns the named parse results as a nested dictionary.
Example:
.. doctest::
>>> integer = pp.Word(pp.nums)
>>> date_str = integer("year") + '/' + integer("month") + '/' + integer("day")
>>> result = date_str.parse_string('1999/12/31')
>>> type(result)
<class 'pyparsing.results.ParseResults'>
>>> result
ParseResults(['1999', '/', '12', '/', '31'], {'year': '1999', 'month': '12', 'day': '31'})
>>> result_dict = result.as_dict()
>>> type(result_dict)
<class 'dict'>
>>> result_dict
{'year': '1999', 'month': '12', 'day': '31'}
>>> # even though a ParseResults supports dict-like access,
>>> # sometime you just need to have a dict
>>> import json
>>> print(json.dumps(result))
Traceback (most recent call last):
TypeError: Object of type ParseResults is not JSON serializable
>>> print(json.dumps(result.as_dict()))
{"year": "1999", "month": "12", "day": "31"}
cóžt|t«r6|j«r|j«S|Dcgc]
}|«Œ c}S|Scc}wr)rCr-rr¸)Úobjr^Úto_items €rz%ParseResults.as_dict.<locals>.to_item•sAø€Ü˜#œ|Ô,Ø(+¯ © ¬
s—{{“}ÐTÐPSÖ;TÈ1¹GÀA½JÒ;TÐ
ùò<UsA
c3ó8K|]\}}||«fŒy­wrr)rrar^s €rrz'ParseResults.as_dict.<locals>.<genexpr>søèø€Ò¨¨1Q™ 
”OÑ=ùsƒ)rPr‰)rs @rr¸zParseResults.as_dictts"ø€ôB ô Ó·
±
³ Ô=r!cóðt|j«}|jj«|_|j|_|xj
|j
zc_|j |_|S)a
Returns a new shallow copy of a :class:`ParseResults` object.
:class:`ParseResults` items contained within the source are
shared with the copy. Use :meth:`ParseResults.deepcopy` to
create a copy with its own separate content values.
)r-r>r?r:r;r9)rrs rzParseResults.copysSô˜4Ÿ=™=ÓØ—}‘}׌ Ø—l‘lˆŒ Ø Š˜$Ÿ/™/Ñ)Ø—J‘JˆŒ ؈
r!có0|j«}t|j«D\}}t|t«r|j «|j|<Œ4t|t tf«rŒKt|t«r]t|««x|j|<}|j«D]*\}}t|t«r|j «n|||<Œ,Œ¸t|t«sŒÉt|«d|D««|j|<Œï|S)zm
Returns a new deep copy of a :class:`ParseResults` object.
.. versionadded:: 3.1.0
c3ó`K|]&}t|t«r|j«n|Œ(y­wr)rCr-Údeepcopy)rr^s rrz(ParseResults.deepcopy.<locals>.<genexpr>½s)èø€ò,ØKL¤J¨q´,Ô$?A—JJ”LÀQÓ,ùs,.) rkr>rCr-r8ÚbytesrrFr‰r)rrr$Údestrar^s rzParseResults.deepcopy«ð i‰i‹kˆä §
¡
Ó ‰FˆAˆ˜#œ|Ô,Ø"%§,¡,£. ˜Q’ܘC¤#¤u ÔܘC¤Ô0Ø)2¬¨c««Ð4 ˜Q‘ $ØŸI™I›KòQDAqÜ.8¸¼LÔ.I˜aŸj™jœlÈq’GñQä˜Õ*Ø"+¤$ s£)ñ,ØPSô,ó# ˜Q’ð ðˆ
r!cóÐjr jSjr;‰j}|jj«}t ˆfd|D«d«St «dk(rxt j«dk(r`t t
jj«««dddvr,t t
jj«««Sy)aG
Returns the results name for this token expression.
Useful when several different expressions might match
at a particular location.
Example:
.. testcode::
integer = Word(nums)
ssn_expr = Regex(r"\d\d\d-\d\d-\d\d\d\d")
house_number_expr = Suppress('#') + Word(nums, alphanums)
user_data = (Group(house_number_expr)("house_number")
| Group(ssn_expr)("ssn")
| Group(integer)("age"))
user_info = user_data[1, ...]
result = user_info.parse_string("22 111-22-3333 #221B")
for item in result:
print(item.get_name(), ':', item[0])
prints:
.. testoutput::
age : 22
ssn : 111-22-3333
house_number : 221B
c3óDK|]\}}|D]
\}}|ur|ŒŒy­wrr)rrar^Úlocrs €rrz(ParseResults.get_name.<locals>.<genexpr>ès=øèø€òá ˜˜5Ø"'òñ˜˜˜D‘yôðØñùsƒ Nr
r)rr]) r9r:r?r‰Únextrfr|rjr)rÚparÚparent_tokdict_itemss` rÚget_namezParseResults.get_nameÂø€ð@ :Š:Ø—:‘:Ð Ø
\Š\Ø $§ ¡ ˆCØ#&§<¡<×#5Ñ#5Ó#7Ð Üóà$8ôð óð
ô
I˜ŠNÜD—M" ”T˜$Ÿ-™-×2°1Ñ5°aÑ8¸GÑœ˜TŸ]™]× r!cóÚg}d}|j|r|t|j««znd«|sdj|«S|j «rÈt d|j
«D««}|D\}} |r|j|«|j|d|zd|d«t| t«s|jt| ««Œ`| s|jt| ««Œ}|j| j||||dz¬««Œ¥td „|D««sdj|«S|} d}
d} t| «D]†\} }
t|
t«rE|
j||||dz¬«}|j| ||
|zd
| d | ||
|dzz|
«Œ[|j| ||
|zd
| d | ||
|dzz|
«Œˆdj|«S) as
Diagnostic method for listing out the contents of
a :class:`ParseResults`. Accepts an optional ``indent`` argument so
that this string can be embedded in a nested display of other data.
Example:
.. testcode::
integer = Word(nums)
date_str = integer("year") + '/' + integer("month") + '/' + integer("day")