
    |e&                         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	Z# G d
 de      Z$y)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                 Z    d}|dk(  r|dz  }n|dk(  r|dz  }n|dk(  sJ t        | ||      S )Nz[\-_^]?	mandatoryz\\optionalz\\?
disallowed)r   )names	backslashsuffixprefixs       :/usr/lib/python3/dist-packages/pygments/lexers/lilypond.pybuiltin_wordsr(   $   sG    FK%	j	 &L(((''    c            	       n
    e Zd ZdZdZdZdgZdgZg Ze	j                  e	j                  z  Z f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z         ej0                  fdej2                  dfdej4                  j6                  fdej4                  j8                  fdej4                  fdej4                  fdej:                  j<                  j>                  fdej:                  j<                  j>                  fdej:                  j<                  j>                  f e e!d      ejD                  f e e#d      ej:                  jH                  f e e%d      ej:                  j<                  jL                  f e e'd      ej:                  j<                  jP                  f e e)d      ej:                  j<                  jT                  f e e+d      ej4                  f e e,d      ejZ                  f e e.d      ej:                  j<                  j^                  f e e0d      ej:                  j<                  jb                  f e e2d      ej:                  j<                  j>                  f e e3d      ej:                  j<                  jh                  f e e5d      ej:                  j<                  jl                  f e e7d      ej:                  j<                  jp                  f e e9d      ej:                  j<                  jt                  f e e;d      ej:                  j<                  jx                  f e e=d      ej:                  j<                  j|                  f e e?d      ej:                  j<                  j                  df e eAd      ej:                  j<                  j                  f e eCd      ej:                  j<                  j                  fdez   ej:                  j                  fdej:                  j                  fd ez   ej                  fd!ej                  fd"ej2                  dfd#ej2                  j                  fd$ej2                  fgd%ej(                  d&feHgdej                  j                   fd'ez    eIej(                  ej:                  j<                  j                        f eJd      gd(ZK xZLS ))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              #     K   t         |   |      D ]  \  }}}|t        j                  j                  u s|t        j                  j
                  u r-|t        v ret        j                  j                  j                  }n@|t        j                  j                  u r$t        j                  j                  j                  }|||f  yw)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'   r/   z$LilyPondLexer.get_tokens_unprocessedL   s     #(7#A$#G 	&E5%

+++u

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

**88%%	&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]|-)+?))rA   r=   r:   r>   )M__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesreDOTALL	MULTILINEflagsr/   r   Text
WhitespaceComment	MultilineSinglePunctuationr   r   NAME_END_REPitchStringNumberFloatFractionr0   r3   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;   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)   )%rE   rK   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__rU   r(   r    r)   r'   <module>rx      s`    
 < < ,      !
 ,+6 (sK sr)   