ó
xiù\c           @   sO  d  Z  d d l Z d d l m Z m Z m Z m Z m Z m Z d d l	 m
 Z
 m Z m Z m Z m Z m Z m Z m Z m Z m Z d d l m Z m Z d d l m Z d d l m Z d d l m Z d	 d
 d g Z d e e
 j e ƒ f Z d e f d „  ƒ  YZ  d	 e  f d „  ƒ  YZ! d
 e  f d „  ƒ  YZ" d e f d „  ƒ  YZ# d S(   sÍ   
    pygments.lexers.csound
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Csound languages.

    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
iÿÿÿÿN(   t
   RegexLexert   bygroupst   defaultt   includet   usingt   words(
   t   Commentt   Errort   Keywordt   Namet   Numbert   Operatort   Punctuationt   Stringt   Textt
   Whitespace(   t   OPCODESt   DEPRECATED_OPCODES(   t	   HtmlLexer(   t   PythonLexer(   t   LuaLexert   CsoundScoreLexert   CsoundOrchestraLexert   CsoundDocumentLexers   ((?:(?:;|//).*)*)(\n)t   CsoundLexerc        	   B   sÐ  e  Z i d  e f d e j f d e j f d e e e ƒ f g d 6d e j f d e j d f d e j d	 f d
 e j d f g d 6e	 d ƒ d e
 d f g d 6d e f e	 d ƒ d e e j e ƒ d1 f d e j d2 f g d	 6e	 d ƒ d e j f d e f d e d3 f g d 6d e f e	 d ƒ d e d4 f g d 6d e j f d e j f d e d f g d 6e	 d ƒ d e j d f g d 6d e e j e ƒ d f d e j f g d 6d e j f d e f d  e
 d! f d" e
 d# f d$ e j d% f d e d f g d 6d& e j f d' e f e	 d( ƒ g d! 6d& e j f d' e f e	 d) ƒ g d# 6d* e j f d$ e j d+ f d e j d f g d% 6e	 d ƒ e	 d ƒ g d, 6d- e j f d. e e j e j ƒ f d/ e j f g d0 6g  d) 6Z RS(5   s   [ \t]+s   /[*](?:.|\n)*?[*]/s   (?:;|//).*$s   (\\)(\n)t
   whitespaces)   #(?:e(?:nd(?:if)?|lse)\b|##)|@@?[ \t]*\d+s   #includes   include directives   #[ \t]*defines   define directives   #(?:ifn?def|undef)\bs   macro directives   preprocessor directivess   ([^ \t]).*?\1s   #pops   \ns   ([A-Z_a-z]\w*)(\()s   macro parameter name lists   [A-Z_a-z]\w*s   before macro bodys   ['#]s   \)t   #s
   macro bodys   (?:\\(?!#)|[^#\\]|\n)+s   \\#s   (?<!\\)#s   (\$[A-Z_a-z]\w*\.?)(\()s   macro parameter value lists   \$[A-Z_a-z]\w*(?:\.|\b)s
   macro usess   (?:[^\'#"{()]|\{(?!\{))+t   "s#   macro parameter value quoted strings   \{\{s#   macro parameter value braced strings   \(s#   macro parameter value parentheticals   \\[#'()]s   [#'()]s   quoted strings   braced strings   (?:[^\\()]|\\\))+s   #pushs   whitespace and macro usess2   \d+[Ee][+-]?\d+|(\d+\.\d*|\d*\.\d+)([Ee][+-]?\d+)?s   (0[Xx])([0-9A-Fa-f]+)s   \d+t   numbers(   s   #pops   macro parameter name list(   s   #pops   before macro body(   s   #pops   before macro body(   s   #pops
   macro body(   t   __name__t
   __module__R   R   t	   Multilinet   SingleR   R   t   PreprocR   R   R   R   R
   t   FloatR   t   Typet   Hext   Integert   tokens(    (    (    s5   lib/python2.7/site-packages/pygments/lexers/csound.pyR      sh   													c           B   sŒ  e  Z d  Z d Z d d g Z d g Z i d e f e d ƒ e d ƒ d e f d	 e j	 f d
 e
 e e j ƒ f d e d f e d ƒ d e f d e f d e d f d e j d f g d 6e d ƒ d e j f d e d f g d 6d e d f d e f e d ƒ d e f g d 6e d ƒ d e j d! f g d 6e d ƒ d e j d" f g d 6d e j d f e d ƒ g d 6d e d f d e f g d  6Z RS(#   sU   
    For `Csound <https://csound.github.io>`_ scores.

    .. versionadded:: 2.1
    s   Csound Scores   csound-scores
   csound-scos   *.scos   \ns   whitespace and macro usess   preprocessor directivess   [abCdefiqstvxy]t   zs   ([nNpP][pP])(\d+)s   [mn]s   mark statementR   s   [!+\-*/^%&|<>#~.]s   [()\[\]]R   s   quoted strings   \{s   loop after left bracet   roots   [A-Z_a-z]\w*s   #pops   [^"$]+s
   macro usess   [$]s   \d+s   loop after repeat countt   loops   \}s   \}\}s   [^}]|\}(?!\})s   braced string(   s   #pops   loop after repeat count(   s   #popR)   (   R   R   t   __doc__t   namet   aliasest	   filenamesR   R   R   t   ConstantR   R
   R%   R   R   R   R   R!   R	   t   LabelR&   (    (    (    s5   lib/python2.7/site-packages/pygments/lexers/csound.pyR   {   s@   													c           B   s§  e  Z d  Z d Z d d g Z d d g Z e ƒ  Z d „  Z d „  Z	 i d e
 f d	 e e
 e j e ƒ f e d
 ƒ e d ƒ d e j d f d e j d f d e j f e d ƒ g d 6d e j j f e d ƒ d e f d e f d e d f d e d f e dX d( d) d* d) ƒe f e dY d( d) d* d) ƒe j f d- e d. f d/ e e j e ƒ d. f d0 e e j e ƒ dZ f d2 e e j e ƒ d[ f d3 e e j e ƒ d\ f d4 e j d5 f d6 e j d7 f d8 e j d9 f d: e j d; f d< e j j f d= e	 f g d 6e d
 ƒ d> e j f d? e f d e
 d@ f g d 6e d
 ƒ dA e d] f d e
 d@ f g d 6e d
 ƒ dC e j f dD e f d e
 d@ f g dB 6d e d@ f dE e f e dF ƒ e dG ƒ e dH ƒ dI e f g d 6dJ e d@ f dK e f e dG ƒ e dH ƒ dL e f g d 6dM e j f g dG 6dN e j f dO e j f g dH 6e d
 ƒ dD e d@ f e d ƒ g d1 6e d
 ƒ dP e j d@ f e d@ ƒ g d. 6e d
 ƒ d e dQ f e d@ ƒ g d5 6dR e j f dS e j f e d ƒ g dQ 6e d
 ƒ d e dT f d e
 d@ f g d7 6dJ e d@ f dU e e  ƒ f g dT 6e d
 ƒ d e dV f d e
 d@ f g d9 6dJ e d@ f dU e e! ƒ f g dV 6e d
 ƒ d e dW f d e
 d@ f g d; 6dJ e d@ f dU e e" ƒ f g dW 6Z# RS(^   sY   
    For `Csound <https://csound.github.io>`_ orchestras.

    .. versionadded:: 2.1
    s   Csound Orchestrat   csounds
   csound-orcs   *.orcs   *.udoc         c   s:   | j  d ƒ } |  j j | ƒ | j ƒ  t j | f Vd  S(   Ni    (   t   groupt   user_defined_opcodest   addt   startR	   t   Function(   t   lexert   matcht   opcode(    (    s5   lib/python2.7/site-packages/pygments/lexers/csound.pyt   opcode_name_callbackÑ   s    c         c   s‡  | j  d ƒ } | t k s' | t k r– | j ƒ  t j | f V| j  d ƒ rƒ| j d ƒ t | j  d ƒ f V| j d ƒ t j | j  d ƒ f Vqƒní | |  j	 k r¿ | j ƒ  t j
 | f VnÄ t j d | ƒ } | r| j d ƒ t j | j  d ƒ f V| j d ƒ t | j  d ƒ f Vn | j ƒ  t | f V| j  d ƒ rƒ| j d ƒ t | j  d ƒ f V| j d ƒ t | j  d ƒ f Vn  d  S(   Ni   i   i   s   ^(g?[afikSw])(\w+)(   R1   R   R   R4   R	   t   BuiltinR   R   R#   R2   R5   t   ret   search(   R6   R7   R+   t	   nameMatch(    (    s5   lib/python2.7/site-packages/pygments/lexers/csound.pyt   name_callbackÖ   s      )## s   \ns   ^([ \t]*)(\w+)(:)(?:[ \t]+|$)s   whitespace and macro usess   preprocessor directivess	   \binstr\bs"   instrument numbers and identifierss
   \bopcode\bs   after opcode keywords   \b(?:end(?:in|op))\bs   partial statementsR(   s-   \b(?:0dbfs|A4|k(?:r|smps)|nchnls(?:_i)?|sr)\bR   s@   \+=|-=|\*=|/=|<<|>>|<=|>=|==|!=|&&|\|\||[~Â¬]|[=!+\-*/^%&|<>#?:]s	   [(),\[\]]R   s   quoted strings   \{\{s   braced stringt   dot   elset   elseift   endift   enduntilt   fit   ift   ithent   kthent   odt   thent   untilt   whilet   prefixs   \bt   suffixt   returnt   rireturns   \b[ik]?goto\bs
   goto labels"   \b(r(?:einit|igoto)|tigoto)(\(|\b)s   \b(c(?:g|in?|k|nk?)goto)(\(|\b)s   goto arguments   \b(timout)(\(|\b)s   \b(loop_[gl][et])(\(|\b)s   \bprintk?s\bs   prints opcodes"   \b(?:readscore|scoreline(?:_i)?)\bs   Csound score opcodes   \bpyl?run[it]?\bs   Python opcodes   \blua_(?:exec|opdef)\bs
   Lua opcodes   \bp\d+\bs$   \b([A-Z_a-z]\w*)(?:(:)([A-Za-z]))?\bs   \d+|[A-Z_a-z]\w*s   [+,]s   #pops   [A-Z_a-z]\w*s   opcode type signaturess   0|[afijkKoOpPStV\[\]]+t   ,s
   [^\\"$%)]+s
   macro usess   escape sequencess   format specifierss   [\\$%)]s   \}\}s   (?:[^\\%)}]|\}(?!\}))+s   [\\%)]s   \\(?:[\\abnrt"]|[0-7]{1,3})s)   %[#0\- +]*\d*(?:\.\d+)?[diuoxXfFeEgGaAcs]s   %%s   \w+s   prints quoted strings   \\\\[aAbBnNrRtT]s   %[!nNrRtT]|[~^]{1,2}s   Csound scores   ([^}]+)|\}(?!\})t   Pythont   Lua(   R?   R@   RA   RB   RC   RD   RE   RF   RG   RH   RI   RJ   RK   (   RN   RO   (   s
   goto labels   goto argument(   s
   goto labels   goto arguments   goto argument(   s
   goto labels   goto arguments   goto arguments   goto argument(   s   #pops   opcode type signatures($   R   R   R*   R+   R,   R-   t   setR2   R9   R>   R   R   R	   R/   R   R   R   t   Declarationt   Variablet   GlobalR   R   R   t   PseudoR:   t   InstanceR5   R#   t   Escapet   InterpolR   R   R   R   R   R&   (    (    (    s5   lib/python2.7/site-packages/pygments/lexers/csound.pyR   Ä   s¼   									 																		c        
   B   sp  e  Z d  Z d Z d d g Z d g Z i d e j f d e j f d e	 f d e
 j d  f d e
 j d! f d e
 j d" f d e
 j d
 f d e
 j f g d 6d e
 j d f d e e ƒ f g d	 6d e
 j d f d e e ƒ f g d 6d e
 j d f d e e ƒ f g d 6d e	 f d e
 j d f d e
 j d f g d
 6d e	 f d e d f d e d f d e d f g d 6Z RS(#   sX   
    For `Csound <https://csound.github.io>`_ documents.

    .. versionadded:: 2.1
    s   Csound Documents   csound-documents
   csound-csds   *.csds   /[*](.|\n)*?[*]/s   (?:;|//).*$s   [^/;<]+|/(?!/)s   <\s*CsInstrumentst	   orchestrat   tags   <\s*CsScoret   scores   <\s*[Hh][Tt][Mm][Ll]t   HTMLs   <\s*[\w:.-]+s   <\s*/\s*[\w:.-]+\s*>R(   s   <\s*/\s*CsInstruments\s*>s   #pops%   (.|\n)+?(?=<\s*/\s*CsInstruments\s*>)s   <\s*/\s*CsScore\s*>s   (.|\n)+?(?=<\s*/\s*CsScore\s*>)s   <\s*/\s*[Hh][Tt][Mm][Ll]\s*>s(   (.|\n)+?(?=<\s*/\s*[Hh][Tt][Mm][Ll]\s*>)s   \s+s   [\w.:-]+\s*=t   attrs   /?\s*>s   ".*?"s   '.*?'s   [^\s>]+(   R[   R\   (   R]   R\   (   R^   R\   (   R   R   R*   R+   R,   R-   R   R   R    R   R	   t   TagR   R   R   R   t	   AttributeR   R&   (    (    (    s5   lib/python2.7/site-packages/pygments/lexers/csound.pyR   ”  s4   					($   R*   R;   t   pygments.lexerR    R   R   R   R   R   t   pygments.tokenR   R   R   R	   R
   R   R   R   R   R   t    pygments.lexers._csound_builtinsR   R   t   pygments.lexers.htmlR   t   pygments.lexers.pythonR   t   pygments.lexers.scriptingR   t   __all__R    t   newlineR   R   R   R   (    (    (    s5   lib/python2.7/site-packages/pygments/lexers/csound.pyt   <module>
   s   .F`IÐ