|e0edZddlZddlmZmZmZmZmZddlm Z m Z m Z m Z m Z mZmZmZmZmZddlmZddlmZmZddlmZddlmZdd lmZdd lmZdd l m!Z!dd l"m#Z#gd Z$GddeZ%GddeZ&GddeZ'GddeZ(GddeZ)GddeZ*GddeZ+GddeZ,GddeZ-Gd d!eZ.Gd"d#eZ/Gd$d%eZ0Gd&d'eZ1Gd(d)eZ2Gd*d+eZ3Gd,d-eZ4Gd.d/eZ5Gd0d1eZ6Gd2d3eZ7Gd4d5eZ8y)6z pygments.lexers.parsers ~~~~~~~~~~~~~~~~~~~~~~~ Lexers for parser generators. :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N) RegexLexerDelegatingLexerincludebygroupsusing) PunctuationOtherTextCommentOperatorKeywordNameStringNumber Whitespace) JavaLexer)CLexerCppLexer)ObjectiveCLexer)DLexer) CSharpLexer) RubyLexer) PythonLexer) PerlLexer) RagelLexerRagelEmbeddedLexer RagelCLexer RagelDLexer RagelCppLexerRagelObjectiveCLexerRagelRubyLexerRagelJavaLexer AntlrLexerAntlrPythonLexerAntlrPerlLexerAntlrRubyLexer AntlrCppLexerAntlrCSharpLexerAntlrObjectiveCLexerAntlrJavaLexerAntlrActionScriptLexer TreetopLexer EbnfLexerc eZdZdZdZdZdgZgZdefgde fgde fde fd e fd e fgd e jfd e jfgd ejfdej fdefdej"fgdej&fgdefdefdefdefdefdefdefdefdefdefdefdefdefdefged ed!ed"ed#ed$ed%ed&d'ed(fd)efd*efg d+d,j/d-zd.zefd'ed/fd0ed1fgd2 Zy3)4rzA pure `Ragel `_ lexer. Use this for fragments of Ragel. For ``.rl`` files, use :class:`RagelEmbeddedLexer` instead (or one of the language-specific subclasses). .. versionadded:: 1.1 Ragelz&http://www.colm.net/open-source/ragel/ragel\s+z\#.*$z(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)\bz0x[0-9A-Fa-f]+z [+-]?[0-9]+"(\\\\|\\[^\\]|[^"\\])*"'(\\\\|\\[^\\]|[^'\\])*'z\[(\\\\|\\[^\\]|[^\\\]])*\]/(?!\*)(\\\\|\\[^\\]|[^/\\])*/z [a-zA-Z_]\w*,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\(|\)literals whitespacecommentskeywordsnumbers identifiers operators\{host=;(|) z [^{}\'"/#]+ [^\\]\\[{}]r2r3//.*$\n?/\*(.|\n)*?\*/\#.*$\n?r4/)+#push\}#pop) r8r9r:r;r7r<r=rootr?N)__name__ __module__ __qualname____doc__nameurlaliases filenamesrr r rHexIntegerrDoubleSingleRegexrVariabler rrjoinr tokens9/usr/lib/python3/dist-packages/pygments/lexers/parsers.pyrr#s D 2CiGIZ  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 (+ mMFr_rc eZdZdZdZdgZdgZddjdzdzefd e e e e e e fd e d fgddjddjd zdzd dddddfzdze e fde dfgdZdZy)rz 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. .. versionadded:: 1.1 zEmbedded Ragelzragel-em*.rlrBrC) z [^%\'"/#]+z %(?=[^%]|$)r2r3rFrErGr4rHrIz(%%)(?![{%])(.*)($|;)(\n?)z (%%%%|%%)\{multi-line-fsm)z [^}\'"\[/#]z \}(?=[^%]|$)z \}%(?=[^%]|$)rDz(>|\$|%|<|@|<>)/z /(?!\*)(\\\\|\\[^\\]|[^/\\])*/\*z /(?=[^/*]|$)r2r3z\[(\\\\|\\[^\\]|[^\]\\])*\]rFrErGz\}%%rL)rMrcc d|vS)Nz @LANG: indepr^texts r` analyse_textzRagelEmbeddedLexer.analyse_texts %%r_N)rNrOrPrQrRrTrUr\r rrrrr r]rgr^r_r`rrs DlGIDII &+H[5::5F5@$-H I [*: ;3 8DIItyy"().,+.!;<=<j)= +@k6 *C" 9?FB&r_rc:eZdZdZdZddgZdgZfdZdZxZ S)r!zK A lexer for Ragel in a Ruby host file. .. versionadded:: 1.1 zRagel in Ruby Hostz ragel-rubyzragel-rbrbc 8t|ttfi|yN)super__init__rrselfoptions __class__s r`rlzRagelRubyLexer.__init__ $6B'Br_c d|vS)Nz @LANG: rubyr^res r`rgzRagelRubyLexer.analyse_text $$r_ rNrOrPrQrRrTrUrlrg __classcell__rps@r`r!r!s+ DZ(GIC%r_r!c8eZdZdZdZdgZdgZfdZdZxZ S)rzH A lexer for Ragel in a C host file. .. versionadded:: 1.1 zRagel in C Hostzragel-crbc 8t|ttfi|yrj)rkrlrrrms r`rlzRagelCLexer.__init__ !3?w?r_c d|vS)Nz@LANG: cr^res r`rgzRagelCLexer.analyse_text T!!r_rtrvs@r`rr( DkGI@"r_rc8eZdZdZdZdgZdgZfdZdZxZ S)rzH A lexer for Ragel in a D host file. .. versionadded:: 1.1 zRagel in D Hostzragel-drbc 8t|ttfi|yrj)rkrlrrrms r`rlzRagelDLexer.__init__ryr_c d|vS)Nz@LANG: dr^res r`rgzRagelDLexer.analyse_textr{r_rtrvs@r`rrr|r_rc8eZdZdZdZdgZdgZfdZdZxZ S)rzJ A lexer for Ragel in a C++ host file. .. versionadded:: 1.1 zRagel in CPP Hostz ragel-cpprbc 8t|ttfi|yrj)rkrlrrrms r`rlzRagelCppLexer.__init__s #5AAr_c d|vS)Nz @LANG: c++r^res r`rgzRagelCppLexer.analyse_texts t##r_rtrvs@r`rr s( DmGIB$r_rc8eZdZdZdZdgZdgZfdZdZxZ S)r zS A lexer for Ragel in an Objective C host file. .. versionadded:: 1.1 zRagel in Objective C Hostz ragel-objcrbc 8t|ttfi|yrj)rkrlrrrms r`rlzRagelObjectiveCLexer.__init__(s *<HHr_c d|vS)Nz @LANG: objcr^res r`rgz!RagelObjectiveCLexer.analyse_text+rsr_rtrvs@r`r r s( 'DnGII%r_r c8eZdZdZdZdgZdgZfdZdZxZ S)r"zK A lexer for Ragel in a Java host file. .. versionadded:: 1.1 zRagel in Java Hostz ragel-javarbc 8t|ttfi|yrj)rkrlrrrms r`rlzRagelJavaLexer.__init__:rqr_c d|vS)Nz @LANG: javar^res r`rgzRagelJavaLexer.analyse_text=rsr_rtrvs@r`r"r"/s( DnGIC%r_r"ceZdZdZdZdgZgZdZdZdZ dZ dZ d e fgd e fd e fged ed dezdzeee ee ej$efdedfdedfdezdzeee ej(e edfdedfdezdzezdzeej*e ee ej*e edfdezdzeee ej*edfg de dfd e fed d!ed"fd#edfged ed d$efd!ed"fd#edfd%ezd&zeee ej*fd'ezd&zeee ej*fdedfd(eee edfd)ezd*zeee ej*e efdezdzeej*e edfd+edfg ed ed dedfd+efd,ej.fd-ej0fd.efd/ej2fd0ej(fd1efd2efd!ed"fd#edfd3edfged ed d#efd4ezd5ze zd6zeej*e ee ee efd7edfged ed d#efd4ezd8zd9j7ee e d:fzd*zeej(e ee ee efd7edfgd4d9j7d;zdeej(eej<fd#ed?fd7edfgd4d9j7d@zdeej(eej<fdBefgdC ZdDZ yE)Fr#z Generic `ANTLR`_ Lexer. Should not be called directly, instead use DelegatingLexer for your target language. .. versionadded:: 1.1 .. _ANTLR: http://www.antlr.org/ ANTLRantlrz [A-Za-z]\w*[A-Z]\w*z[a-z]\w*z\'(?:\\\\|\\\'|[^\']*)\'z[0-9]+r1z//.*$rFr8r9z*(lexer|parser|tree)?(\s*)(grammar\b)(\s*)(z)(;)z options\broztokens\br]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\nrLz\sz\[nested-arg-actionr>z returns\bz(throws)(\s+)()z (,)(\s*)(z(scope)(\s+)(\{)z (scope)(\s+)(z )(\s*)(;)r6r2r3z<<([^>]|>[^>])>>z \$?[A-Z_]\w*z \$?[a-z_]\w*z-(\+|\||->|=>|=|\(|\)|\.\.|\.|\?|\*|\^|!|\#|~)r5rArBz)(\s*)(=)?(\s*)(z )?(\s*)(;)rKz)(\s*)(=)(\s*)(rCz\*)z [^${}\'"/\\]+r2r3rErFr4z\\(?!%)rHrIz(\\)(%)z(\$[a-zA-Z]+)(\.?)(text|value)?rJ)z [^$\[\]\'"/]+r2r3rErFr4rHz\]z(\\\\|\\\]|\\\[|[^\[\]])+) r8r9rMrrrr]rorrcLtjd|tjS)Nz^\s*grammar\s+[a-zA-Z0-9]+\s*;)researchMres r`rgzAntlrLexer.analyse_textsyy:D"$$GGr_N)!rNrOrPrQrRrTrU_id _TOKEN_REF _RULE_REF_STRING_LITERAL_INTrr rrr rClassrr[LabelrrXrYConstantr r\r r Propertyr]rgr^r_r`r#r#As DiGI CJI1O DZ  w   ( L ! J  :S @6 I gz7J !# $7I . '8 ,  #m 3 gz4==*!#$, ."7K 8 S[/ /# 5 E djj*k:jj*k; ?r_rtrvs@r`r'r's) #DmGI:?r_r'c:eZdZdZdZdgZddgZfdZdZxZ S)r)zB ANTLR with Objective-C Target .. versionadded:: 1.1 zANTLR With ObjectiveC Targetz antlr-objcrrc 8t|ttfi|yrj)rkrlrr#rms r`rlzAntlrObjectiveCLexer.__init__"s *@@r_c\tj|xrtjd|S)Nz^\s*language\s*=\s*ObjC\s*;)r#rgrrres r`rgz!AntlrObjectiveCLexer.analyse_text%s)&&t,< II4d ; `_ grammars. Not for direct use; use :class:`TreetopLexer` instead. .. versionadded:: 1.6 spacezrequire[ \t]+[^\n\r]+[\n\r]zmodule\bmodulez grammar\bgrammarendrJz[A-Z]\w*(?:::[A-Z]\w*)*zrule\brulez include\brrrLr2r3z([A-Za-z_]\w*)(:)z [A-Za-z_]\w*z[()]z [?+*/&!~]z$\[(?:\\.|\[:\^?[a-z]+:\]|[^\\\]])+\]z([0-9]*)(\.\.)([0-9]*)z (<)([^>]+)(>)r> inline_module\.rubyrKz[^{}]+z [ \t\n\r]+z#[^\n]*zend\b) rMrrrrrrrrN)rNrOrPrQrr r NamespacerrrrXrYrrrr rZrrWrr r]r^r_r`rrs 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 TZZM N K 1 FLL ! "E6 " K (   E7 # E6 "   J '  ( w ' o:Fr_rc4eZdZdZdZdgZddgZfdZxZS)r,ze A lexer for `Treetop `_ grammars. .. versionadded:: 1.6 Treetoptreetopz *.treetopz*.ttc 8t|ttfi|yrj)rkrlrrrms r`rlzTreetopLexer.__init__s $4@@r_) rNrOrPrQrRrTrUrlrurvs@r`r,r,s, DkGf%IAAr_r,c eZdZdZdZdgZdgZdgZedededd e d fgedededd e jfd e jfd e jfdefde fdedfdedfg defgdej$dfgdej$feddej$dfdej$fgdefgdZy)r-z Lexer for `ISO/IEC 14977 EBNF `_ grammars. .. versionadded:: 2.0 EBNFebnfz*.ebnfz text/x-ebnfr8 comment_start identifierr@ productionz"[^"]*"z'[^']*'z (\?[^?]*\?)z [\[\]{}(),|]-rArLrr1z\(\*commentz[^*)]z\*\)z[*)]z([a-zA-Z][\w \-]*))rMrr8rrrN)rNrOrPrQrRrTrU mimetypesrr rrXrYrEntityrr r Multiliner r]r^r_r`r-r-s) DhG II L ! O $ L ! 8\ *   L ! O $ L !  '  ' T[[ ) k * 8  ; ' K (  TN g'' 3 w(( ) O $ g'' 0 g'' (  #G , ?"Fr_r-)9rQrpygments.lexerrrrrrpygments.tokenrr r r r r rrrrpygments.lexers.jvmrpygments.lexers.c_cpprrpygments.lexers.objectiverpygments.lexers.drpygments.lexers.dotnetrpygments.lexers.rubyrpygments.lexers.pythonrpygments.lexers.perlr__all__rrr!rrrr r"r#r'r)r(r$r*r&r%r+rr,r-r^r_r`rsQ ...)25$.*.* (\\~P&P&f%_%$"/"$"/"$$O$$%?%$%_%$~H~HF?O?&