a
    ÅZEgN#  ã                   @   s  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ƒ vrØeZdeƒ vræeZdeƒ vrôeZeee 7 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.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                   @   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   sR   | j › d| j› d| j› �| jd dkr*dnd› | jd › | j› �df| jdk  S )NÚ.r   ÚcÚrÚ Úfinal)r   r   r   r   r   ©Úself© r   úK/var/www/sistema_ama/venv/lib/python3.9/site-packages/pyparsing/__init__.pyÚ__version__j   s    (þýÿÿzversion_info.__version__c                 C   s   t › d| j› dt› �S )Nú z / )Ú__name__r   Ú__version_time__r   r   r   r   Ú__str__t   s    zversion_info.__str__c              
   C   s4   t › dt| ƒj › dd dd„ t| j| ƒD ƒ¡› d�S )Nr	   ú(z, c                 s   s   | ]}d j |Ž V  qdS )z{}={!r}N)Úformat)Ú.0Únvr   r   r   Ú	<genexpr>x   ó    z(version_info.__repr__.<locals>.<genexpr>ú))r   ÚtypeÚjoinÚzipÚ_fieldsr   r   r   r   Ú__repr__w   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13 Oct 2024 09:46 UTCz+Paul McGuire <ptmcg.gm+pyparsing@gmail.com>)Ú*)Ú__diag__Ú
__compat__)Ú_builtin_exprs)Úunicode_setÚUnicodeRangeListÚpyparsing_unicode)Úpyparsing_test)Úpyparsing_commonr/   r2   r4   r3   )§r   r   Ú
__author__r.   r-   ÚAndZAtLineStartZAtStringStartÚCaselessKeywordÚCaselessLiteralÚ
CharsNotInÚ
CloseMatchÚCombineZDelimitedListÚ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ÚTagÚTokenÚTokenConverterÚWhiteÚWordÚWordEndÚ	WordStartÚ
ZeroOrMoreÚCharÚ	alphanumsÚalphasÚ
alphas8bitZany_close_tagZany_open_tagZautoname_elementsZc_style_commentÚcolZcommon_html_entityZcondition_as_parse_actionZcounted_arrayZcpp_style_commentZdbl_quoted_stringZdbl_slash_commentZdelimited_listZdict_ofÚemptyÚhexnumsZhtml_commentZ
identcharsZidentbodycharsZinfix_notationZ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_ofZoriginal_text_forÚ
printablesÚpunc8bitr4   r3   r2   Zpython_style_commentZquoted_stringZremove_quotesZreplace_withZreplace_html_entityZrest_of_lineZsgl_quoted_stringÚsrangeZ
string_endZstring_startZ	token_mapZtrace_parse_actionÚungroupr0   Zunicode_stringZwith_attributeZ
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   rt   r5   ÚutilÚ
exceptionsÚactionsÚcorer-   r.   Úresultsr/   Zcore_builtin_exprsZhelpersZhelper_builtin_exprsr    r0   r1   r2   r¡   r3   rŸ   r4   Zcommon_builtin_exprsÚglobalsÚ__all__r   r   r   r   Ú<module>   s6   G


