+
     h#  c                   s   R t ^ RIHt  ! R R]4      t]! ^^^R^4      tRt]P                  t]tRt^RI	5 ^RI
5 ^RI5 ^RIHtHt ^RI5 ^RI5 ^R	IHt ^RI5 ^R	IHt ^R
IHtHtHt ^RIHt ^RIHtHt R]! 4       9  d   ]tR]! 4       9  d   ]tR]! 4       9  d   ]t]]],           ,          t. RNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NR3NR4NR5NR6NR7NR8NR9NR:NR;NR<NR=NR>NR?NR@NRANRBNRCNRDNRENRFNRGNRHNRINRJNRKNRLNRMNRNNRONRPNRQNRRNRSNRTNRUNRVNRWNRXNRYNRZNR[NR\NR]NR^NR_NR`NRaNRbNRcNRdNReNRfNRgNRhNRiNRjNRkNRlNRmNRnNRoNRpNRqNRrNRsNRNRNRNRtNRuNRvNRwNRxNRyNRzNR{NR|NR}NR~NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNtR# )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.parse_string` 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.set_results_name`
 - access the parsed data, which is returned as a :class:`ParseResults`
   object
 - find some helpful expression short-cuts like :class:`DelimitedList`
   and :class:`one_of`
 - find more useful common expressions in the :class:`pyparsing_common`
   namespace class
)
NamedTuplec                   sH   a  ] tR t^ct o ]R 4       tR tR tV 3R ltRt	V t
R# )version_infoc                s   V P                    R V P                   R V P                   2V P                  ^ ,          R8X  d   RMR V P                  ^ ,           V P                   2R3V P                  R8H  ,          ,           # ).ZcZrZ final)majorminormicroreleaselevelserialZself   &7/usr/lib/python3.14/site-packages/pyparsing/__init__.py__version__Zversion_info.__version__j   s     zzl!DJJ<q5++A.#532>t?P?PQR?S>TUYU`U`Tab 7*,,	
    c                s:    \          R V P                   R\         2# )Z z / )__name__r   __version_time__r	   r
   r   __str__Zversion_info.__str__t   s"    1T--.c2B1CDDr   c                s    \          R \        V 4      P                    RRP                  R \        V P                  V 4       4       4       R2# )r   Z(z, c              3   sB   "   T F  pR P                   ! V!  x  K  	  R# 5i)z{}={!r}N)format)Z.0Znvs   & r   Z	<genexpr>Z(version_info.__repr__.<locals>.<genexpr>x   s     <u]tWYY=M=Mr=R]ts   Z))r   ZtypeZjoinZzipZ_fieldsr	   r
   r   __repr__Zversion_info.__repr__w   sG    1T$Z001499<u]`aeamamos]t<u3u2vvwxxr   c                sV   < V ^8  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[;R&   S[ ;R&   # )i   r   r   r   r   r   )ZintZstr)r   __classdict__s   "r   Z__annotate__Zversion_info.__annotate__c   s>     J J  J  	 
 K r    N)r   Z
__module__Z__qualname__Z__firstlineno__Zpropertyr   r   r   Z__annotate_func__Z__static_attributes__Z__classdictcell__)r   s   @r   r   r   c   s,      
 
