+
    TBig                        R t ^ RIt^ RIHtHtHtHtHt ^ RIH	t	H
t
HtHtHtHtHtHtHtHt ^ RIHt ^ RIHtHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
I H!t! ^ RI"H#t# . R4Ot$ ! R R]4      t% ! R  R]4      t& ! R! R]4      t' ! R" R]4      t( ! R# R]4      t) ! R$ R]4      t* ! R% R]4      t+ ! R& R]4      t, ! R' R]4      t- ! R( R]4      t. ! R) R]4      t/ ! R* R]4      t0 ! R+ R]4      t1 ! R, R]4      t2 ! R- R]4      t3 ! R. R]4      t4 ! R/ R]4      t5 ! R0 R1]4      t6 ! R2 R]4      t7 ! R3 R]4      t8R# )5z
pygments.lexers.parsers
~~~~~~~~~~~~~~~~~~~~~~~

Lexers for parser generators.

:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
N)
RegexLexerDelegatingLexerincludebygroupsusing)
PunctuationOtherTextCommentOperatorKeywordNameStringNumber
Whitespace)	JavaLexer)CLexerCppLexer)ObjectiveCLexer)DLexer)CSharpLexer)	RubyLexer)PythonLexer)	PerlLexer
RagelLexerRagelEmbeddedLexerRagelCLexerRagelDLexerRagelCppLexerRagelObjectiveCLexerRagelRubyLexerRagelJavaLexer
AntlrLexerAntlrPythonLexerAntlrPerlLexerAntlrRubyLexerAntlrCppLexerAntlrCSharpLexerAntlrObjectiveCLexerAntlrJavaLexerAntlrActionScriptLexerTreetopLexer	EbnfLexerc                   8   ] tR t^#tRtRtRtR.t. tRt	RR]
3.RR	]3.R
R]3R]3R]3R]3.RR]P                  3R]P                  3.RR]P"                  3R]P$                  3R]3R]P&                  3.RR]P*                  3.RR]3R]3R]3R]3R]3R]3R ]3R!]3R"]3R#]3R$]3R%]3R&]3R']3.R(]! R4      ]! R4      ]! R4      ]! R
4      ]! R4      ]! R4      ]! R4      R)]R*3R+]3R,]3.
R*R-R.P3                  R54      ,           R/,           ]3R)]R03R1]R23./	tR3tR4# )6r   zA pure `Ragel <www.colm.net/open-source/ragel>`_ lexer.  Use this
for fragments of Ragel.  For ``.rl`` files, use
:class:`RagelEmbeddedLexer` instead (or one of the
language-specific subclasses).

Ragel&http://www.colm.net/open-source/ragel/ragel1.1
whitespace\s+commentsz\#.*$keywordsz(access|action|alphtype)\bz (getkey|write|machine|include)\bz2(any|ascii|extend|alpha|digit|alnum|lower|upper)\bz3(xdigit|cntrl|graph|print|punct|space|zlen|empty)\bnumbersz0x[0-9A-Fa-f]+z[+-]?[0-9]+literals"(\\\\|\\[^\\]|[^"\\])*"'(\\\\|\\[^\\]|[^'\\])*'z\[(\\\\|\\[^\\]|[^\\\]])*\]/(?!\*)(\\\\|\\[^\\]|[^/\\])*/identifiersz[a-zA-Z_]\w*	operators,z\||&|--?z
\.|<:|:>>?:z->z(>|\$|%|<|@|<>)(/|eof\b)z(>|\$|%|<|@|<>)(!|err\b)z(>|\$|%|<|@|<>)(\^|lerr\b)z(>|\$|%|<|@|<>)(~|to\b)z(>|\$|%|<|@|<>)(\*|from\b)z>|@|\$|%z\*|\?|\+|\{[0-9]*,[0-9]*\}z!|\^z\(|\)root\{host=;(|)+#push\}#pop N)	z[^{}\'"/#]+[^\\]\\[{}]r8   r9   //.*$\n?/\*(.|\n)*?\*/\#.*$\n?r:   /)__name__
__module____qualname____firstlineno____doc__nameurlaliases	filenamesversion_addedr   r
   r   r   HexIntegerr   DoubleSingleRegexr   Variabler   r   r   joinr   tokens__static_attributes__rJ       </usr/lib/python3.14/site-packages/pygments/lexers/parsers.pyr   r   #   s    D
2CiGIM 	Z 
 	w
 	*G40':BGLCWM	
 	

+V^^,
 	(&--8(&--8+V4.=	
 	dmm,
 	8(#H%8H((3((3*H5'2*H5(#*H5hx 
  	JL!JJIM"K K(8;
 	DII   " #" #& K)K(+
mMFrc   c                   V  a  ] tR t^t o RtRtR.tR.tRtRt	RRR	P                  R4      ,           R,           ]3R]! ]]! ]4      ]]4      3R]R3.RRR	P                  RR	P                  R4      ,           R,           R
RRRRR34      ,           R,           ]! ]4      3R]R3./tR tRtV tR# )r   z
A lexer for Ragel embedded in a host language file.

