§
    JIšcÇ#  ã                   ó^  — d Z ddlmZ  G d„ de¦  «        Z eddddd¦  «        ZdZej        ZeZd	Zd
dl	T d
dl
T d
dlT d
dlmZmZ d
dlT d
dlT d
dlmZ d
dlT d
dlmZ d
dlmZmZmZ d
dlmZ d
dlmZmZ d e¦   «         vreZd e¦   «         vreZd e¦   «         vreZeeez   z  Zg d¢ZdS )a  
pyparsing module - Classes and methods to define and execute parsing grammars
=============================================================================

The pyparsing module is an alternative approach to creating and
executing simple grammars, vs. the traditional lex/yacc approach, or the
use of regular expressions.  With pyparsing, you don't need to learn
a new syntax for defining grammars or matching expressions - the parsing
module provides a library of classes that you use to construct the
grammar directly in Python.

Here is a program to parse "Hello, World!" (or any greeting of the form
``"<salutation>, <addressee>!"``), built up using :class:`Word`,
:class:`Literal`, and :class:`And` elements
(the :meth:`'+'<ParserElement.__add__>` operators create :class:`And` expressions,
and the strings are auto-converted to :class:`Literal` expressions)::

    from pyparsing import Word, alphas

    # define grammar of a greeting
    greet = Word(alphas) + "," + Word(alphas) + "!"

    hello = "Hello, World!"
    print(hello, "->", greet.parse_string(hello))

The program outputs the following::

    Hello, World! -> ['Hello', ',', 'World', '!']

The Python representation of the grammar is quite readable, owing to the
self-explanatory class names, and the use of :class:`'+'<And>`,
:class:`'|'<MatchFirst>`, :class:`'^'<Or>` and :class:`'&'<Each>` operators.

The :class:`ParseResults` object returned from
:class:`ParserElement.parseString` can be
accessed as a nested list, a dictionary, or an object with named
attributes.

The pyparsing module handles some of the problems that are typically
vexing when writing text parsers:

  - extra or missing whitespace (the above program will also handle
    "Hello,World!", "Hello  ,  World  !", etc.)
  - quoted strings
  - embedded comments


Getting Started -
-----------------
Visit the classes :class:`ParserElement` and :class:`ParseResults` to
see the base classes that most other pyparsing
classes inherit from. Use the docstrings for examples of how to:

 - construct literal match expressions from :class:`Literal` and
   :class:`CaselessLiteral` classes
 - construct character word-group expressions using the :class:`Word`
   class
 - see how to create repetitive expressions using :class:`ZeroOrMore`
   and :class:`OneOrMore` classes
 - use :class:`'+'<And>`, :class:`'|'<MatchFirst>`, :class:`'^'<Or>`,
   and :class:`'&'<Each>` operators to combine simple expressions into
   more complex ones
 - associate names with your parsed results using
   :class:`ParserElement.setResultsName`
 - access the parsed data, which is returned as a :class:`ParseResults`
   object
 - find some helpful expression short-cuts like :class:`delimitedList`
   and :class:`oneOf`
 - find more useful common expressions in the :class:`pyparsing_common`
   namespace class