Ey)  r   r   r   z06 Mar 2024 07:08 UTCz+Paul McGuire <ptmcg.gm+pyparsing@gmail.com>)Z*)__diag__
__compat__)_builtin_exprs)unicode_setUnicodeRangeListpyparsing_unicode)pyparsing_test)pyparsing_commonr   r   r   r   r   r   
__author__r   r   ZAndZAtLineStartZAtStringStartZCaselessKeywordZCaselessLiteralZ
CharsNotInZ
CloseMatchZCombineZDelimitedListZDictZEachZEmptyZ
FollowedByZForwardZ
GoToColumnZGroupZIndentedBlockZKeywordZLineEndZ	LineStartZLiteralZLocatedZ
PrecededByZ
MatchFirstZNoMatchZNotAnyZ	OneOrMoreZOnlyOnceZOpAssocZOptZOptionalZOrZParseBaseExceptionZParseElementEnhanceZParseExceptionZParseExpressionZParseFatalExceptionZParseResultsZParseSyntaxExceptionZParserElementZPositionTokenZQuotedStringZRecursiveGrammarExceptionZRegexZSkipToZ	StringEndZStringStartZSuppressZTokenZTokenConverterZWhiteZWordZWordEndZ	WordStartZ
ZeroOrMoreZCharZ	alphanumsZalphasZ
alphas8bitZany_close_tagZany_open_tagZautoname_elementsZc_style_commentZcolZcommon_html_entityZcondition_as_parse_actionZcounted_arrayZcpp_style_commentZdbl_quoted_stringZdbl_slash_commentZdelimited_listZdict_ofZemptyZhexnumsZhtml_commentZ
identcharsZidentbodycharsZinfix_notationZjava_style_commentZlineZline_endZ
line_startZlinenoZmake_html_tagsZmake_xml_tagsZmatch_only_at_colZmatch_previous_exprZmatch_previous_literalZnested_exprZnull_debug_actionZnumsZone_ofZoriginal_text_forZ
printablesZpunc8bitZpython_style_commentZquoted_stringZremove_quotesZreplace_withZreplace_html_entityZrest_of_lineZsgl_quoted_stringZsrangeZ
string_endZstring_startZ	token_mapZtrace_parse_actionZungroupr   Zunicode_stringZwith_attributeZ
with_class__versionTime__ZanyCloseTagZ
anyOpenTagZcStyleCommentZcommonHTMLEntityZconditionAsParseActionZcountedArrayZcppStyleCommentZdblQuotedStringZdblSlashCommentZdelimitedListZdictOfZhtmlCommentZindentedBlockZinfixNotationZjavaStyleCommentZlineEndZ	lineStartZlocatedExprZmakeHTMLTagsZmakeXMLTagsZmatchOnlyAtColZmatchPreviousExprZmatchPreviousLiteralZ
nestedExprZnullDebugActionZoneOfZopAssocZoriginalTextForZpythonStyleCommentZquotedStringZremoveQuotesZreplaceHTMLEntityZreplaceWithZ
restOfLineZsglQuotedStringZ	stringEndZstringStartZtokenMapZtraceParseActionZunicodeStringZwithAttributeZ	withClasscommonunicodetestingN)Z__doc__Ztypingr    r   Z__version_info__r   r   r   r   ZutilZ
exceptionsZactionsZcorer   r   Zresultsr   Zcore_builtin_exprsZhelpersZhelper_builtin_exprsr    r   r   r   r!   r   r   r   Zcommon_builtin_exprsZglobalsZ__all__r   r   r   <module>r"      s  2FN y: y0  1a!4 * **":
    &   6  ; P P . gi'WY&79$N *-AA A hhh h 	h
 h 
h h h h h h h h h h  !h" #h$ %h& 'h( )h* +h, -h. /h0 1h2 3h4 5h6 7h8 9h: ;h< =h> ?h@ AhB ChD EhF 
GhH IhJ 	KhL MhN OhP QhR ShT UhV WhX YhZ [h\ ]h^ _h`  ahb chd ehf ghh ihj khl mhn ohp qhr sht uhv whx yhz {h| }h~ h@ AhB ChD EhF GhH IhJ 
KhL MhN  OhP QhR ShT UhV WhX YhZ [h\ ]h^ _h` ahb chd ehf ghh ihj khl mhn ohp qhr sht uhv whx yhz {h| }h~ h@ AhB ChD EhF GhH IhJ KhL MhN OhP QhR ShT UhV WhX YhZ [h\ ]h^ _h` ahb chd ehf ghh ihj khl mhn ohp qht uhv whx yhz {h| }h~ h@ AhB ChD EhF GhH IhJ KhL MhN OhP QhR ShT UhV WhX YhZ [h\ ]h^ _h` ahb chd ehf ghh ihj khl mhn ohp qhr sht uhv whx yhz {h| }h~ h@ AhB ChD EhF GhH IhJ KhL MhN Ohr   