This will only highlight Ragel statements. If you want host language
highlighting then call the language-specific Ragel lexer.
zEmbedded Ragelzragel-em*.rlr/   r1   r?   rD   rE   r8   r9   rM   rL   rN   rF   z(%%)(?![{%])(.*)($|;)(\n?)z(%%%%|%%)\{zmulti-line-fsmz\[(\\\\|\\[^\\]|[^\]\\])*\]z\}%%rI   c                    R V 9   # )z@LANG: indeprJ   texts   &rd   analyse_textRagelEmbeddedLexer.analyse_text   s    %%rc   rJ   N)	z
[^%\'"/#]+z%(?=[^%]|$)r8   r9   rM   rL   rN   r:   rO   )z[^}\'"\[/#]z\}(?=[^%]|$)z\}%(?=[^%]|$)rK   z(>|\$|%|<|@|<>)/z /(?!\*)(\\\\|\\[^\\]|[^/\\])*/\*z/(?=[^/*]|$))rP   rQ   rR   rS   rT   rU   rW   rX   rV   rY   r`   r   r   r   r   r   r	   ra   rj   rb   __classdictcell____classdict__s   @rd   r   r      s     DlGI
2CM 	DII     & +H[5::5F5@$-H I
 [*:;3
6 	DIItyy "  ( ). ,+.!;  < =< j)=+@ k6*C"
9?FB& &rc   c                   V   a a ] tR t^t oRtRtRR.tR.tRtRt	V 3R lt
R	 tR
tVtV ;t# )r    z(
A lexer for Ragel in a Ruby host file.
zRagel in Ruby Hostz
ragel-rubyzragel-rbrf   r/   r1   c                <   < \         SV `  ! \        \        3/ VB  R # N)super__init__r   r   selfoptions	__class__s   &,rd   rs   RagelRubyLexer.__init__       $6B'Brc   c                    R V 9   # )z@LANG: rubyrJ   rh   s   &rd   rj   RagelRubyLexer.analyse_text       $$rc   rJ   rP   rQ   rR   rS   rT   rU   rW   rX   rV   rY   rs   rj   rb   rl   __classcell__rw   rn   s   @@rd   r    r       s<       DZ(GI
2CMC% %rc   c                   T   a a ] tR t^t oRtRtR.tR.tRtRt	V 3R lt
R tR	tVtV ;t# )
r   z%
A lexer for Ragel in a C host file.
zRagel in C Hostzragel-crf   r/   r1   c                <   < \         SV `  ! \        \        3/ VB  R # rq   )rr   rs   r   r   rt   s   &,rd   rs   RagelCLexer.__init__       !3?w?rc   c                    R V 9   # )z@LANG: crJ   rh   s   &rd   rj   RagelCLexer.analyse_text       T!!rc   rJ   r}   r   s   @@rd   r   r      9      DkGI
2CM@" "rc   c                   T   a a ] tR t^t oRtRtR.tR.tRtRt	V 3R lt
R tR	tVtV ;t# )
r   z%
A lexer for Ragel in a D host file.
zRagel in D Hostzragel-drf   r/   r1   c                <   < \         SV `  ! \        \        3/ VB  R # rq   )rr   rs   r   r   rt   s   &,rd   rs   RagelDLexer.__init__  r   rc   c                    R V 9   # )z@LANG: drJ   rh   s   &rd   rj   RagelDLexer.analyse_text  r   rc   rJ   r}   r   s   @@rd   r   r      r   rc   c                   T   a a ] tR tRt oRtRtR.tR.tRtRt	V 3R lt
R	 tR
tVtV ;t# )r   i
  z'
A lexer for Ragel in a C++ host file.
zRagel in CPP Hostz	ragel-cpprf   r/   r1   c                <   < \         SV `  ! \        \        3/ VB  R # rq   )rr   rs   r   r   rt   s   &,rd   rs   RagelCppLexer.__init__  s    #5AArc   c                    R V 9   # )z
@LANG: c++rJ   rh   s   &rd   rj   RagelCppLexer.analyse_text  s    t##rc   rJ   r}   r   s   @@rd   r   r   
  s9      DmGI
2CMB$ $rc   c                   T   a a ] tR tRt oRtRtR.tR.tRtRt	V 3R lt
R	 tR
tVtV ;t# )r   i  z0
A lexer for Ragel in an Objective C host file.
zRagel in Objective C Hostz
ragel-objcrf   r/   r1   c                <   < \         SV `  ! \        \        3/ VB  R # rq   )rr   rs   r   r   rt   s   &,rd   rs   RagelObjectiveCLexer.__init__'  s    *<HHrc   c                    R V 9   # )z@LANG: objcrJ   rh   s   &rd   rj   !RagelObjectiveCLexer.analyse_text*  r|   rc   rJ   r}   r   s   @@rd   r   r     s9      'DnGI
2CMI% %rc   c                   T   a a ] tR tRt oRtRtR.tR.tRtRt	V 3R lt
R	 tR
tVtV ;t# )r!   i.  z(
A lexer for Ragel in a Java host file.
zRagel in Java Hostz
ragel-javarf   r/   r1   c                <   < \         SV `  ! \        \        3/ VB  R # rq   )rr   rs   r   r   rt   s   &,rd   rs   RagelJavaLexer.__init__9  ry   rc   c                    R V 9   # )z@LANG: javarJ   rh   s   &rd   rj   RagelJavaLexer.analyse_text<  r|   rc   rJ   r}   r   s   @@rd   r!   r!   .  s9       DnGI
2CMC% %rc   c                     a  ] tR tRt o RtRtR.t. tRtRt	Rt
RtR	tR
tRtRR]3.RR]3R]3.R]! R4      ]! R4      R]
,           R,           ]! ]]]]]P*                  ]4      3R]R3R]R3R]
,           R,           ]! ]]]P.                  ]]4      R3R]R3R]
,           R,           ]
,           R,           ]! ]P0                  ]]]]P0                  ]]4      R3R]
,           R ,           ]! ]]]P0                  ]4      RI3.	RR#]R$3R%]3]! R4      R&]R'3R(]R3.R"]! R4      ]! R4      R)]3R&]R'3R(]R3R*]
,           R+,           ]! ]]]P0                  4      3R,]
,           R+,           ]! ]]]P0                  4      3R]R3R-]! ]]]4      R3R.]
,           R/,           ]! ]]]P0                  ]]4      3R]
,           R,           ]! ]P0                  ]]4      R3R0]R$3.R!]! R4      ]! R4      R]R3R0]3R1]P4                  3R2]P6                  3R3]3R4]P8                  3R5]P.                  3R6]3R7]3R&]R'3R(]R3R8]R$3.R]! R4      ]! R4      R(]3R9],           R:,           ],           R;,           ]! ]P0                  ]]]]]]4      3R<]R$3.R]! R4      ]! R4      R(]3R9]
,           R=,           R>P=                  ]
]]R?34      ,           R/,           ]! ]P.                  ]]]]]]4      3R<]R$3.RR9R>P=                  RJ4      ,           R@,           ] 3RA]! ]] 4      3RB]! ]P.                  ]]PB                  4      3R(]RC3R<]R$3.R'R9R>P=                  RK4      ,           R@,           ] 3R&]RC3RD]R$3RB]! ]P.                  ]]PB                  4      3RE] 3./
t"RF t#RGt$V t%RH# )Lr"   i@  zk
Generic ANTLR Lexer.
Should not be called directly, instead
use DelegatingLexer for your target language.
ANTLRantlrhttps://www.antlr.orgr1   z[A-Za-z]\w*[A-Z]\w*z[a-z]\w*z\'(?:\\\\|\\\'|[^\']*)\'z[0-9]+r2   r3   r4   z//.*$rM   r?   z*(lexer|parser|tree)?(\s*)(grammar\b)(\s*)(z)(;)z	options\brv   ztokens\bra   z(scope)(\s*)(z
)(\s*)(\{)actionz(catch|finally)\b	exceptionz(@z)(\s*)(::)?(\s*)(z0((?:protected|private|public|fragment)\b)?(\s*)(z)(!)?	rule-altsrule-prelimsz\nrI   z\sz\[znested-arg-actionr@   z	returns\bz(throws)(\s+)()z	(,)(\s*)(z(scope)(\s+)(\{)z(scope)(\s+)(z	)(\s*)(;)r>   r8   r9   z<<([^>]|>[^>])>>z\$?[A-Z_]\w*z\$?[a-z_]\w*z-(\+|\||->|=>|=|\(|\)|\.\.|\.|\?|\*|\^|!|\#|~)r=   rC   rD   z)(\s*)(=)?(\s*)(z
)?(\s*)(;)rH   z)(\s*)(=)(\s*)(rE   z\*rF   z(\\)(%)z(\$[a-zA-Z]+)(\.?)(text|value)?rG   z\]z(\\\\|\\\]|\\\[|[^\[\]])+c                N    \         P                  ! R V \         P                  4      # )z^\s*grammar\s+[a-zA-Z0-9]+\s*;)researchMrh   s   &rd   rj   AntlrLexer.analyse_text  s    yy:D"$$GGrc   rJ   N)r   r   )z[^${}\'"/\\]+r8   r9   rL   rM   r:   z\\(?!%)rO   )z[^$\[\]\'"/]+r8   r9   rL   rM   r:   rO   )&rP   rQ   rR   rS   rT   rU   rW   rX   rV   rY   _id
_TOKEN_REF	_RULE_REF_STRING_LITERAL_INTr   r
   r   r   r   r   Classr   r_   Labelr   r\   r]   Constantr   r`   r	   r   Propertyra   rj   rb   rl   rm   s   @rd   r"   r"   @  s     DiGI
!CM
CJI1OD 	Z 
 	w(
 	L!J:S@6Igz7J

!#$ 7I.'8,#m3gz4==*!#$,. "7K8S[//#5Edjj*k:jj*k;<DF A3FPgz4::{C*,-
4 	J'JJK!45K*
 	L!J7#K!45K*$s*gz4::68C#%k:tzz:< 7I. !(7J"L#l2gz4::z;OQ S[=(djj*k:HF ;'3
6 	L!J 7I.; )&--8(&--8 &) dmm,dmm,=xH;K!45K*;'-
0 	L!JK J!44Fdjj*k:j+78 K(	
 	L!JK CZ,,XXsOT59:;=IJdmmZjJ56 K(	
 	DII   & '& '( +u56/dmm[$--@BK)K(3
6 	DII     !  !& K)K(/dmm[$--@B)511
YfFPH Hrc   c                   V   a a ] tR tRt oRtRtR.tRR.tRtRt	V 3R	 lt
R
 tRtVtV ;t# )r&   i  z
ANTLR with C++ Target
zANTLR With CPP Targetz	antlr-cpp*.G*.gr   r1   c                <   < \         SV `  ! \        \        3/ VB  R # rq   )rr   rs   r   r"   rt   s   &,rd   rs   AntlrCppLexer.__init__  s    :99rc   c                    \         P                  V 4      ;'       d'    \        P                  ! R V \        P                  4      # )z^\s*language\s*=\s*C\s*;r"   rj   r   r   r   rh   s   &rd   rj   AntlrCppLexer.analyse_text  s4    &&t, ? ?II14>	?rc   rJ   r}   r   s   @@rd   r&   r&     s:      #DmGI
!CM:? ?rc   c                   V   a a ] tR tRt oRtRtR.tRR.tRtRt	V 3R	 lt
R
 tRtVtV ;t# )r(   i  z
ANTLR with Objective-C Target
zANTLR With ObjectiveC Targetz
antlr-objcr   r   r   r1   c                <   < \         SV `  ! \        \        3/ VB  R # rq   )rr   rs   r   r"   rt   s   &,rd   rs   AntlrObjectiveCLexer.__init__  s    *@@rc   c                j    \         P                  V 4      ;'       d    \        P                  ! R V 4      # )z^\s*language\s*=\s*ObjC\s*;)r"   rj   r   r   rh   s   &rd   rj   !AntlrObjectiveCLexer.analyse_text"  s.    &&t, < <II4d;	<rc   rJ   r}   r   s   @@rd   r(   r(     s;      *DnGI
!CMA< <rc   c                   X   a a ] tR tRt oRtRtRR.tRR.tRtR	t	V 3R
 lt
R tRtVtV ;t# )r'   i'  z
ANTLR with C# Target
zANTLR With C# Targetzantlr-csharpzantlr-c#r   r   r   r1   c                <   < \         SV `  ! \        \        3/ VB  R # rq   )rr   rs   r   r"   rt   s   &,rd   rs   AntlrCSharpLexer.__init__2      j<G<rc   c                    \         P                  V 4      ;'       d'    \        P                  ! R V \        P                  4      # )z^\s*language\s*=\s*CSharp2\s*;r   rh   s   &rd   rj   AntlrCSharpLexer.analyse_text5  s7    &&t, E EII7rttD	Erc   rJ   r}   r   s   @@rd   r'   r'   '  s?      "Dz*GI
!CM=E Erc   c                   V   a a ] tR tRt oRtRtR.tRR.tRtRt	V 3R	 lt
R
 tRtVtV ;t# )r#   i:  z
ANTLR with Python Target
zANTLR With Python Targetzantlr-pythonr   r   r   r1   c                <   < \         SV `  ! \        \        3/ VB  R # rq   )rr   rs   r   r"   rt   s   &,rd   rs   AntlrPythonLexer.__init__E  r   rc   c                    \         P                  V 4      ;'       d'    \        P                  ! R V \        P                  4      # )z^\s*language\s*=\s*Python\s*;r   rh   s   &rd   rj   AntlrPythonLexer.analyse_textH  s7    &&t, D DII6bddC	Drc   rJ   r}   r   s   @@rd   r#   r#   :  s=      &DGI
!CM=D Drc   c                   V   a a ] tR tRt oRtRtR.tRR.tRtRt	V 3R	 lt
R
 tRtVtV ;t# )r)   iM  z
ANTLR with Java Target
zANTLR With Java Targetz
antlr-javar   r   r   r1   c                <   < \         SV `  ! \        \        3/ VB  R # rq   )rr   rs   r   r"   rt   s   &,rd   rs   AntlrJavaLexer.__init__X      J:':rc   c                @    \         P                  V 4      ;'       d    R # )g?)r"   rj   rh   s   &rd   rj   AntlrJavaLexer.analyse_text[  s    &&t,444rc   rJ   r}   r   s   @@rd   r)   r)   M  s:      $DnGI
!CM;5 5rc   c                   X   a a ] tR tRt oRtRtRR.tRR.tRtR	t	V 3R
 lt
