Ë [Êkåˆà]Ýãó¸—dZddlmZmZmZmZmZmZddlm Z m Z m Z m Z m Z mZmZmZmZmZgd¢ZGd„de«ZGd„de«ZGd „d e«ZGd „d e«Zy )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—eZdZdZdZdgZdgZdgZddee e je «fde fd e fd e fgiZy ) ra> 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 `_. * 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Ú mimetypesrrr ÚClassrrÚtokens©óúE/usr/lib/python3.12/site-packages/pygments/lexers/grammar_notation.pyrrsg„ñð6 €D؈g€GØ� €IØ�€Ið Ø "Ù �k 4§:¡:¨{Ó ;ð =ð�XÐ ð˜Ð Ø �4ˆLð  ð �Fr'rcóÚ—eZdZdZdZdZdgZdgZdgZdZ dd e jfd e fd e fd e fd e fde fde fde fde fde fde fde fee d¬«efdej"fde fdefdefdefgiZy)rz… Lexer for IETF 7405 ABNF. (Updates `5234 `_) 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ÚWSPrz;.*$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+rN)rrrrr Úurlr!r"r#Ú _core_rulesr ÚSingler rrr r r$rrrr%r&r'r(rrBsó„ñð €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'rcóè—eZdZdZdZdZdgZdgZgd¢Ze d«e d«gd e jd fd e jfd e jfgd e jfdefdefdefdej$fdej(dfdej*dfedd¬«ej0fdej0dfdeeej6e«fdedfdefg dej(dfd ej:fd!ej(fgd"ej*dfd ej:fd#ej*fgdedfdefd$efd%ej<fgd&edfd'efdefd(eej<ee«fd)ej>fgd*e jdfd+eee jee j@ee!e"d,¬-««fd.ee je j@«fd/e jfgd0eee j«fe d«d1e jfgd2œ Z#y3)4rzI For JSpeech Grammar Format grammars. .. versionadded:: 2.2 ÚJSGFzhttps://www.w3.org/TR/jsgf/Újsgfz*.jsgf)zapplication/jsgfzapplication/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) rrGrHrLrMrPrRrIrUN)$rrrrr rAr!r"r#rr Ú MultilinerCÚPreprocrrrr ÚFloatrÚDoubleÚOtherrr ÚReservedrr ÚBuiltinrÚEscapeÚ NamespaceÚConstantÚSpecialrrr%r&r'r(rr…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'rc óÈ—eZdZdZdZdZdgZdgZdgZdde jfd e fd e fd e fd ee ee «fd ej fdejfdej$fdefg iZy)ru- 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-pegrz#.*$u<-|[â†�:=/|&!?*+^↑~]z[()]rSz (\[)([^\]]*(?:\\.[^\]\\]*)*)(\])z$[a-z]?"[^"\\]*(?:\\.[^"\\]*)*"[a-z]*z$[a-z]?'[^'\\]*(?:\\.[^'\\]*)*'[a-z]*u#[^\s<â†�:=/|&!?*+\^↑~()\[\]"\'#]+rN)rrrrr rAr!r"r#r rCrrr rrrZr r$rr%r&r'r(rrÓ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'rN)rÚpygments.lexerrrrrrrÚpygments.tokenr r r r r rrrrrÚ__all__rrrrr&r'r(Úrhs`ðñ÷M×L÷4÷4÷4ò =€ô-ˆzô-ô`@� ô@ôFK� ôKô\6ˆzõ6r'