o
    Ñ­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sJ ‚t | ||ƒS )Nz[\-_^]?Ú	mandatoryz\\Úoptionalz\\?Ú
disallowed)r   )ÚnamesÚ	backslashÚsuffixÚprefix© r%   úU/var/www/html/CropPilot/venv/lib/python3.10/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g 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‘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                 #   sl   � t ƒ  |¡D ],\}}}|tjju s|tjju r"|tv r!tjjj}n|tjju r-t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   ÚBuiltinÚSchemeFunctionÚSchemeBuiltin)ÚselfÚtextÚindexÚtokenÚvalue©Ú	__class__r%   r&   r+   K   s   €
€
úz$LilyPondLexer.get_tokens_unprocessedz\s+z	%\{.*?%\}z%.*?$z#\}ú#popz[#$]@?r6   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#\{)r9   Úrootz(\.)((?:[^\W\d]|-)+?))r>   r:   r6   r;   )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_REÚPitchÚStringÚNumberÚFloatÚFractionr,   r/   ÚArticulationr'   r   ÚKeywordr   ÚPitchLanguager	   ÚClefr
   ÚScaler   Ú
RepeatTyper   r   ÚChordModifierr   ÚMusicFunctionr   ÚDynamicr   r   ÚMusicCommandr   ÚMarkupCommandr   ÚGrobr   Ú
Translatorr   ÚContextr   ÚContextPropertyr   ÚGrobPropertyr   ÚPaperVariabler   ÚHeaderVariableÚBackslashReferenceÚLvalueÚEscaper   r   r   ÚtokensÚ__classcell__r%   r%   r7   r&   r   /   sÞ    
þ
û
ø
õ
ðüá'Ù
*Ö
-Ó
.Ò7üÉ=Ã@ÀD¼G¹J¶KµL´M³N²O±P°Q¯R®T¬U«VªW©X¨Z¦[¥\þ¤bžc�g™ký•s�tŒ
w
ý
ü
ÿü �ù)%rB   rI   Úpygments.lexerr   r   r   r   Úpygments.lexers.lispr   Ú"pygments.lexers._lilypond_builtinsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Úpygments.tokenr   Ú__all__rS   r'   r   r%   r%   r%   r&   Ú<module>   s    
\