R tRtVtV ;t# )r%   i`  z
ANTLR with Ruby Target
zANTLR With Ruby Targetz
antlr-rubyzantlr-rbr   r   r   r1   c                <   < \         SV `  ! \        \        3/ VB  R # rq   )rr   rs   r   r"   rt   s   &,rd   rs   AntlrRubyLexer.__init__k  r   rc   c                    \         P                  V 4      ;'       d'    \        P                  ! R V \        P                  4      # )z^\s*language\s*=\s*Ruby\s*;r   rh   s   &rd   rj   AntlrRubyLexer.analyse_textn  s7    &&t, B BII4dBDDA	Brc   rJ   r}   r   s   @@rd   r%   r%   `  s?      $DZ(GI
!CM;B Brc   c                   V   a a ] tR tRt oRtRtR.tRR.tRtRt	V 3R	 lt
R
 tRtVtV ;t# )r$   is  z
ANTLR with Perl Target
zANTLR With Perl Targetz
antlr-perlr   r   r   r1   c                <   < \         SV `  ! \        \        3/ VB  R # rq   )rr   rs   r   r"   rt   s   &,rd   rs   AntlrPerlLexer.__init__~  r   rc   c                    \         P                  V 4      ;'       d'    \        P                  ! R V \        P                  4      # )z^\s*language\s*=\s*Perl5\s*;r   rh   s   &rd   rj   AntlrPerlLexer.analyse_text  s7    &&t, C CII5tRTTB	Crc   rJ   r}   r   s   @@rd   r$   r$   s  s<      $DnGI
!CM;C Crc   c                   X   a a ] tR tRt oRtRtRR.tRR.tRtR	t	V 3R
 lt
R tRtVtV ;t# )r*   i  z 
ANTLR with ActionScript Target
zANTLR With ActionScript Targetzantlr-actionscriptzantlr-asr   r   r   r1   c                @   < ^ RI Hp \        SV `  ! V\        3/ VB  R# )    )ActionScriptLexerN)pygments.lexers.actionscriptr   rr   rs   r"   )ru   rv   r   rw   s   &, rd   rs   AntlrActionScriptLexer.__init__  s    B*JB'Brc   c                    \         P                  V 4      ;'       d'    \        P                  ! R V \        P                  4      # )z#^\s*language\s*=\s*ActionScript\s*;r   rh   s   &rd   rj   #AntlrActionScriptLexer.analyse_text  s7    &&t, J JII<dBDDI	Jrc   rJ   r}   r   s   @@rd   r*   r*     s@      ,D#Z0GI
!CMCJ Jrc   c                      ] tR tRtRtR]! R4      R]3R]P                  R3R]R	3.R]! R4      ]! R
4      R]R3R]R	3R]	P                  3.R	]! R4      ]! R
4      R]R3R]R3R]	3.R]! R4      R]	P                  R3.R]! R4      ]! R
4      R]P                  3R]P                  3R]! ]	P                  ]4      3R]	3R]3R]3R]P$                  3R]! ]P(                  ]]P(                  4      3R]! ]]	P                  ]4      3R]R3R]P$                  3.RR]R3R ]R3R!]3.RR]R3R ]R3R!]3.RR"]3R#]P                  3.R
R$]R3./	tR%tR&# )'TreetopBaseLexeri  z
A base lexer for `Treetop <http://treetop.rubyforge.org/>`_ grammars.
Not for direct use; use :class:`TreetopLexer` instead.

