
    4Ysh#                     T   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	 d
dl
 d
dl d
dlmZmZ d
dl d
dl d
dlmZ d
dl 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y)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                   \    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	y	)
version_infomajorminormicroreleaselevelserialc                    dj                  | j                  | j                  | j                        dj                  | 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    r/var/www/sten-cake5-migrate2.hellocrow.space/lexinfo-master/env/lib/python3.12/site-packages/pyparsing/__init__.py__version__zversion_info.__version__j   s     djj$**djjA,,Q/36CB%%a(KK
  7*,,
	
    c                 L    dj                  t        | j                  t              S )Nz
{} {} / {})r   __name__r   __version_time__r   s    r   __str__zversion_info.__str__x   s    ""8T-=-=?OPPr   c                     dj                  t        t        |       j                  dj                  d t	        | j
                  |       D                    S )Nz	{}.{}({})z, c              3   :   K   | ]  } d j                   |   yw)z{}={!r}N)r   ).0nvs     r   	<genexpr>z(version_info.__repr__.<locals>.<genexpr>   s     N&i&&+Ns   )r   r   typejoinzip_fieldsr   s    r   __repr__zversion_info.__repr__{   sB    !!JIINc$,,6MNN
 	
r   N)
r   
__module____qualname__int__annotations__strpropertyr   r   r#    r   r   r   r   c   s9    JJJK
 
Q
r   r         r   z09 Apr 2022 23:29 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 
: 
@  1a!4 * **":
    &   6  ; P P . gi'WY&79$N *-AA A fr   