o ae@sdZddlZddlmZmZmZmZmZddlm Z m Z m Z m Z m Z mZmZmZmZmZddlmZddlmZmZddlmZddlmZdd lmZdd lmZdd l m!Z!dd l"m#Z#gd Z$GdddeZ%GdddeZ&GdddeZ'GdddeZ(GdddeZ)GdddeZ*GdddeZ+GdddeZ,GdddeZ-Gd d!d!eZ.Gd"d#d#eZ/Gd$d%d%eZ0Gd&d'd'eZ1Gd(d)d)eZ2Gd*d+d+eZ3Gd,d-d-eZ4Gd.d/d/eZ5Gd0d1d1eZ6Gd2d3d3eZ7Gd4d5d5eZ8dS)6z pygments.lexers.parsers ~~~~~~~~~~~~~~~~~~~~~~~ Lexers for parser generators. :copyright: Copyright 2006-2021 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@sFeZdZdZdZdgZgZdefgdefgde fde fde fd e fgd e j fd e j fgd e jfd e jfde fde jfgdejfgdefdefdefdefdefdefdefdefdefdefdefdefdefdefgeded ed!ed"ed#ed$ed%d&ed'fd(efd)efg d*d+d,d-efd&ed.fd/ed0fgd1 Zd2S)3rz A pure `Ragel `_ lexer. Use this for fragments of Ragel. For ``.rl`` files, use RagelEmbeddedLexer instead (or one of the language-specific subclasses). .. versionadded:: 1.1 Ragelragel\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 [^{}\'"/#]+ [^\\]\\[{}]r0r1//.*$\n?/\*(.|\n)*?\*/\#.*$\n?r2/)+#push\}#pop) r6r7r8r9r5r:r;rootr=N)__name__ __module__ __qualname____doc__namealiases filenamesrr r rHexIntegerrDoubleSingleRegexr Variabler rrjoinrtokensr[r[9/usr/lib/python3/dist-packages/pygments/lexers/parsers.pyr#sv  rc @seZdZdZdZdgZdgZddddefd e e e e e e fd e d fgddddd dd dddddfde e fde dfgdZddZdS)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*.rlr@rA) z [^%\'"/#]+z %(?=[^%]|$)r0r1rDrCrEr2rFrGz(%%)(?![{%])(.*)($|;)(\n?)z (%%%%|%%)\{multi-line-fsm)z [^}\'"\[/#]z \}(?=[^%]|$)z \}%(?=[^%]|$)rBz(>|\$|%|<|@|<>)/z /(?!\*)(\\\\|\\[^\\]|[^/\\])*/\*z /(?=[^/*]|$)r0r1z\[(\\\\|\\[^\\]|[^\]\\])*\]rDrCrEz\}%%rJ)rKr^cCd|vS)Nz @LANG: indepr[textr[r[r\ analyse_textzRagelEmbeddedLexer.analyse_textN)rLrMrNrOrPrQrRrYrrrrrr rZrbr[r[r[r\rsF     Arcs:eZdZdZdZddgZdgZfddZdd ZZ S) r zN A lexer for `Ragel`_ in a Ruby host file. .. versionadded:: 1.1 zRagel in Ruby Hostz ragel-rubyzragel-rbr]c tjttfi|dSN)super__init__rrselfoptions __class__r[r\rgzRagelRubyLexer.__init__cCr_)Nz @LANG: rubyr[r`r[r[r\rbrczRagelRubyLexer.analyse_text rLrMrNrOrPrQrRrgrb __classcell__r[r[rkr\r s r c8eZdZdZdZdgZdgZfddZddZZ S) rzK A lexer for `Ragel`_ in a C host file. .. versionadded:: 1.1 zRagel in C Hostzragel-cr]c rdre)rfrgrrrhrkr[r\rgrmzRagelCLexer.__init__cCr_)Nz@LANG: cr[r`r[r[r\rbrczRagelCLexer.analyse_textrnr[r[rkr\r rcrp) rzK A lexer for `Ragel`_ in a D host file. .. versionadded:: 1.1 zRagel in D Hostzragel-dr]c rdre)rfrgrrrhrkr[r\rgrmzRagelDLexer.__init__cCr_)Nz@LANG: dr[r`r[r[r\rbrczRagelDLexer.analyse_textrnr[r[rkr\rrqrcrp) rzM A lexer for `Ragel`_ in a CPP host file. .. versionadded:: 1.1 zRagel in CPP Hostz ragel-cppr]c rdre)rfrgrrrhrkr[r\rgrmzRagelCppLexer.__init__cCr_)Nz @LANG: c++r[r`r[r[r\rbrczRagelCppLexer.analyse_textrnr[r[rkr\r rqrcrp) rzV A lexer for `Ragel`_ in an Objective C host file. .. versionadded:: 1.1 zRagel in Objective C Hostz ragel-objcr]c rdre)rfrgrrrhrkr[r\rg&rmzRagelObjectiveCLexer.__init__cCr_)Nz @LANG: objcr[r`r[r[r\rb)rcz!RagelObjectiveCLexer.analyse_textrnr[r[rkr\rrqrcrp) r!zN A lexer for `Ragel`_ in a Java host file. .. versionadded:: 1.1 zRagel in Java Hostz ragel-javar]c rdre)rfrgrrrhrkr[r\rg8rmzRagelJavaLexer.__init__cCr_)Nz @LANG: javar[r`r[r[r\rb;rczRagelJavaLexer.analyse_textrnr[r[rkr\r!-rqr!c@sNeZdZdZdZdgZgZdZdZdZ dZ dZ d e fgd e fd e fged ed dedeee ee ejefdedfdedfdedeee eje edfdedfdededeeje ee eje edfdedeee ejedfg de dfd e fed d!ed"fd#edfged ed d$efd!ed"fd#edfd%ed&eee ejfd'ed&eee ejfdedfd(eee edfd)ed*eee eje efdedeeje edfd+edfg ed ed dedfd+efd,ejfd-ejfd.efd/ejfd0ejfd1efd2efd!ed"fd#edfd3edfged ed d#efd4ed5e d6eeje ee ee efd7edfged ed d#efd4ed8d9ee e d:fd*eeje ee ee efd7edfgd4d9d;d<efd=eeefd>eejeejfd#ed?fd7edfgd4d9d@d<efd!ed?fdAedfd>eejeejfdBefgdC ZdDdEZ dFS)Gr"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]+r/z//.*$rDr6r7z*(lexer|parser|tree)?(\s*)(grammar\b)(\s*)(z)(;)z options\brjztokens\brZz (scope)(\s*)(z )(\s*)(\{)actionz(catch|finally)\b exceptionz(@z)(\s*)(::)?(\s*)(z0((?:protected|private|public|fragment)\b)?(\s*)(z)(!)?) rule-alts rule-prelimsz\nrJz\sz\[nested-arg-actionr<z returns\bz(throws)(\s+)()z (,)(\s*)(z(scope)(\s+)(\{)z (scope)(\s+)(z )(\s*)(;)r4r0r1z<<([^>]|>[^>])>>z \$?[A-Z_]\w*z \$?[a-z_]\w*z-(\+|\||->|=>|=|\(|\)|\.\.|\.|\?|\*|\^|!|\#|~)r3r?r@z)(\s*)(=)?(\s*)(z )?(\s*)(;)rIz)(\s*)(=)(\s*)(rAz\*)z [^${}\'"/\\]+r0r1rCrDr2z\\(?!%)rFrGz(\\)(%)z(\$[a-zA-Z]+)(\.?)(text|value)?rH)z [^$\[\]\'"/]+r0r1rCrDr2rFz\]z(\\\\|\\\]|\\\[|[^\[\]])+) r6r7rKrvrxrwrZrjrurycCstd|tjS)Nz^\s*grammar\s+[a-zA-Z0-9]+\s*;)researchMr`r[r[r\rbszAntlrLexer.analyse_textN)!rLrMrNrOrPrQrR_id _TOKEN_REF _RULE_REF_STRING_LITERAL_INTrr rrr r ClassrrXLabelrrUrVConstantr rYr rPropertyrZrbr[r[r[r\r"?s                      )r"c:eZdZdZdZdgZddgZfddZdd ZZ S) r&z= `ANTLR`_ with CPP Target .. versionadded:: 1.1 zANTLR With CPP Targetz antlr-cpp*.G*.gc rdre)rfrgrr"rhrkr[r\rg rmzAntlrCppLexer.__init__cCt|o td|tjS)Nz^\s*language\s*=\s*C\s*;r"rbr{r|r}r`r[r[r\rb zAntlrCppLexer.analyse_textrnr[r[rkr\r& r&cr) r(zE `ANTLR`_ with Objective-C Target .. versionadded:: 1.1 zANTLR With ObjectiveC Targetz antlr-objcrrc rdre)rfrgrr"rhrkr[r\rg rmzAntlrObjectiveCLexer.__init__cCst|o td|S)Nz^\s*language\s*=\s*ObjC\s*;)r"rbr{r|r`r[r[r\rb#s  z!AntlrObjectiveCLexer.analyse_textrnr[r[rkr\r(rr(c<eZdZdZdZddgZddgZfddZd d ZZ S) r'z< `ANTLR`_ with C# Target .. versionadded:: 1.1 zANTLR With C# Targetz antlr-csharpzantlr-c#rrc rdre)rfrgrr"rhrkr[r\rg3rmzAntlrCSharpLexer.__init__cCr)Nz^\s*language\s*=\s*CSharp2\s*;rr`r[r[r\rb6rzAntlrCSharpLexer.analyse_textrnr[r[rkr\r'( r'cr) r#z@ `ANTLR`_ with Python Target .. versionadded:: 1.1 zANTLR With Python Targetz antlr-pythonrrc rdre)rfrgrr"rhrkr[r\rgFrmzAntlrPythonLexer.__init__cCr)Nz^\s*language\s*=\s*Python\s*;rr`r[r[r\rbIrzAntlrPythonLexer.analyse_textrnr[r[rkr\r#;rr#cr) r)z= `ANTLR`_ with Java Target .. versionadded:: 1. zANTLR With Java Targetz antlr-javarrc rdre)rfrgrr"rhrkr[r\rgYrmzAntlrJavaLexer.__init__cCst|odS)Ng?)r"rbr`r[r[r\rb\szAntlrJavaLexer.analyse_textrnr[r[rkr\r)Nrr)cr) r%z> `ANTLR`_ with Ruby Target .. versionadded:: 1.1 zANTLR With Ruby Targetz antlr-rubyzantlr-rbrrc rdre)rfrgrr"rhrkr[r\rglrmzAntlrRubyLexer.__init__cCr)Nz^\s*language\s*=\s*Ruby\s*;rr`r[r[r\rborzAntlrRubyLexer.analyse_textrnr[r[rkr\r%arr%cr) r$z> `ANTLR`_ with Perl Target .. versionadded:: 1.1 zANTLR With Perl Targetz antlr-perlrrc rdre)rfrgrr"rhrkr[r\rgrmzAntlrPerlLexer.__init__cCr)Nz^\s*language\s*=\s*Perl5\s*;rr`r[r[r\rbrzAntlrPerlLexer.analyse_textrnr[r[rkr\r$trr$cr) r*zF `ANTLR`_ with ActionScript Target .. versionadded:: 1.1 zANTLR With ActionScript Targetzantlr-actionscriptzantlr-asrrc s&ddlm}tj|tfi|dS)Nr)ActionScriptLexer)pygments.lexers.actionscriptrrfrgr")rirjrrkr[r\rgs zAntlrActionScriptLexer.__init__cCr)Nz#^\s*language\s*=\s*ActionScript\s*;rr`r[r[r\rbrz#AntlrActionScriptLexer.analyse_textrnr[r[rkr\r*s r*c@sTeZdZdZeddefdejdfdedfgededded fdedfd ejfgededd ed fd edfdefgedd ej dfgededde j fde j fde ejefdefdefdefde jfde ejeejfde eej efdedfde jfg dedfdedfdefgded fdedfdefgd efd!ej fgd"edfgd# Zd$S)%TreetopBaseLexerz A base lexer for `Treetop `_ grammars. Not for direct use; use TreetopLexer instead. .. versionadded:: 1.6 spacezrequire[ \t]+[^\n\r]+[\n\r]zmodule\bmodulez grammar\bgrammarendrHz[A-Z]\w*(?:::[A-Z]\w*)*zrule\brulez include\brrtrJr0r1z([A-Za-z_]\w*)(:)z [A-Za-z_]\w*z[()]z [?+*/&!~]z$\[(?:\\.|\[:\^?[a-z]+:\]|[^\\\]])+\]z([0-9]*)(\.\.)([0-9]*)z (<)([^>]+)(>)r< inline_module\.rubyrIz[^{}]+z [ \t\n\r]+z#[^\n]*zend\b) rKrrrrrrrrN)rLrMrNrOrrr Namespacer rrrUrVrrrr rWrrTrr rZr[r[r[r\rsh    rcs2eZdZdZdZdgZddgZfddZZS)r+ze A lexer for `Treetop `_ grammars. .. versionadded:: 1.6 Treetoptreetopz *.treetopz*.ttc rdre)rfrgrrrhrkr[r\rgrmzTreetopLexer.__init__) rLrMrNrOrPrQrRrgror[r[rkr\r+s r+c @seZdZdZdZdgZdgZdgZedededd e d fgedededd e j fd e j fd e jfdefde fdedfdedfg defgdejdfgdejfeddejdfdejfgdefgdZdS)r,z Lexer for `ISO/IEC 14977 EBNF `_ grammars. .. versionadded:: 2.0 EBNFebnfz*.ebnfz text/x-ebnfr6 comment_start identifierr> productionz"[^"]*"z'[^']*'z (\?[^?]*\?)z [\[\]{}(),|]-r?rJrr/z\(\*commentz[^*)]z\*\)z[*)]z([a-zA-Z][\w \-]*))rKrr6rrrN)rLrMrNrOrPrQrR mimetypesrr rrUrVr Entityrr r Multiliner rZr[r[r[r\r,sD    r,)9rOr{pygments.lexerrrrrrpygments.tokenrrr r r r r rrrpygments.lexers.jvmrpygments.lexers.c_cpprrpygments.lexers.objectiverpygments.lexers.drpygments.lexers.dotnetrpygments.lexers.rubyrpygments.lexers.pythonrpygments.lexers.perlr__all__rrr rrrrr!r"r&r(r'r#r)r%r$r*rr+r,r[r[r[r\sD 0        ]SDE