File: //usr/lib/python3/dist-packages/pygments/lexers/__pycache__/csound.cpython-38.pyc
U
G�
\�@ � @ s� d Z ddlZddlmZmZmZmZmZmZ ddl m
Z
mZmZm
Z
mZmZmZmZmZmZ ddlmZmZ ddlmZ ddlmZ ddlmZ d d
dgZdee
je�fZG d
d� de�Z G dd � d e �Z!G dd
� d
e �Z"G dd� de�Z#dS )z�
pygments.lexers.csound
~~~~~~~~~~~~~~~~~~~~~~
Lexers for Csound languages.
:copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�
RegexLexer�bygroups�default�include�using�words)
�Comment�Error�Keyword�Name�Number�Operator�Punctuation�String�Text�
Whitespace)�OPCODES�DEPRECATED_OPCODES)� HtmlLexer)�PythonLexer)�LuaLexer�CsoundScoreLexer�CsoundOrchestraLexer�CsoundDocumentLexerz((?:(?:;|//).*)*)(\n)c @ s� e Zd Zdefdejfdejfdeee�fgdej fdej dfdej d fd
ej dfge
d�d
edfgdefe
d�deej e�dfdej dfge
d�dej fdefdedfgdefe
d�dedfgdej fdej fdedfge
d�dej dfgdeej e�dfdej fgdej fdefded fd!ed"fd#ej d$fdedfgd%ej fd&e
fe
d'�gd%ej fd&e
fe
d(�gd)ej fd#ej d*fdej dfge
d�e
d+�gd,ejfd-eejej�fd.ejfgg d/�Zd0S )1�CsoundLexerz[ \t]+z/[*](?:.|\n)*?[*]/�(?:;|//).*$z(\\)(\n)z)#(?:e(?:nd(?:if)?|lse)\b|##)|@@?[ \t]*\d+z#include�include directivez
#[ \t]*define�define directivez#(?:ifn?def|undef)\b�macro directive�
whitespacez
([^ \t]).*?\1�#pop�\nz([A-Z_a-z]\w*)(\())r �macro parameter name list�[A-Z_a-z]\w*)r �before macro bodyz['#]z\)�#)r �
macro bodyz(?:\\(?!#)|[^#\\]|\n)+z\\#z(?<!\\)#z(\$[A-Z_a-z]\w*\.?)(\()�macro parameter value listz\$[A-Z_a-z]\w*(?:\.|\b)z(?:[^\'#"{()]|\{(?!\{))+�"�#macro parameter value quoted string�\{\{�#macro parameter value braced stringz\(�#macro parameter value parentheticalz\\[#'()]z[#'()]�
quoted string�
braced stringz(?:[^\\()]|\\\))+z#push�
macro usesz2\d+[Ee][+-]?\d+|(\d+\.\d*|\d*\.\d+)([Ee][+-]?\d+)?z(0[Xx])([0-9A-Fa-f]+)�\d+)r �preprocessor directivesr r r"