Your IP : 216.73.216.213
B
ǽ�\�k � @ s* d Z ddlZddlmZmZmZmZmZ ddlm Z m
Z
mZmZm
Z
mZmZmZmZmZ ddlmZ ddlmZmZ ddlmZ ddlmZ dd lmZ dd
lmZ ddl m!Z! ddl"m#Z# d
ddddddddddddddddddgZ$G d d
� d
e�Z%G d!d� de�Z&G d"d� de�Z'G d#d� de�Z(G d$d� de�Z)G d%d� de�Z*G d&d� de�Z+G d'd� de�Z,G d(d� de�Z-G d)d� de�Z.G d*d� de�Z/G d+d� de�Z0G d,d� de�Z1G d-d� de�Z2G d.d� de�Z3G d/d� de�Z4G d0d� de�Z5G d1d2� d2e�Z6G d3d� de�Z7G d4d� de�Z8dS )5z�
pygments.lexers.parsers
~~~~~~~~~~~~~~~~~~~~~~~
Lexers for parser generators.
:copyright: Copyright 2006-2019 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 @ sB e Zd ZdZdZdgZg Zdefgdefgde fde fde fd e fgd
e
jfde
jfgde
fd
e
fde
fde
jfgdejfgdefdefdefdefdefdefdefdefdefdefdefdefdefdefged�ed �ed!�ed"�ed#�ed$�ed%�d&ed'fd(efd)efg
d*d+�d,� d- efd&ed.fd/ed0fgd1� Zd2S )3r z�
A pure `Ragel <http://www.complang.org/ragel/>`_ lexer. Use this for
fragments of Ragel. For ``.rl`` files, use RagelEmbeddedLexer instead
(or one of the language-specific subclasses).
.. versionadded:: 1.1
ZRagelZragelz\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'(\\\\|\\'|[^'])*'z\[(\\\\|\\\]|[^\]])*\]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�
whitespace�comments�keywords�numbers�identifiers� operatorsz\{�host�=�;�(�|) z[^{}\'"/#]+z[^\\]\\[{}]z"(\\\\|\\"|[^"])*"z'(\\\\|\\'|[^'])*'z//.*$\n?z/\*(.|\n)*?\*/z\#.*$\n?z/(?!\*)(\\\\|\\/|[^/])*/�/z)+z#pushz\}z#pop) r0 r1 r2 r3 r/ r4 r5 �rootr6 N)�__name__�
__module__�__qualname__�__doc__�name�aliases� filenamesr r
r r ZHex�Integerr �Regexr
�Variabler r r �joinr �tokens� rI rI �H/opt/alt/python37/lib/python3.7/site-packages/pygments/lexers/parsers.pyr % sX
c @ s� e Zd ZdZdZdgZdgZdd�d� d efd e e
ee�e
e
�fd
e
dfgdd�dd�d� d d
dddddf� d ee�fde
dfgd�Zdd� ZdS )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.
.. versionadded:: 1.1
zEmbedded Ragelzragel-emz*.rlr9 r: ) z
[^%\'"/#]+z%(?=[^%]|$)z"(\\\\|\\"|[^"])*"z'(\\\\|\\'|[^'])*'z/\*(.|\n)*?\*/z//.*$\n?z\#.*$\n?z/(?!\*)(\\\\|\\/|[^/])*/r; z)+z(%%)(?![{%])(.*)($|;)(\n?)z(%%%%|%%)\{zmulti-line-fsm)z[^}\'"\[/#]z\}(?=[^%]|$)z
\}%(?=[^%]|$)z[^\\]\\[{}]z(>|\$|%|<|@|<>)/z/(?!\*)(\\\\|\\/|[^/])*/\*z/(?=[^/*]|$)z"(\\\\|\\"|[^"])*"z'(\\\\|\\'|[^'])*'z\[(\\\\|\\\]|[^\]])*\]z/\*(.|\n)*?\*/z//.*$\n?z\#.*$\n?z\}%%z#pop)r<