a
    ñ»j&  ã                   @   sÂ   d Z ddlZddlmZmZmZmZ ddl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mZ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  dgZ!dZ"e"fd	d
„Z#G dd„ deƒZ$dS )zË
    pygments.lexers.lilypond
    ~~~~~~~~~~~~~~~~~~~~~~~~

    Lexer for LilyPond.

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)ÚbygroupsÚdefaultÚinheritÚwords)ÚSchemeLexer)ÚkeywordsÚpitch_language_namesÚclefsÚscalesÚrepeat_typesÚunitsÚchord_modifiersÚpitchesÚmusic_functionsÚdynamicsÚarticulationsÚmusic_commandsÚmarkup_commandsÚgrobsÚtranslatorsÚcontextsÚcontext_propertiesÚgrob_propertiesÚscheme_functionsÚpaper_variablesÚheader_variables)ÚTokenÚLilyPondLexerz(?=\d|[^\w\-]|[\-_][\W\d])c                 C   s@   d}|dkr|d7 }n|dkr(|d7 }n|dks4J ‚t | ||ƒS )Nz[\-_^]?Ú	mandatoryz\\Úoptionalz\\?Ú
disallowed)r   )ÚnamesZ	backslashÚsuffixÚprefix© r$   ú>E:\soccer\ml_env\Lib\site-packages\pygments/lexers/lilypond.pyÚbuiltin_words$   s    

r&   c                '       s¼  e Zd ZdZdZdZdgZdgZg ZdZ	e
je
jB Z‡ fdd„Zd	ejjfd
ejjfdejjfdejdfdejdfdejfeede d�ejfdejdfdejjfdejjfdejfdejfdejjj fdejjj fdejjj fe!e"dƒej#fe!e$dƒejj%fe!e&dƒejjj'fe!e(dƒejjj)fe!e*dƒejjj+fe!e,dƒejfe!e-dƒej.fe!e/dƒejjj0fe!e1dƒejjj2fe!e3dƒejjj fe!e4dƒejjj5fe!e6dƒejjj7fe!e8dƒejjj9fe!e:dƒejjj;fe!e<dƒejjj=fe!e>dƒejjj?fe!e@dƒejjjAdfe!eBdƒejjjCfe!eDdƒejjjEfd e ejjFfd!ejjGfd"e ejfd#ejfg&d$ejdfd%ejjHfd&ejfgd'ejd(feIgd	ejjfd)e eJejejjjAƒfeKdƒgd*œZL‡  ZMS )+r   z¬
    Lexer for input to LilyPond, a text-based music typesetter.

    .. important::

       This lexer is meant to be used in conjunction with the ``lilypond`` style.
    ÚLilyPondzhttps://lilypond.orgÚlilypondz*.lyz2.11c                 #   sj   t ƒ  |¡D ]X\}}}|tjju s.|tjju rB|tv rXtjjj}n|tjju rXtjjj	}|||fV  qdS )z@Highlight Scheme variables as LilyPond builtins when applicable.N)
ÚsuperÚget_tokens_unprocessedr   ÚNameÚFunctionÚVariabler   ÚBuiltinZSchemeFunctionZSchemeBuiltin)ÚselfÚtextÚindexÚtokenÚvalue©Ú	__class__r$   r%   r*   K   s    
z$LilyPondLexer.get_tokens_unprocessedz\s+z	%\{.*?%\}z%.*?$z#\}ú#popz[#$]@?r3   zm(?x)
               \\\\
               | (?<= \s ) (?: -- | __ )
               | [{}<>=.,:|]
              z=?[',]*!?\??)r"   z[\-_^]?"Ústringz
-?\d+\.\d+z	-?\d+/\d+zŠ(?x)
               (?<= \s ) -\d+
               | (?: (?: \d+ | \\breve | \\longa | \\maxima )
                     \.* )
              z\*z[~()[\]]z[\-_^][>^_!.\-+]z[\-_^]?\\?\d+r   r    r   úmaybe-subpropertiesz[\-_^]?\\.+?zg(?x)
               (?: [^\W\d] | - )+
               (?= (?: [^\W\d] | [\-.] )* \s* = )
              z([^\W\d]|-)+?Ú.ú"z\\.z[^\\"]+z#\{)r6   Úrootz(\.)((?:[^\W\d]|-)+?))r;   r7   r3   r8   )NÚ__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚversion_addedÚreÚDOTALLÚ	MULTILINEÚflagsr*   r   ÚTextÚ
WhitespaceÚCommentÚ	MultilineÚSingleÚPunctuationr   r   ÚNAME_END_REZPitchÚStringÚNumberÚFloatÚFractionr+   r.   ZArticulationr&   r   ÚKeywordr   ZPitchLanguager	   ZClefr
   ZScaler   Z
RepeatTyper   r   ZChordModifierr   ZMusicFunctionr   ÚDynamicr   r   ZMusicCommandr   ZMarkupCommandr   ZGrobr   Z
Translatorr   ÚContextr   ZContextPropertyr   ZGrobPropertyr   ZPaperVariabler   ZHeaderVariableZBackslashReferenceZLvalueÚEscaper   r   r   ÚtokensÚ__classcell__r$   r$   r4   r%   r   /   s�   




ü


	üþýŒw

ý
ü
ÿü€ ú)%r?   rF   Zpygments.lexerr   r   r   r   Zpygments.lexers.lispr   Z"pygments.lexers._lilypond_builtinsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zpygments.tokenr   Ú__all__rP   r&   r   r$   r$   r$   r%   Ú<module>   s   
\
