o
    Rh&                     @   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-2025 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%   Z/home/air/sanwanet/backup_V2/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    
\