é    )Ú
NamedTuplec                   ód   — e Zd ZU eed<   eed<   eed<   eed<   eed<   ed„ ¦   «         Zd„ Zd„ Z	d	S )
Úversion_infoÚmajorÚminorÚmicroÚreleaselevelÚserialc                 óæ   — d                      | j        | j        | j        ¦  «        d                      | j        d         dk    rdnd| j        d         | j        ¦  «        df| j        dk             z   S )Nz{}.{}.{}z{}{}{}r   ÚcÚrÚ Úfinal)Úformatr   r   r   r	   r
   ©Úselfs    ú4/usr/lib/python3/dist-packages/pyparsing/__init__.pyÚ__version__zversion_info.__version__j   s   € ð ×Ò˜dœj¨$¬*°d´jÑAÔAà—’ØÔ,¨QÔ/°3Ò6Ð6�C�C¸BØÔ% aÔ(Ø”Kñô ð
 ðð Ô 7Ò*ô,ñ,ð
	
ó    c                 óN   — d                      t          | j        t          ¦  «        S )Nz
{} {} / {})r   Ú__name__r   Ú__version_time__r   s    r   Ú__str__zversion_info.__str__x   s   € Ø×"Ò"¥8¨TÔ-=Õ?OÑPÔPÐPr   c                 ó¾   — d                      t          t          | ¦  «        j        d                     d„ t	          | j        | ¦  «        D ¦   «         ¦  «        ¦  «        S )Nz	{}.{}({})z, c              3   ó*   K  — | ]} d j         |Ž V — ŒdS )z{}={!r}N)r   )Ú.0Únvs     r   ú	<genexpr>z(version_info.__repr__.<locals>.<genexpr>   s-   è è € ÐNÐN°Ð&�iÔ&¨Ð+ÐNÐNÐNÐNÐNÐNr   )r   r   ÚtypeÚjoinÚzipÚ_fieldsr   s    r   Ú__repr__zversion_info.__repr__{   sS   € Ø×!Ò!ÝÝ�‰JŒJÔØ�IŠIÐNÐNµc¸$¼,ÈÑ6MÔ6MÐNÑNÔNÑNÔNñ
ô 
ð 	
r   N)
r   Ú
__module__Ú__qualname__ÚintÚ__annotations__ÚstrÚpropertyr   r   r#   © r   r   r   r   c   s€   € € € € € € Ø€J€J�JØ€J€J�JØ€J€J�JØÐÐÑØ€K€K�Kàð
ð 
ñ „Xð
ðQð Qð Qð
ð 
ð 
ð 
ð 
r   r   é   é	   r   z05 May 2022 07:02 UTCz+Paul McGuire <ptmcg.gm+pyparsing@gmail.com>é   )Ú*)Ú__diag__Ú
__compat__)Ú_builtin_exprs)Úunicode_setÚUnicodeRangeListÚpyparsing_unicode)Úpyparsing_test)Úpyparsing_commonr1   r4   r6   r5   )¤r   r   Ú
__author__r0   r/   ÚAndÚAtLineStartÚAtStringStartÚCaselessKeywordÚCaselessLiteralÚ
CharsNotInÚCombineÚDictÚEachÚEmptyÚ
FollowedByÚForwardÚ
GoToColumnÚGroupÚIndentedBlockÚKeywordÚLineEndÚ	LineStartÚLiteralÚLocatedÚ
PrecededByÚ
MatchFirstÚNoMatchÚNotAnyÚ	OneOrMoreÚOnlyOnceÚOpAssocÚOptÚOptionalÚOrÚParseBaseExceptionÚParseElementEnhanceÚParseExceptionÚParseExpressionÚParseFatalExceptionÚParseResultsÚParseSyntaxExceptionÚParserElementÚPositionTokenÚQuotedStringÚRecursiveGrammarExceptionÚRegexÚSkipToÚ	StringEndÚStringStartÚSuppressÚTokenÚTokenConverterÚWhiteÚWordÚWordEndÚ	WordStartÚ
ZeroOrMoreÚCharÚ	alphanumsÚalphasÚ
alphas8bitÚany_close_tagÚany_open_tagÚc_style_commentÚcolÚcommon_html_entityÚcounted_arrayÚcpp_style_commentÚdbl_quoted_stringÚdbl_slash_commentÚdelimited_listÚdict_ofÚemptyÚhexnumsÚhtml_commentÚ
identcharsÚidentbodycharsÚjava_style_commentÚlineÚline_endÚ
line_startÚlinenoÚmake_html_tagsÚmake_xml_tagsÚmatch_only_at_colÚmatch_previous_exprÚmatch_previous_literalÚnested_exprÚnull_debug_actionÚnumsÚone_ofÚ
printablesÚpunc8bitÚpython_style_commentÚquoted_stringÚremove_quotesÚreplace_withÚreplace_html_entityÚrest_of_lineÚsgl_quoted_stringÚsrangeÚ
string_endÚstring_startÚtrace_parse_actionÚunicode_stringÚwith_attributeÚindentedBlockÚoriginal_text_forÚungroupÚinfix_notationÚlocatedExprÚ
with_classÚ
CloseMatchÚ	token_mapr6   r4   r2   Úcondition_as_parse_actionr5   Ú__versionTime__ÚanyCloseTagÚ
anyOpenTagÚcStyleCommentÚcommonHTMLEntityÚcountedArrayÚcppStyleCommentÚdblQuotedStringÚdblSlashCommentÚdelimitedListÚdictOfÚhtmlCommentÚjavaStyleCommentÚlineEndÚ	lineStartÚmakeHTMLTagsÚmakeXMLTagsÚmatchOnlyAtColÚmatchPreviousExprÚmatchPreviousLiteralÚ
nestedExprÚnullDebugActionÚoneOfÚopAssocÚpythonStyleCommentÚquotedStringÚremoveQuotesÚreplaceHTMLEntityÚreplaceWithÚ
restOfLineÚsglQuotedStringÚ	stringEndÚstringStartÚtraceParseActionÚunicodeStringÚwithAttributerž   ÚoriginalTextForÚinfixNotationr¢   Ú	withClassÚtokenMapÚconditionAsParseActionÚautoname_elementsN)Ú__doc__Útypingr   r   Ú__version_info__r   r   r§   r7   ÚutilÚ
exceptionsÚactionsÚcorer/   r0   Úresultsr1   Úcore_builtin_exprsÚhelpersÚhelper_builtin_exprsÚunicoder2   r3   r4   Útestingr5   Úcommonr6   Úcommon_builtin_exprsÚglobalsÚ__all__r*   r   r   ú<module>râ      sË  ðð2F€ðN Ð Ð Ð Ð Ð ð
ð 
ð 
ð 
ð 
�:ñ 
ô 
ð 
ð@  �<  1 a¨°!Ñ4Ô4Ð Ø*Ð ØÔ*€Ø"€Ø:€
à Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ø Ð Ð Ð Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø Ð Ð Ð Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;à PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PØ .Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ð ð ð ˜g˜g™iœiÐ'Ð'ØÐØ˜W˜W™YœYÐ&Ð&ØÐØ˜7˜7™9œ9Ð$Ð$Ø€Nà Ð*Ð-AÑAÑ AÐ ðfð fð f€€€r   