Ë
    |í¼ebB  ã                   ó"  — 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mZ ddlmZ ddlmZ ddlmZ g d	¢Zd
 ee
j>                  e«      fZ  G d„ de«      Z! G d„ de!«      Z" G d„ de!«      Z# G d„ de«      Z$y)zÍ
    pygments.lexers.csound
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Csound languages.

    :copyright: Copyright 2006-2023 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ÚREMOVED_OPCODES)Ú	HtmlLexer)ÚPythonLexer)ÚLuaLexer)ÚCsoundScoreLexerÚCsoundOrchestraLexerÚCsoundDocumentLexerz((?:(?:;|//).*)*)(\n)c            
       óŒ  — e Zd ZdZi ddefdej                  fdej                  fd ee	e«      fg“dd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 ed«      dedfg“d
 ed«      dedfg“ddef ed«      d eej                  e«      dfdej                  dfg“d ed«      dej                  fdefdedfg“ddef ed«      dedfg“d d!ej                  fd"ej                  fd#edfg“d ed«      dej                  dfg“d$d% eej                  e«      d&fd'ej                  fg“d&d(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)d.ej                  fd/ef ed0«      g“d+d.ej                  fd/ef ed1«      g“d-d2ej                  fd,ej                  d3fdej                  dfg“d4 ed«       ed$«      g“d5d6ej                   fd7 eej$                  ej&                  «      fd8ej(                  fg“d0dedfd9ef ed$«      d:efg“d1g i¥Zy;)<ÚCsoundLexerzhttps://csound.com/Ú
whitespacez[ \t]+z/[*](?:.|\n)*?[*]/ú(?:;|//).*$z(\\)(\n)úpreprocessor directivesz)#(?:e(?:nd(?:if)?|lse)\b|##)|@@?[ \t]*\d+z#includestrzincludestr directivez#includezinclude directivez#[ \t]*definezdefine directivez#(?:ifn?def|undef)\bzmacro directivez([^ \t]).*?\1ú#popú")r!   úquoted stringú\nz([A-Z_a-z]\w*)(\())r!   úmacro parameter name listú[A-Z_a-z]\w*)r!   úbefore macro bodyr%   z['#]z\)r'   ú#)r!   ú
macro bodyr)   z(?:\\(?!#)|[^#\\]|\n)+z\\#z(?<!\\)#ú
macro usesz(\$[A-Z_a-z]\w*\.?)(\()zmacro parameter value listz\$[A-Z_a-z]\w*(?:\.|\b)z(?:[^\'#"{()]|\{(?!\{))+z#macro parameter value quoted stringú\{\{z#macro parameter value braced stringz\(z#macro parameter value parentheticalz\\[#'()]z[#'()]r#   úbraced stringz(?:[^\\()]|\\\))+z#pushúwhitespace and macro usesÚnumbersz2\d+[Ee][+-]?\d+|(\d+\.\d*|\d*\.\d+)([Ee][+-]?\d+)?z(0[Xx])([0-9A-Fa-f]+)ú\d+z[^"$]+z[$]N)Ú__name__Ú
__module__Ú__qualname__Úurlr   r	   Ú	MultilineÚSingler   r   ÚPreprocr   r   r   r
   r   ÚFloatr   ÚTypeÚHexÚIntegerÚtokens© ó    ú8/usr/lib/python3/dist-packages/pygments/lexers/csound.pyr   r      s¾  „ Ø
€CðhØØ˜
Ð#Ø" G×$5Ñ$5Ð6Ø˜WŸ^™^Ð,Ø™( 4¨Ó4Ð5ð	
ðhð 	"Ø9¸7¿?¹?ÐKØ˜WŸ_™_Ð.DÐEØ˜'Ÿ/™/Ð+>Ð?Ø˜wŸ™Ð0BÐCØ$ g§o¡oÐ7HÐIð$
ðhð  	Ù�LÓ!Ø˜v vÐ.ð
ð!hð( 	Ù�LÓ!Ø�6Ð4Ð5ð!
ð)hð2 	Ø�JÐÙ�LÓ!Ø"¡H¨W¯_©_¸kÓ$JØ2ð4à˜gŸo™oÐ/LÐMð
ð3hð@ 	$Ù�LÓ!Ø˜gŸo™oÐ.Ø�kÐ"Ø�KÐ!>Ð?ð	&
ðAhðL 	Ø�JÐÙ�LÓ!Ø�;Ð 6Ð7ð
ðMhðV 	Ø&¨¯©Ð8Ø�W—_‘_Ð%Ø˜+ vÐ.ð
ðWhðb 	Ù�LÓ!Ø˜gŸo™o¨vÐ6ð
ðchðl 	Ø'©°'·/±/À;Ó)OØ)ð+à'¨¯©Ð9ð
ðmhðv 	%Ø(¨'¯/©/Ð:Ø�kÐ"Ø�6Ð@ÐAØ�fÐCÐDØ�G—O‘OÐ%JÐKØ�K Ð(ð'
ðwhðF 	.Ø˜'Ÿ/™/Ð*Ø˜ÐÙ�OÓ$ð0
ðGhðP 	.Ø˜'Ÿ/™/Ð*Ø˜ÐÙ�OÓ$ð0
ðQhðZ 	.Ø! 7§?¡?Ð3Ø�G—O‘O WÐ-Ø�G—O‘O VÐ,ð0
ð[hðf 	$Ù�LÓ!Ù�LÓ!ð&
ðghðp 	ØBÀFÇLÁLÐQØ%¡x°·±¸f¿j¹jÓ'IÐJØ�V—^‘^Ð$ð
ðqhð| 	Ø�6˜6Ð"Ø˜ÐÙ�LÓ!Ø�VÐð	
ð}hðJ 	ð 
ñKh�Fr=   r   c                   ó   — e Zd ZdZdZddgZdgZ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 ed«      dej(                  fdedfg ed«      dej                  dfg ed«      dej$                  dfgdej$                  df ed«      gdedfdefgdœZy) r   zO
    For `Csound <https://csound.com>`_ scores.

    .. versionadded:: 2.1
    zCsound Scorezcsound-scorez
csound-scoz*.scor$   r-   r    z[aBbCdefiqstvxy]Úzz([nNpP][pP])(\d+)z[mn]úmark statementr.   z[!+\-*/^%&|<>#~.]z[()\[\]]r"   r#   z\{úloop after left bracer&   r!   r/   )r!   úloop after repeat count)r!   Úloopz\}Úrootú\}\}z[^}]|\}(?!\}))rE   rA   rB   rC   rD   r,   N)r0   r1   r2   Ú__doc__ÚnameÚaliasesÚ	filenamesr   r   r   ÚConstantr   r   r:   r   r   r   r	   r6   r   ÚLabelr;   r<   r=   r>   r   r   ˆ   sJ  „ ñð €DØ˜|Ð,€GØ�	€Ið �JÐÙÐ/Ó0ÙÐ-Ó.à  'Ð*ð �7×#Ñ#Ð$ð "¡8¨G°V·^±^Ó#DÐEà�gÐ/Ð0á�IÓØ! 8Ð,Ø˜+Ð&Ø�6˜?Ð+Ø�G—O‘OÐ%<Ð=ð/
ñ6 Ð/Ó0Ø˜dŸj™jÐ)Ø�J Ð'ð
ñ Ð/Ó0Ø�V—^‘^Ð%HÐIð"
ñ
 Ð/Ó0Ø˜gŸo™oÐ/?Ð@ð$
ð
 �G—O‘O VÐ,Ù�F‹Oð
ð �f˜fÐ%Ø˜vÐ&ð
ña4�Fr=   r   c                   ó  — e Zd ZdZdZddgZddgZ e«       Zd„ Z	d„ Z
i d	d
efd eeej                  ee«      f ed«       ed«      dej$                  dfdej$                  dfdej$                  f ed«      g“ddej&                  j(                  f ed«      defdefdedfdedf eddd¬«      ef eddd¬«      ej0                  fd ed!fd" eej0                  e«      d!fd# eej0                  e«      d$fd% eej0                  e«      d&fd' eej0                  e«      d(fd)ej2                  d*fd+ej2                  d,fd-ej2                  d.fd/ej2                  d0fd1ej&                  j4                  fd2e
fg“d ed«      d3ej6                  fd4efd
ed5fg“d ed«      d6e	d7fd
ed5fg“d8 ed«      d9ej8                  fd:efd
ed5fg“dded5fd;ef ed<«       ed=«       ed>«      d?efg“dd@ed5fdAef ed=«       ed>«      dBefg“d=dCej:                  fg“d>dDej<                  fdEej:                  fg“dF ed«      d:ed5f ed«      g“d! ed«      dGej                  d5f ed5«      g“d* ed«      dedHf ed5«      g“dHdIej:                  fdJej:                  f ed«      g“d, ed«      dedfdedKfd
ed5fg“dKd@ed5fdL e e!«      fg“d. ed«      dedfdedMfd
ed5fg“dMd@ed5fdL e e"«      fg“ ed«      dedfdedNfd
ed5fgd@ed5fdL e e#«      fgdOœ¥Z$yP)Qr   zS
    For `Csound <https://csound.com>`_ orchestras.

    .. versionadded:: 2.1
    zCsound OrchestraÚcsoundz
csound-orcz*.orcz*.udoc              #   óª   K  — |j                  d«      }| j                  j                  |«       |j                  «       t        j
                  |f–— y ­w)Nr   )ÚgroupÚuser_defined_opcodesÚaddÚstartr   ÚFunction)ÚlexerÚmatchÚopcodes      r>   Úopcode_name_callbackz)CsoundOrchestraLexer.opcode_name_callback×   s>   è ø€ Ø—‘˜Q“ˆØ×"Ñ"×&Ñ& vÔ.Ø�k‰k‹mœTŸ]™]¨FÐ2Ó2ùs   ‚AAc              #   ó  K  — t         j                  }|j                  d«      }|t        v s|t        v s|t
        v r$|j                  «       t        j                  |f–— nÆ|| j                  v r$|j                  «       t        j                  |f–— n”t        }t        j                  d|«      }|r]|j                  d«      t         j                  |j                  d«      f–— |j                  d«      t        |j                  d«      f–— n|j                  «       t        |f–— |j                  d«      rO|j                  d«      t        |j                  d«      f–— |j                  d«      ||j                  d«      f–— y y ­w)Né   z^(g?[afikSw])(\w+)é   é   )r   r8   rP   r   r   r   rS   r   ÚBuiltinrQ   rT   ÚreÚsearchr   )rU   rV   Útype_annotation_tokenrH   Ú
