ó

Þà]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 d e j d f g d 6e	 d ƒ d e
 d f g d	 6e	 d ƒ d e
 d5 f g d 6d e f e	 d ƒ d e e j e ƒ d6 f d e j d7 f g d 6e	 d ƒ d e j f d e f d e d8 f g d 6d e f e	 d ƒ d e d9 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 d0 e e j e j ƒ f d1 e j f g d2 6d e
 d f d3 e
 f e	 d" ƒ d4 e
 f g d 6g  d+ 6Z RS(:   s   [ \t]+s   /[*](?:.|\n)*?[*]/s   (?:;|//).*$s   (\\)(\n)t
   whitespaces)   #(?:e(?:nd(?:if)?|lse)\b|##)|@@?[ \t]*\d+s   #includestrs   includestr directives   #includes   include directives   #[ \t]*defines   define directives   #(?:ifn?def|undef)\bs   macro directives   preprocessor directivess   ([^ \t]).*?\1s   #popt   "s   quoted strings   \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   (?:[^\'#"{()]|\{(?!\{))+s#   macro parameter value quoted strings   \{\{s#   macro parameter value braced strings   \(s#   macro parameter value parentheticals   \\[#'()]s   [#'()]s   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   numberss   [^"$]+s   [$](   s   #pops   quoted string(   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      sv   																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 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(    sO   
    For `Csound <https://csound.com>`_ 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   \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   ‡   s8   											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 d f d e dT f d e
 d@ f g d7 6dJ e d@ f dU e e  ƒ f g dT 6e d
 ƒ d e d f d e dV f d e
 d@ f g d9 6dJ e d@ f dU e e! ƒ f g dV 6e d
 ƒ d e d f d e dW f d e
 d@ f g d; 6dJ e d@ f dU e e" ƒ f g dW 6Z# RS(^   sS   
    For `Csound <https://csound.com>`_ 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   sA  t  j } | j d ƒ } | t k s0 | t k rJ | j ƒ  t j | f Vn¡ | |  j k rs | j ƒ  t j	 | f Vnx t } 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 ƒ | | j d ƒ f Vn  d  S(   Ni   s   ^(g?[afikSw])(\w+)i   i   (   R   R#   R1   R   R   R4   R	   t   BuiltinR2   R5   t   ret   searchR   (   R6   R7   t   type_annotation_tokenR+   t
   name_match(    (    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@   RA   RB   RC   RD   RE   RF   RG   RH   RI   RJ   RK   RL   (   RO   RP   (   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(#   sR   
    For `Csound <https://csound.com>`_ 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lBÐ