Ë
    |í¼e,  ã                   ó¸   — d Z ddlmZmZmZmZmZmZ ddlm	Z	m
Z
mZmZmZmZmZmZmZmZ g d¢Z G d„ de«      Z G d„ de«      Z G d	„ d
e«      Z G d„ de«      Zy)zë
    pygments.lexers.grammar_notation
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for grammar notations like BNF.

    :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    )Ú
RegexLexerÚbygroupsÚincludeÚthisÚusingÚwords)
ÚCommentÚKeywordÚLiteralÚNameÚNumberÚOperatorÚPunctuationÚStringÚTextÚ
Whitespace)ÚBnfLexerÚ	AbnfLexerÚ	JsgfLexerÚPegLexerc                   ój   — e Zd ZdZdZdgZdgZdgZdd ee	e
j                  e	«      fdefd	efd
efgiZy)r   a>  
    This lexer is for grammar notations which are similar to
    original BNF.

    In order to maximize a number of targets of this lexer,
    let's decide some designs:

    * We don't distinguish `Terminal Symbol`.

    * We do assume that `NonTerminal Symbol` are always enclosed
      with arrow brackets.

    * We do assume that `NonTerminal Symbol` may include
      any printable characters except arrow brackets and ASCII 0x20.
      This assumption is for `RBNF <http://www.rfc-base.org/txt/rfc-5511.txt>`_.

    * We do assume that target notation doesn't support comment.

    * We don't distinguish any operators and punctuation except
      `::=`.

    Though these decision making might cause too minimal highlighting
    and you might be disappointed, but it is reasonable for us.

    .. versionadded:: 2.1
    ÚBNFÚbnfz*.bnfz
text/x-bnfÚrootz(<)([ -;=?-~]+)(>)z::=z[^<>:]+ú.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesr   r   r   ÚClassr   r   Útokens© ó    úB/usr/lib/python3/dist-packages/pygments/lexers/grammar_notation.pyr   r      sg   „ ñð6 €DØˆg€GØ�	€IØ�€Ið 	Ø"Ù�k 4§:¡:¨{Ó;ð=ð �XÐð ˜ÐØ�4ˆLð

ð�Fr'   r   c                   óÚ   — e Zd ZdZdZdZdgZdgZdgZdZ	dd	e
j                  fd
efdefdefdefdefdefdefdefdefdefdef ee	d¬«      efdej"                  fdefdefdefdefgiZy)r   z…
    Lexer for IETF 7405 ABNF.

    (Updates `5234 <http://www.ietf.org/rfc/rfc5234.txt>`_) grammars.

    .. versionadded:: 2.1
    ÚABNFz#http://www.ietf.org/rfc/rfc7405.txtÚabnfz*.abnfztext/x-abnf)ÚALPHAÚBITÚCHARÚCRÚCRLFÚCTLÚDIGITÚDQUOTEÚHEXDIGÚHTABÚLFÚLWSPÚOCTETÚSPÚVCHARÚWSPr   z;.*$z(%[si])?"[^"]*"z%b[01]+\-[01]+\bz%b[01]+(\.[01]+)*\bz%d[0-9]+\-[0-9]+\bz%d[0-9]+(\.[0-9]+)*\bz%x[0-9a-fA-F]+\-[0-9a-fA-F]+\bz!%x[0-9a-fA-F]+(\.[0-9a-fA-F]+)*\bz\b[0-9]+\*[0-9]+z
\b[0-9]+\*z\b[0-9]+ú\*ú\b©Úsuffixz[a-zA-Z][a-zA-Z0-9-]*\bz(=/|=|/)z[\[\]()]ú\s+r   N)r   r   r   r   r    Úurlr!   r"   r#   Ú_core_rulesr	   ÚSingler   r   r   r
   r   r$   r   r   r   r%   r&   r'   r(   r   r   B   só   „ ñð €DØ
