ó
    jñ:iO#  ã                   ó`  • S r SSKJr   " S S\5      r\" SSSSS	5      rS
r\R                  r\rSrS	SK	7  S	SK
7  S	SK7  S	SKJrJr  S	SK7  S	SK7  S	SKJr  S	SK7  S	SKJr  S	SKJrJrJr  S	SKJr  S	SKJrJr  S\" 5       ;  a  \rS\" 5       ;  a  \rS\" 5       ;  a  \r\\\-   -  r/ SQrg)a  
pyparsing - Classes and methods to define and execute parsing grammars
======================================================================

Pyparsing 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):

.. testcode::

    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:

.. testoutput::

    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                   ód   • \ rS rSr% \\S'   \\S'   \\S'   \\S'   \\S'   \S 5       rS r	S	 r
S
rg)Úversion_infoég   ÚmajorÚminorÚmicroÚreleaselevelÚserialc                 óà   • U R                    SU R                   SU R                   3U R                  S   S:X  a  SOS U R                  S    U R                   3S4U R                  S:H     -   $ )NÚ.r   ÚcÚrÚ Úfinal)r   r   r	   r
   r   ©Úselfs    ÚU/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/pyparsing/__init__.pyÚ__version__Úversion_info.__version__n   s…   € ð �z‰zˆl˜!˜DŸJ™J˜< q¨¯©¨Ð5à×+Ñ+¨AÑ.°#Ó5‘3¸2Ð>¸t×?PÑ?PÐQRÑ?SÐ>TÐUY×U`ÑU`ÐTaÐbØðð ×Ñ 7Ñ*ñ,ñ,ð	
ó    c                 ó:   • [          SU R                   S[         3$ )NÚ z / )Ú__name__r   Ú__version_time__r   s    r   Ú__str__Úversion_info.__str__x   s"   € Ü�˜1˜T×-Ñ-Ð.¨cÔ2BÐ1CÐDÐDr   c                 óš   • [          S[        U 5      R                    SSR                  S [        U R                  U 5       5       5       S3$ )Nr   Ú(z, c              3   ó@   #   • U  H  nS R                   " U6 v •  M     g7f)z{}={!r}N)Úformat)Ú.0Únvs     r   Ú	<genexpr>Ú(version_info.__repr__.<locals>.<genexpr>|   s   é € Ð<uÒ]tÐWY¸Y×=MÒ=MÈrÕ=RÒ]tùs   ‚Ú))r   ÚtypeÚjoinÚzipÚ_fieldsr   s    r   Ú__repr__Úversion_info.__repr__{   sG   € Ü�˜1œT $›Z×0Ñ0Ð1°°4·9±9Ñ<uÔ]`Ðae×amÑamÐosÔ]tÓ<uÓ3uÐ2vÐvwÐxÐxr   © N)r   Ú
__module__Ú__qualname__Ú__firstlineno__ÚintÚ__annotations__ÚstrÚpropertyr   r   r+   Ú__static_attributes__r-   r   r   r   r   g   s:   ‡ ØƒJØƒJØƒJØÓØƒKàñ
ó ð
òEõyr   r   é   é   é   r   é   z16 Sep 2025 22:24 UTCz+Paul McGuire <ptmcg.gm+pyparsing@gmail.com>)Ú*)Ú__diag__Ú
__compat__)Ú_builtin_exprs)Úunicode_setÚUnicodeRangeListÚpyparsing_unicode)Úpyparsing_test)Úpyparsing_commonr=   r@   rB   rA   )§r   r   Ú
__author__r<   r;   ÚAndÚAtLineStartÚAtStringStartÚCaselessKeywordÚCaselessLiteralÚ
CharsNotInÚ
CloseMatchÚCombineÚDelimitedListÚ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ÚTagÚTokenÚTokenConverterÚWhiteÚWordÚWordEndÚ	WordStartÚ
ZeroOrMoreÚCharÚ	alphanumsÚalphasÚ
alphas8bitÚany_close_tagÚany_open_tagÚautoname_elementsÚc_style_commentÚcolÚcommon_html_entityÚcondition_as_parse_actionÚcounted_arrayÚcpp_style_commentÚdbl_quoted_stringÚdbl_slash_commentÚdelimited_listÚdict_ofÚemptyÚhexnumsÚhtml_commentÚ
identcharsÚidentbodycharsÚinfix_notationÚ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Úoriginal_text_forÚ
printablesÚpunc8bitrB   rA   r@   Úpython_style_commentÚquoted_stringÚremove_quotesÚreplace_withÚreplace_html_entityÚrest_of_lineÚsgl_quoted_stringÚsrangeÚ
string_endÚstring_startÚ	token_mapÚtrace_parse_actionÚungroupr>   Úunicode_stringÚwith_attributeÚ
with_classÚ__versionTime__ÚanyCloseTagÚ
anyOpenTagÚcStyleCommentÚcommonHTMLEntityÚconditionAsParseActionÚcountedArrayÚcppStyleCommentÚdblQuotedStringÚdblSlashCommentÚdelimitedListÚdictOfÚhtmlCommentÚindentedBlockÚinfixNotationÚjavaStyleCommentÚlineEndÚ	lineStartÚlocatedExprÚmakeHTMLTagsÚmakeXMLTagsÚmatchOnlyAtColÚmatchPreviousExprÚmatchPreviousLiteralÚ
nestedExprÚnullDebugActionÚoneOfÚopAssocÚoriginalTextForÚpythonStyleCommentÚquotedStringÚremoveQuotesÚreplaceHTMLEntityÚreplaceWithÚ
restOfLineÚsglQuotedStringÚ	stringEndÚstringStartÚtokenMapÚtraceParseActionÚunicodeStringÚwithAttributeÚ	withClassÚcommonÚunicodeÚtestingN)Ú__doc__Útypingr   r   Ú__version_info__r   r   r´   rC   ÚutilÚ
exceptionsÚactionsÚcorer;   r<   Úresultsr=   Úcore_builtin_exprsÚhelpersÚhelper_builtin_exprsrà   r>   r?   r@   rá   rA   rß   rB   Úcommon_builtin_exprsÚglobalsÚ__all__r-   r   r   Ú<module>rð      sÅ   ðð2J€õV ôy�:ô yñ0    1 a¨°!Ó4Ð Ø*Ð Ø×*Ñ*€Ø"€Ø:€
ä Ü Ü ß &Ü Ü Ý 6Ü Ý ;ç PÑ PÝ .÷ð ™g›iÓ'ØÐØ™W›YÓ&ØÐØ™7›9Ó$Ø€Nà Ð*Ð-AÑAÑ AÐ òi�r   