
    &                         S r SSKrSSKJrJrJrJr  SSKJr  SSK	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  SSKJ r   S/r!Sr"\"4S	 jr# " S
 S\5      r$g)z
pygments.lexers.lilypond
~~~~~~~~~~~~~~~~~~~~~~~~

Lexer for LilyPond.

:copyright: Copyright 2006-2023 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                 ^    SnUS:X  a  US-  nOUS:X  a  US-  nOUS:X  d   e[        XU5      $ )Nz[\-_^]?	mandatoryz\\optionalz\\?
disallowed)r   )names	backslashsuffixprefixs       +lib/third_party/pygments/lexers/lilypond.pybuiltin_wordsr(   $   sE    FK%	j	 &L(((''    c            	       r
  ^  \ rS rSrSrSrSrS/rS/r/ r	\
R                  \
R                  -  rU 4S jr/ S\R                   R"                  4PS	\R$                  R&                  4PS
\R$                  R(                  4PS\R*                  S4PS\R*                  S4PS\R*                  4P\" \S\-   S9\R2                  4PS\R4                  S4PS\R6                  R8                  4PS\R6                  R:                  4PS\R6                  4PS\R6                  4PS\R<                  R>                  R@                  4PS\R<                  R>                  R@                  4PS\R<                  R>                  R@                  4P\!" \"S5      \RF                  4P\!" \$S5      \R<                  RJ                  4P\!" \&S5      \R<                  R>                  RN                  4P\!" \(S5      \R<                  R>                  RR                  4P\!" \*S5      \R<                  R>                  RV                  4P\!" \,S5      \R6                  4P\!" \-S5      \R\                  4P\!" \/S5      \R<                  R>                  R`                  4P\!" \1S5      \R<                  R>                  Rd                  4P\!" \3S5      \R<                  R>                  R@                  4P\!" \4S5      \R<                  R>                  Rj                  4P\!" \6S5      \R<                  R>                  Rn                  4P\!" \8S5      \R<                  R>                  Rr                  4P\!" \:S5      \R<                  R>                  Rv                  4P\!" \<S5      \R<                  R>                  Rz                  4P\!" \>S5      \R<                  R>                  R~                  4P\!" \@S5      \R<                  R>                  R                  S4P\!" \BS5      \R<                  R>                  R                  4P\!" \DS5      \R<                  R>                  R                  4PS\-   \R<                  R                  4PS \R<                  R                  4PS!\-   \R                   4PS"\R                   4PS#\R4                  S4S$\R4                  R                  4S%\R4                  4/S&\R*                  S'4\I/S\R                   R"                  4S(\-   \J" \R*                  \R<                  R>                  R                  5      4\K" S5      /S).rLS*rMU =rN$ )+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.

.. versionadded:: 2.11
LilyPondzhttps://lilypond.orglilypondz*.lyc              #     >#    [         TU ]  U5       H  u  p#nU[        R                  R                  L d  U[        R                  R
                  L a/  U[        ;   a$  [        R                  R                  R                  nOAU[        R                  R                  L a$  [        R                  R                  R                  nX#U4v   M     g7f)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__s        r'   r0   $LilyPondLexer.get_tokens_unprocessedL   s     #(7#A$#GE%

+++u

8K8K/K,,!JJ..==E%**,,,

**88%% $Hs   CCz\s+z	%\{.*?%\}z%.*?$z#\}#popz[#$]@?r;   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#\{)r>   rootz(\.)((?:[^\W\d]|-)+?))rC   r?   r;   r@    )O__name__
__module____qualname____firstlineno____doc__nameurlaliases	filenames	mimetypesreDOTALL	MULTILINEflagsr0   r   Text
WhitespaceComment	MultilineSinglePunctuationr   r   NAME_END_REPitchStringNumberFloatFractionr1   r4   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__static_attributes____classcell__)r<   s   @r'   r   r   /   s    D
 ClGIIII$E&u
UZZ**+u

 5==223u
 u}}++,u
 U&&/u
  ))73!u
> $$	&?u
N 7?[#@A5;;OOu
T %,,1Uu
Z ELL../[u
\ 5<<001]u
n <<	!ou
z ELL!{u
@ %**,,99:Au
H !%**"4"4"A"ABIu
N uzz11>>?Ou
T 8[15==AUu
V />

@X@XYWu
X 5,/1C1C1H1HIYu
Z 6;/1C1C1I1IJ[u
\ <6

8J8J8U8UV]u
^ 5+.=_u
` ?L95;N;NOau
b ?K8%**:L:L:Z:Z[cu
d 8[15::3E3E3M3MNeu
h =+6

8J8J8W8WXiu
j >;79K9K9X9XYku
l ?K8%**:L:L:Z:Z[mu
n 5,/1C1C1H1HIou
p ;5uzz7I7I7T7TUqu
t 8Z0%**2D2D2L2LMuu
v -|<ejj>P>P>`>`awu
x ?L9ZZ,,"$yu
D ?J79K9K9Y9YZEu
F +Z8%**:L:L:[:[\Gu
N {*EJJ,I,IJOu
V ::$$&Wu
f +UZZ8gu
h 5::iu
n 5<<(U\\(()&
 U&&(89	
 UZZ**+%3e''););)H)HIKFO	 
MLFr)   )%rI   rO   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__rY   r(   r   rD   r)   r'   <module>r|      s`    
 < < ,      !
 ,+6 (sK sr)   