/€CØˆh€GØ�
€IØ�€Ið€Kð 	à�g—n‘nÐ%ð   Ð)ð ! 'Ð*Ø# WÐ-ð # GÐ,Ø% wÐ/ð /°Ð8Ø1°7Ð;ð ! (Ð+Ø˜HÐ%Ø˜(Ð#Ø�HÐñ �; uÔ-¨wÐ7ð (¨¯©Ð4ð ˜(Ð#ð ˜+Ð&ð �ZÐ Ø�4ˆLðS*
ð,�Fr'   r   c                   óè  — e Zd ZdZdZdZdgZdgZg d¢Z e	d«       e	d«      gd	e
j                  d
fde
j                  fde
j                  fgde
j                  fdefdefdefdej$                  fdej(                  dfdej*                  df edd¬«      ej0                  fdej0                  dfd eeej6                  e«      fdedfdefgdej(                  dfd ej:                  fd!ej(                  fgd"ej*                  dfd ej:                  fd#ej*                  fgdedfdefd$efd%ej<                  fgd&edfd'efdefd( eej<                  ee«      fd)ej>                  fgd*e
j                  dfd+ eee
j                  ee
j@                  e e!e"d,¬-«      «      fd. ee
j                  e
j@                  «      fd/e
j                  fgd0 eee
j                  «      f e	d«      d1e
j                  fgd2œ	Z#y3)4r   zI
    For JSpeech Grammar Format grammars.

    .. versionadded:: 2.2
    ÚJSGFzhttps://www.w3.org/TR/jsgf/Újsgfz*.jsgf)zapplication/jsgfzapplication/x-jsgfz	text/jsgfÚcommentsúnon-commentsz
/\*\*(?!/)údocumentation commentz/\*[\w\W]*?\*/z//.*$z\A#JSGF[^;]*r@   ú;z[=|()\[\]*+]z/[^/]+/ú"Ústringz\{Útag)ÚimportÚpublicr=   r>   z	grammar\búgrammar namez(<)(NULL|VOID)(>)ú<Úrulenamez\w+|[^\s;=|()\[\]*+/"{<\w]+z#popz\\.z[^\\"]+z\}z[^\\}]+ú\.z[^;\s.]+ú>r<   z([^.>]+)(\s*)(\.)z[^.>]+z\*/zH^(\s*)(\*?)(\s*)(@(?:example|see))(\s+)([\w\W]*?(?=(?:^\s*\*?\s*@|\*/)))Úexample)Ústatez(^\s*\*?\s*)(@\S*)z[^*\n@]+|\w|\Wz(\n\s*)(\*)r   )	r   rG   rH   rL   rM   rP   rR   rI   rU   N)$r   r   r   r   r    rA   r!   r"   r#   r   r	   Ú	MultilinerC   ÚPreprocr   r   r   r   ÚFloatr   ÚDoubleÚOtherr   r
   ÚReservedr   r   ÚBuiltinr   ÚEscapeÚ	NamespaceÚConstantÚSpecialr   r   r%   r&   r'   r(   r   r   …   sŠ  „ ñð
 €DØ
'€CØˆh€GØ�
€IÚG€Iñ �JÓÙ�NÓ#ð
ð
 ˜G×-Ñ-Ð/FÐGØ × 1Ñ 1Ð2Ø�w—~‘~Ð&ð
ð ˜gŸo™oÐ.Ø�ZÐ Ø�;ÐØ˜hÐ'Ø˜Ÿ™Ð&Ø�6—=‘= (Ð+Ø�F—L‘L %Ð(ÙÐ'°Ô6¸×8HÑ8HÐIØ˜7×+Ñ+¨^Ð<Ø!Ù�k 4§<¡<°Ó=ð?à�; 
Ð+Ø+¨TÐ2ð
ð  �6—=‘= &Ð)Ø�V—]‘]Ð#Ø˜Ÿ™Ð'ð
ð �F—L‘L &Ð)Ø�V—]‘]Ð#Ø˜Ÿ™Ð&ð
ð �; Ð'Ø�ZÐ Ø�KÐ Ø˜$Ÿ.™.Ð)ð	
ð �; Ð'Ø�KÐ Ø�ZÐ Ø!¡8¨D¯N©N¸DÀ+Ó#NÐOØ˜Ÿ™Ð&ð
ð �W×&Ñ&¨Ð/ð2á�j '×"3Ñ"3°ZÀÇÁØ ¡%¨°IÔ">ó@ðAð #Ù�g×'Ñ'¨¯©Ó9ð;à × 1Ñ 1Ð2ð	"
ð ™X j°'×2CÑ2CÓDÐEÙ�NÓ#Ø�7×$Ñ$Ð%ð
ñu?�Fr'   r   c                   óÈ   — e Zd ZdZdZdZdgZdgZdgZdde	j                  fd	efd
efdefd eeee«      fdej                   fdej                  fdej$                  fdefg	iZy)r   u-  
    This lexer is for Parsing Expression Grammars (PEG).

    Various implementations of PEG have made different decisions
    regarding the syntax, so let's try to be accommodating:

    * `<-`, `â†�`, `:`, and `=` are all accepted as rule operators.

    * Both `|` and `/` are choice operators.

    * `^`, `â†‘`, and `~` are cut operators.

    * A single `a-z` character immediately before a string, or
      multiple `a-z` characters following a string, are part of the
      string (e.g., `r"..."` or `"..."ilmsuxa`).

    .. versionadded:: 2.6
    ÚPEGz#https://bford.info/pub/lang/peg.pdfÚpegz*.pegz
text/x-pegr   z#.*$u   <-|[â†�:=/|&!?*+^â†‘~]z[()]rS   z (\[)([^\]]*(?:\\.[^\]\\]*)*)(\])z$[a-z]?"[^"\\]*(?:\\.[^"\\]*)*"[a-z]*z$[a-z]?'[^'\\]*(?:\\.[^'\\]*)*'[a-z]*u#   [^\s<â†�:=/|&!?*+\^â†‘~()\[\]"\'#]+r   N)r   r   r   r   r    rA   r!   r"   r#   r	   rC   r   r   r
   r   r   rZ   r   r$   r   r%   r&   r'   r(   r   r   Ó   sª   „ ñð& €DØ
/€CØˆg€GØ�	€IØ�€Ið 	à�g—n‘nÐ%ð '¨Ð1ð �kÐ"ð �GÐð 1Ù�k 6¨;Ó7ð9ð 5°f·m±mÐDØ4°f·m±mÐDð 4°T·Z±ZÐ@ð �4ˆLð3
ð�Fr'   r   N)r   Úpygments.lexerr   r   r   r   r   r   Úpygments.tokenr	   r
   r   r   r   r   r   r   r   r   Ú__all__r   r   r   r   r&   r'   r(   ú<module>rh      s`   ðñ÷ M× L÷4÷ 4÷ 4ò =€ô-ˆzô -ô`@�
ô @ôFK�
ô Kô\6ˆzõ 6r'   