U
    Sd#                     @   sP  d Z ddlmZ G d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 kreZde kreZde kreZeee 7 Zddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddddddddddddddddddddddddddgZdS )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                   @   sR   e Zd ZU eed< eed< eed< eed< eed< edd Zdd	 Zd
d Z	dS )version_infomajorminormicroreleaselevelserialc                 C   sJ   d | j| j| jd | jd dkr(dnd| jd | jdf| jdk  S )Nz{}.{}.{}z{}{}{}r   cr final)formatr   r   r   r   r   self r   6/tmp/pip-unpacked-wheel-aro9klot/pyparsing/__init__.py__version__j   s    zversion_info.__version__c                 C   s   d t| jtS )Nz
{} {} / {})r   __name__r   __version_time__r   r   r   r   __str__x   s    zversion_info.__str__c              
   C   s,   d tt| jddd t| j| D S )Nz	{}.{}({})z, c                 s   s   | ]}d j | V  qdS )z{}={!r}N)r   ).0nvr   r   r   	<genexpr>   s     z(version_info.__repr__.<locals>.<genexpr>)r   r   typejoinzip_fieldsr   r   r   r   __repr__{   s
    zversion_info.__repr__N)
r   
__module____qualname__int__annotations__strpropertyr   r   r   r   r   r   r   r   c   s   

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_commonr*   r-   r/   r.   r   r   
__author__r)   r(   AndZAtLineStartZAtStringStartCaselessKeywordCaselessLiteral
CharsNotInCombineDictEachEmpty
FollowedByForward
GoToColumnGroupZIndentedBlockKeywordLineEnd	LineStartLiteralZLocated
PrecededBy
MatchFirstNoMatchNotAny	OneOrMoreOnlyOnceZOpAssocZOptOptionalOrParseBaseExceptionParseElementEnhanceParseExceptionParseExpressionParseFatalExceptionParseResultsParseSyntaxExceptionParserElementZPositionTokenQuotedStringRecursiveGrammarExceptionRegexSkipTo	StringEndStringStartSuppressTokenTokenConverterWhiteWordWordEnd	WordStart
ZeroOrMoreChar	alphanumsalphas
alphas8bitZany_close_tagZany_open_tagZc_style_commentcolZcommon_html_entityZcounted_arrayZcpp_style_commentZdbl_quoted_stringZdbl_slash_commentZdelimited_listZdict_ofemptyhexnumsZhtml_commentZ
identcharsZidentbodycharsZjava_style_commentlineZline_endZ
line_startlinenoZmake_html_tagsZmake_xml_tagsZmatch_only_at_colZmatch_previous_exprZmatch_previous_literalZnested_exprZnull_debug_actionnumsZone_of
printablespunc8bitZpython_style_commentZquoted_stringZremove_quotesZreplace_withZreplace_html_entityZrest_of_lineZsgl_quoted_stringsrangeZ
string_endZstring_startZtrace_parse_actionZunicode_stringZwith_attributeindentedBlockZoriginal_text_forungroupZinfix_notationlocatedExprZ
with_class
CloseMatchZ	token_mapr+   Zcondition_as_parse_action__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withAttributeoriginalTextForinfixNotation	withClasstokenMapconditionAsParseActionZautoname_elementsN)__doc__typingr   r   __version_info__r   r   rp   r0   util
exceptionsactionscorer(   r)   resultsr*   Zcore_builtin_exprsZhelpersZhelper_builtin_exprsunicoder+   r,   r-   Ztestingr.   commonr/   Zcommon_builtin_exprsglobals__all__r   r   r   r   <module>   s  G 


 