3 ��X 1 � @ s� d Z ddlZddlmZmZmZmZmZmZ ddl m Z mZmZm Z mZmZmZmZ ddlmZ ddlmZ ddlmZ ddlmZ d d dgZdee je�fZG d d� de�ZG dd � d e�ZG dd � d e�ZG 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�Keyword�Name�Number�Operator�Punctuation�String�Text)�OPCODES)� HtmlLexer)�PythonLexer)�LuaLexer�CsoundScoreLexer�CsoundOrchestraLexer�CsoundDocumentLexerz((?:(?:;|//).*)*)(\n)c @ s, e Zd Zdefdefdejfgdeeje�dfdejfgdeeje�fdeeje�d fge d �e d�gdejfd ejdfdejdfdejfge d �de dfge d �deeje�dfdejdfge d �dedfgdejfdedfgdeeje�fdeeje�dfgdefdedfgdejfded fgd!�Zd"S )#�CsoundLexerz[ \t]+z\\\nz/[*](.|\n)*?[*]/z(\$\w+\.?)(\()zfunction macro callz\$\w+(\.|\b)z((?:\\['\)]|[^'\)])+)(')z ([^'\)]+)(\))z#pop� whitespacez macro callz$#(e(nd(if)?|lse)|ifn?def|undef)\b|##z #include\br z#[ \t]*define\bz macro namez@+[ \t]*\d*�"zsingle-line stringz (\w+)(\()zfunction macro argument listz\w+z"object macro definition after name�#zobject macro replacement textz(\\#|[^#])+z#pop:3z(\w+)(['#])z (\w+)(\))z$function macro definition after namezfunction macro replacement textz#pop:4)r z macro callzfunction macro callzwhitespace or macro callzpreprocessor directivesr z macro namez"object macro definition after namezobject macro replacement textzfunction macro argument listz$function macro definition after namezfunction macro replacement textN)�__name__� __module__�__qualname__r r � Multiliner �Preprocr r r �tokens� r! r! �/usr/lib/python3.6/csound.pyr s>