.. versionadded:: 1.6
r?   spacezrequire[ \t]+[^\n\r]+[\n\r]zmodule\bmodulez	grammar\bgrammarendrG   z[A-Z]\w*(?:::[A-Z]\w*)*zrule\brulez	include\br   r   rI   r8   r9   z([A-Za-z_]\w*)(:)z[A-Za-z_]\w*z[()]z	[?+*/&!~]z$\[(?:\\.|\[:\^?[a-z]+:\]|[^\\\]])+\]z([0-9]*)(\.\.)([0-9]*)z(<)([^>]+)(>)r@   inline_module\.rubyrH   z[^{}]+z
[ \t\n\r]+z#[^\n]*zend\brJ   N)rP   rQ   rR   rS   rT   r   r   r   	Namespacer   r   r   r\   r]   r   r   r   r   r^   r   r[   r   r
   ra   rb   rJ   rc   rd   r   r     s    	G+U3'++X67I.	
 	GEN'7+7I.'8
 	GEN(7I.$
 	G'V<
 	GEN(&--8(&--8!8DJJ#DEd#k"8$4fllC&fnnh?AxTZZMNK1FLL!
  	E6"K(

 	E7#E6"

 	J'(
 	w'
o:Frc   r   c                   P   a a ] tR tRt oRtRtR.tRR.tRtRt	V 3R	 lt
R
tVtV ;t# )r+   i  z
A lexer for Treetop grammars.
Treetoptreetopz	*.treetopz*.ttz!https://cjheath.github.io/treetopz1.6c                <   < \         SV `  ! \        \        3/ VB  R # rq   )rr   rs   r   r   rt   s   &,rd   rs   TreetopLexer.__init__  s    $4@@rc   rJ   )rP   rQ   rR   rS   rT   rU   rW   rX   rV   rY   rs   rb   rl   r~   r   s   @@rd   r+   r+     s8      DkGf%I
-CMA Arc   c                      ] tR tRtRtRtR.tR.tR.tRt	Rt
R	]! R
4      ]! R4      ]! R4      R]R3.R]! R
4      ]! R4      ]! R4      R]P                  3R]P                  3R]P"                  3R]3R]3R]R3R]R3.
R
R]3.RR]P*                  R3.RR]P*                  3]! R4      R]P*                  R3R]P*                  3.RR]3./tRtR# ) r,   i  zm
Lexer for `ISO/IEC 14977 EBNF
<https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form>`_
grammars.
EBNFebnfz*.ebnfztext/x-ebnfz?https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Formz2.0r?   r2   comment_start
identifierrB   
productionz"[^"]*"z'[^']*'z(\?[^?]*\?)z[\[\]{}(),|]-rC   rI   r   r3   z\(\*commentz[^*)]z\*\)z[*)]z([a-zA-Z][\w \-]*)rJ   N)rP   rQ   rR   rS   rT   rU   rW   rX   	mimetypesrV   rY   r   r   r   r\   r]   r   Entityr   r	   r
   	Multiliner   ra   rb   rJ   rc   rd   r,   r,     sE    DhG
II
KCM 	L!O$L!8\*	
 	L!O$L!''T[[)k*8;'K(
 	TN
 	g''3
 	w(()O$g''0g''(	
 	"G,
?"Frc   )r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   )9rT   r   pygments.lexerr   r   r   r   r   pygments.tokenr   r   r	   r
   r   r   r   r   r   r   pygments.lexers.jvmr   pygments.lexers.c_cppr   r   pygments.lexers.objectiver   pygments.lexers.dr   pygments.lexers.dotnetr   pygments.lexers.rubyr   pygments.lexers.pythonr   pygments.lexers.perlr   __all__r   r   r    r   r   r   r   r!   r"   r&   r(   r'   r#   r)   r%   r$   r*   r   r+   r,   rJ   rc   rd   <module>r
     sQ   
 . . . ) 2 5 $ . * . *([ [|P& P&f%_ %$"/ "$"/ "$$O $$%? %$%_ %$|H |HB?O ?&<? <&E E&D D&5_ 5&B_ B&C_ C&J_ J(Bz BJA? A0
 0rc   