name_matchs        r>   Úname_callbackz"CsoundOrchestraLexer.name_callbackÜ   s1  è ø€ Ü '§¡Ðà�{‰{˜1‹~ˆØ”7‰?˜dÔ&8Ñ8¸DÄOÑ<SØ—+‘+“-¤§¡¨tÐ3Ó3Ø�U×/Ñ/Ñ/Ø—+‘+“-¤§¡°Ð4Ó4ä$(Ð!ÜŸ™Ð#8¸$Ó?ˆJÙØ ×&Ñ& qÓ)¬7¯<©<¸×9IÑ9IÈ!Ó9LÐLÒLØ ×&Ñ& qÓ)¬4°×1AÑ1AÀ!Ó1DÐDÓDà—k‘k“m¤T¨4Ð/Ò/à�;‰;�qŒ>Ø—+‘+˜a“.¤+¨u¯{©{¸1«~Ð=Ò=Ø—+‘+˜a“.Ð"7¸¿¹ÀQ»ÐGÓGð ùs   ‚FFrE   r$   z^([ \t]*)(\w+)(:)([ \t]+|$)r-   r    z	\binstr\bz"instrument numbers and identifiersz
\bopcode\bzafter opcode keywordz\b(?:end(?:in|op))\bzpartial statementsz-\b(?:0dbfs|A4|k(?:r|smps)|nchnls(?:_i)?|sr)\br.   u@   \+=|-=|\*=|/=|<<|>>|<=|>=|==|!=|&&|\|\||[~Â¬]|[=!+\-*/^%&|<>#?:]z	[(),\[\]]r"   r#   r+   r,   )ÚdoÚelseÚelseifÚendifÚenduntilÚfiÚifÚithenÚkthenÚodÚthenÚuntilÚwhilez\b)ÚprefixÚsuffix)ÚreturnÚrireturnz\b[ik]?goto\bú
goto labelz"\b(r(?:einit|igoto)|tigoto)(\(|\b)z\b(c(?:g|in?|k|nk?)goto)(\(|\b))rt   úgoto argumentz\b(timout)(\(|\b))rt   ru   ru   z\b(loop_[gl][et])(\(|\b))rt   ru   ru   ru   z\bprintk?s\bzprints opcodez"\b(?:readscore|scoreline(?:_i)?)\bzCsound score opcodez\bpyl?run[it]?\bzPython opcodez\blua_(?:exec|opdef)\bú
Lua opcodez\bp\d+\bz$\b([A-Z_a-z]\w*)(?:(:)([A-Za-z]))?\bz\d+|[A-Z_a-z]\w*z[+,]r!   r&   )r!   úopcode type signaturesrw   z0|[afijkKoOpPStV\[\]]+ú,z
[^\\"$%)]+r*   zescape sequenceszformat specifiersz[\\$%)]rF   z(?:[^\\%)}]|\}(?!\}))+z[\\%)]z\\(?:[\\abnrt"]|[0-7]{1,3})z'%[#0\- +]*\d*(?:\.\d+)?[AE-GXac-giosux]z%%ru   z\w+zprints quoted stringz\\\\[aAbBnNrRtT]z%[!nNrRtT]|[~^]{1,2}zCsound scorez([^}]+)|\}(?!\})ÚPythonÚLua)rv   rz   N)%r0   r1   r2   rG   rH   rI   rJ   ÚsetrQ   rX   rb   r   r   r   rL   r   r   r   ÚDeclarationÚVariableÚGlobalr   r   r   ÚPseudor]   ÚInstancerT   r8   ÚEscapeÚInterpolr   r   r   r   r   r;   r<   r=   r>   r   r   Ê   sB  „ ñð €DØ˜Ð&€GØ˜'Ð"€Iá›5Ðò3ò
Hð*hØØ�JÐà+©X°jÀ$Ç*Á*ÈkÐ[eÓ-fÐgáÐ/Ó0ÙÐ-Ó.à˜7×.Ñ.Ð0TÐUØ˜G×/Ñ/Ð1GÐHØ$ g×&9Ñ&9Ð:áÐ(Ó)ð
ðhð  	Ø=¸t¿}¹}×?SÑ?SÐTá�IÓàPÐRZÐ[Ø˜;Ð'à�6˜?Ð+Ø�f˜oÐ.áð ð  ¨ô/ð 18ð9ñ Ð)°%ÀÔFÈÏÉÐWà˜w¨Ð5Ø2±H¸W¿^¹^È[Ó4YØðà/±¸'¿.¹.È+Ó1VØ,ð.à!¡8¨G¯N©N¸KÓ#HØ=ð?à(©(°7·>±>À;Ó*OØNðPð ˜dŸl™l¨OÐ<Ø2°D·L±LÐBWÐXØ  $§,¡,°Ð@Ø&¨¯©°lÐCØ˜$Ÿ-™-×0Ñ0Ð1Ø4°mÐDðA!
ð!hðf 	-ÙÐ/Ó0Ø  $§-¡-Ð0Ø�kÐ"Ø�J Ð'ð	/
ðghðt 	ÙÐ/Ó0ØÐ2Ð4VÐWØ�J Ð'ð!
ðuhð~ 	!ÙÐ/Ó0ð '¨¯©Ð5à�;ÐØ�J Ð'ð#
ðhðR 	Ø�6˜6Ð"Ø˜FÐ#Ù�LÓ!ÙÐ&Ó'ÙÐ'Ó(Ø˜Ð ð
ðShðb 	Ø�f˜fÐ%Ø&¨Ð/ÙÐ&Ó'ÙÐ'Ó(Ø˜Ðð
ðchðp 	à+¨V¯]©]Ð;ð
ðqhðZ 	Ø7¸¿¹ÐIØ�F—M‘MÐ"ð
ð[hðd 	ÙÐ/Ó0Ø�; Ð'ÙÐ(Ó)ð
ðehðn 	ÙÐ/Ó0Ø�T—Z‘Z Ð(Ù�F‹Oð
ðohðz 	ÙÐ/Ó0Ø�6Ð1Ð2Ù�F‹Oð
ð{hðD 	Ø  &§-¡-Ð0Ø$ f§m¡mÐ4Ù�OÓ$ð!
ðEhðP 	ÙÐ/Ó0Ø�6˜?Ð+Ø�f˜nÐ-Ø�J Ð'ð	 
ðQhð\ 	Ø�f˜fÐ%Ø ¡%Ð(8Ó"9Ð:ð
ð]hðf 	ÙÐ/Ó0Ø�6˜?Ð+Ø�f˜hÐ'Ø�J Ð'ð	
ðghðr 	Ø�f˜fÐ%Ø ¡%¨Ó"4Ð5ð
ðshñ~ Ð/Ó0Ø�6˜?Ð+Ø�f˜eÐ$Ø�J Ð'ð	
ð �f˜fÐ%Ø ¡%¨£/Ð2ð
òIh�Fr=   r   c                   óÞ  — e Zd ZdZdZddgZdgZ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ej                  dfd ee«      fgdej                  dfd ee«      fgdej                  dfd ee«      fgdefdej$                  dfdej                  dfgdefdedfdedfdedfgd œZy!)"r   zR
    For `Csound <https://csound.com>`_ documents.

    .. versionadded:: 2.1
    zCsound Documentzcsound-documentz
csound-csdz*.csdz/[*](.|\n)*?[*]/r   z[^/;<]+|/(?!/)z<\s*CsInstruments)Ú	orchestraÚtagz<\s*CsScore)Úscorer…   z<\s*[Hh][Tt][Mm][Ll])ÚHTMLr…   z<\s*[\w:.-]+r…   z<\s*/\s*[\w:.-]+\s*>z<\s*/\s*CsInstruments\s*>r!   z%(.|\n)+?(?=<\s*/\s*CsInstruments\s*>)z<\s*/\s*CsScore\s*>z(.|\n)+?(?=<\s*/\s*CsScore\s*>)z<\s*/\s*[Hh][Tt][Mm][Ll]\s*>z((.|\n)+?(?=<\s*/\s*[Hh][Tt][Mm][Ll]\s*>)z\s+z[\w.:-]+\s*=Úattrz/?\s*>z".*?"z'.*?'z[^\s>]+)rE   r„   r†   r‡   r…   rˆ   N)r0   r1   r2   rG   rH   rI   rJ   r	   r4   r5   r   r   ÚTagr   r   r   r   r   Ú	Attributer   r;   r<   r=   r>   r   r   œ  sV  „ ñð €DØ  ,Ð/€GØ�	€Ið ! '×"3Ñ"3Ð4Ø˜WŸ^™^Ð,Ø Ð%à! 4§8¡8Ð-AÐBØ˜TŸX™XÐ'7Ð8Ø$ d§h¡h°Ð@à˜dŸh™h¨Ð.Ø$ d§h¡hÐ/ð
ð *¨4¯8©8°VÐ<Ø5±uÐ=QÓ7RÐSð
ð
 $ T§X¡X¨vÐ6Ø/±Ð7GÓ1HÐIð
ð
 -¨d¯h©h¸Ð?Ø8¹%À	Ó:JÐKð
ð �ZÐ Ø˜dŸn™n¨fÐ5Ø˜Ÿ™ &Ð)ð
ð �ZÐ Ø�v˜vÐ&Ø�v˜vÐ&Ø˜ Ð(ð	
ñA&�Fr=   r   )%rG   r^   Úpygments.lexerr   r   r   r   r   r   Úpygments.tokenr	   r
   r   r   r   r   r   r   r   r   Ú pygments.lexers._csound_builtinsr   r   r   Úpygments.lexers.htmlr   Úpygments.lexers.pythonr   Úpygments.lexers.scriptingr   Ú__all__r5   Únewliner   r   r   r   r<   r=   r>   ú<module>r“      s„   ðñó 
ç O× O÷÷ ÷ ç YÑ YÝ *Ý .Ý .â
M€à#¡X¨g¯n©n¸dÓ%CÐ
D€ôk�*ô kô\?�{ô ?ôDO˜;ô Oôd8˜*õ 8r=   