C. LilyPond grammar

This appendix contains a description of the LilyPond grammar, as output from the parser.

Grammar

    1 start_symbol: lilypond

    3 start_symbol: "#{" $ embedded_lilypond

    4 lilypond: /* empty */
    5         | lilypond toplevel_expression
    6         | lilypond assignment
    7         | lilypond error
    8         | lilypond "\version-error"

   10 toplevel_expression: $ lilypond_header
   11                    | book_block
   12                    | bookpart_block
   13                    | score_block
   14                    | composite_music
   15                    | full_markup
   16                    | full_markup_list
   17                    | output_def

   18 embedded_scm_bare: SCM_TOKEN
   19                  | SCM_IDENTIFIER

   20 embedded_scm_bare_arg: embedded_scm_bare
   21                      | STRING
   22                      | STRING_IDENTIFIER
   23                      | full_markup
   24                      | full_markup_list
   25                      | context_modification
   26                      | score_block
   27                      | context_def_spec_block
   28                      | book_block
   29                      | bookpart_block
   30                      | output_def

   31 embedded_scm: embedded_scm_bare
   32             | scm_function_call

   33 embedded_scm_arg: embedded_scm_bare_arg
   34                 | scm_function_call
   35                 | music_arg

   36 scm_function_call: SCM_FUNCTION function_arglist

   37 embedded_lilypond: /* empty */
   38                  | identifier_init
   39                  | music_embedded music_embedded music_list
   40                  | error
   41                  | "\version-error" embedded_lilypond

   42 lilypond_header_body: /* empty */
   43                     | lilypond_header_body assignment

   44 lilypond_header: "\header" '{' lilypond_header_body '}'

   45 assignment_id: STRING
   46              | LYRICS_STRING

   47 assignment: assignment_id '=' identifier_init
   48           | assignment_id property_path '=' identifier_init
   49           | embedded_scm

   50 identifier_init: score_block
   51                | book_block
   52                | bookpart_block
   53                | output_def
   54                | context_def_spec_block
   55                | music_assign
   56                | post_event_nofinger
   57                | number_expression
   58                | FRACTION
   59                | string
   60                | embedded_scm
   61                | full_markup
   62                | full_markup_list
   63                | context_modification

   64 context_def_spec_block: "\context" '{' context_def_spec_body '}'

   65 context_mod_arg: embedded_scm
   66                | composite_music

   67 context_mod_embedded: context_mod_arg

   68 context_def_spec_body: /* empty */
   69                      | CONTEXT_DEF_IDENTIFIER
   70                      | context_def_spec_body context_mod
   71                      | context_def_spec_body context_modification
   72                      | context_def_spec_body context_mod_embedded

   73 book_block: "\book" '{' book_body '}'

   74 book_body: /* empty */
   75          | BOOK_IDENTIFIER
   76          | book_body paper_block
   77          | book_body bookpart_block
   78          | book_body score_block
   79          | book_body composite_music
   80          | book_body full_markup
   81          | book_body full_markup_list

   83 book_body: book_body $ lilypond_header
   84          | book_body embedded_scm
   85          | book_body error

   86 bookpart_block: "\bookpart" '{' bookpart_body '}'

   87 bookpart_body: /* empty */
   88              | BOOK_IDENTIFIER
   89              | bookpart_body paper_block
   90              | bookpart_body score_block
   91              | bookpart_body composite_music
   92              | bookpart_body full_markup
   93              | bookpart_body full_markup_list

   95 bookpart_body: bookpart_body $ lilypond_header
   96              | bookpart_body embedded_scm
   97              | bookpart_body error

   98 score_block: "\score" '{' score_body '}'

   99 score_body: music
  100           | SCORE_IDENTIFIER

  102 score_body: score_body $ lilypond_header
  103           | score_body output_def
  104           | score_body error

  105 paper_block: output_def

  106 output_def: output_def_body '}'

  107 output_def_head: "\paper"
  108                | "\midi"
  109                | "\layout"

  110 output_def_head_with_mode_switch: output_def_head

  111 music_or_context_def: music_arg

  113 music_or_context_def: "\context" $ '{' context_def_spec_body '}'

  114 output_def_body: output_def_head_with_mode_switch '{'
  115                | output_def_head_with_mode_switch 
                         '{' 
                         OUTPUT_DEF_IDENTIFIER 
  116                | output_def_body assignment

  118 output_def_body: output_def_body $ music_or_context_def
  119                | output_def_body error

  120 tempo_event: "\tempo" steno_duration '=' tempo_range
  121            | "\tempo" scalar_closed steno_duration '=' tempo_range
  122            | "\tempo" scalar

  123 music_list: /* empty */
  124           | music_list music_embedded
  125           | music_list error

  126 braced_music_list: '{' music_list '}'

  127 music: music_arg
  128      | lyric_element_music

  129 music_embedded: music
  130               | embedded_scm

  131 music_arg: simple_music
  132          | composite_music

  133 music_assign: simple_music
  134             | composite_music
  135             | lyric_element_music

  136 repeated_music: "\repeat" simple_string unsigned_number music
  137               | "\repeat" 
                        simple_string 
                        unsigned_number 
                        music 
                        "\alternative" 
                        braced_music_list 

  138 sequential_music: "\sequential" braced_music_list
  139                 | braced_music_list

  140 simultaneous_music: "\simultaneous" braced_music_list
  141                   | "<<" music_list ">>"

  142 simple_music: event_chord
  143             | music_property_def
  144             | context_change

  146 context_modification: "\with" $ '{' context_mod_list '}'
  147                     | "\with" CONTEXT_MOD_IDENTIFIER
  148                     | CONTEXT_MOD_IDENTIFIER
  149                     | "\with" embedded_scm_closed

  150 optional_context_mod: /* empty */
  151                     | context_modification

  152 context_mod_list: /* empty */
  153                 | context_mod_list context_mod
  154                 | context_mod_list CONTEXT_MOD_IDENTIFIER
  155                 | context_mod_list context_mod_embedded

  156 composite_music: complex_music
  157                | music_bare

  158 closed_music: music_bare
  159             | complex_music_prefix closed_music

  160 music_bare: mode_changed_music
  161           | MUSIC_IDENTIFIER
  162           | grouped_music_list

  163 grouped_music_list: simultaneous_music
  164                   | sequential_music

  165 function_arglist_skip: function_arglist_common
  166                      | "optional?" "ly:pitch?" function_arglist_skip
  167                      | "optional?" "ly:duration?" function_arglist_skip
  168                      | "optional?" "scheme?" function_arglist_skip

  169 function_arglist_nonbackup_common: "optional?" 
                                           "ly:pitch?" 
                                           function_arglist 
                                           pitch_also_in_chords 
  170                                  | "optional?" 
                                           "ly:duration?" 
                                           function_arglist_closed 
                                           duration_length 
  171                                  | "optional?" 
                                           "scheme?" 
                                           function_arglist_closed 
                                           FRACTION 
  172                                  | "optional?" 
                                           "scheme?" 
                                           function_arglist_closed 
                                           post_event_nofinger 
  173                                  | "optional?" 
                                           "scheme?" 
                                           function_arglist_closed 
                                           '-' 
                                           UNSIGNED 
  174                                  | "optional?" 
                                           "scheme?" 
                                           function_arglist_closed 
                                           '-' 
                                           REAL 
  175                                  | "optional?" 
                                           "scheme?" 
                                           function_arglist_closed 
                                           '-' 
                                           NUMBER_IDENTIFIER 

  176 function_arglist_closed_nonbackup: function_arglist_nonbackup_common
  177                                  | "optional?" 
                                           "scheme?" 
                                           function_arglist 
                                           embedded_scm_arg_closed 
  178                                  | "optional?" 
                                           "scheme?" 
                                           function_arglist_closed 
                                           bare_number_closed 

  179 function_arglist_nonbackup: function_arglist_nonbackup_common
  180                           | "optional?" 
                                    "scheme?" 
                                    function_arglist 
                                    embedded_scm_arg 
  181                           | "optional?" 
                                    "scheme?" 
                                    function_arglist_closed 
                                    bare_number 

  182 function_arglist_keep: function_arglist_common
  183                      | function_arglist_backup

  184 function_arglist_closed_keep: function_arglist_closed_common
  185                             | function_arglist_backup

  186 function_arglist_backup: "optional?" 
                                 "scheme?" 
                                 function_arglist_keep 
                                 embedded_scm_arg_closed 
  187                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_closed_keep 
                                 post_event_nofinger 
  188                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_keep 
                                 lyric_element 
  189                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_closed_keep 
                                 UNSIGNED 
  190                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_closed_keep 
                                 REAL 
  191                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_closed_keep 
                                 NUMBER_IDENTIFIER 
  192                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_closed_keep 
                                 FRACTION 
  193                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_closed_keep 
                                 '-' 
                                 UNSIGNED 
  194                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_closed_keep 
                                 '-' 
                                 REAL 
  195                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_closed_keep 
                                 '-' 
                                 NUMBER_IDENTIFIER 
  196                        | "optional?" 
                                 "ly:pitch?" 
                                 function_arglist_keep 
                                 pitch_also_in_chords 
  197                        | "optional?" 
                                 "ly:duration?" 
                                 function_arglist_closed_keep 
                                 duration_length 
  198                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 "(backed-up?)" 
  199                        | function_arglist_backup 
                                 "(reparsed?)" 
                                 embedded_scm_arg_closed 
  200                        | function_arglist_backup 
                                 "(reparsed?)" 
                                 bare_number 

  201 function_arglist: function_arglist_common
  202                 | function_arglist_nonbackup

  203 function_arglist_common: function_arglist_bare
  204                        | "scheme?" 
                                 function_arglist_optional 
                                 embedded_scm_arg 
  205                        | "scheme?" 
                                 function_arglist_closed_optional 
                                 bare_number 
  206                        | "scheme?" 
                                 function_arglist_closed_optional 
                                 FRACTION 
  207                        | "scheme?" 
                                 function_arglist_closed_optional 
                                 post_event_nofinger 
  208                        | function_arglist_common_minus
  209                        | function_arglist_common_lyric

  210 function_arglist_common_lyric: "scheme?" 
                                       function_arglist_optional 
                                       lyric_element 
  211                              | function_arglist_common_lyric 
                                       "(reparsed?)" 
                                       lyric_element_arg 

  212 function_arglist_common_minus: "scheme?" 
                                       function_arglist_closed_optional 
                                       '-' 
                                       UNSIGNED 
  213                              | "scheme?" 
                                       function_arglist_closed_optional 
                                       '-' 
                                       REAL 
  214                              | "scheme?" 
                                       function_arglist_closed_optional 
                                       '-' 
                                       NUMBER_IDENTIFIER 
  215                              | function_arglist_common_minus 
                                       "(reparsed?)" 
                                       bare_number 

  216 function_arglist_closed: function_arglist_closed_common
  217                        | function_arglist_closed_nonbackup

  218 function_arglist_closed_common: function_arglist_bare
  219                               | "scheme?" 
                                        function_arglist_optional 
                                        embedded_scm_arg_closed 
  220                               | "scheme?" 
                                        function_arglist_closed_optional 
                                        bare_number 
  221                               | "scheme?" 
                                        function_arglist_closed_optional 
                                        '-' 
                                        UNSIGNED 
  222                               | "scheme?" 
                                        function_arglist_closed_optional 
                                        '-' 
                                        REAL 
  223                               | "scheme?" 
                                        function_arglist_closed_optional 
                                        '-' 
                                        NUMBER_IDENTIFIER 
  224                               | "scheme?" 
                                        function_arglist_closed_optional 
                                        post_event_nofinger 
  225                               | "scheme?" 
                                        function_arglist_closed_optional 
                                        FRACTION 
  226                               | "scheme?" 
                                        function_arglist_optional 
                                        lyric_element 

  227 function_arglist_optional: function_arglist_keep
  228                          | function_arglist_backup "(backed-up?)"
  229                          | "optional?" 
                                   "ly:pitch?" 
                                   function_arglist_optional 
  230                          | "optional?" 
                                   "ly:duration?" 
                                   function_arglist_optional 

  231 function_arglist_closed_optional: function_arglist_closed_keep
  232                                 | function_arglist_backup 
                                          "(backed-up?)" 
  233                                 | "optional?" 
                                          "ly:pitch?" 
                                          function_arglist_closed_optional 
  234                                 | "optional?" 
                                          "ly:duration?" 
                                          function_arglist_closed_optional 

  235 embedded_scm_closed: embedded_scm_bare
  236                    | scm_function_call_closed

  237 embedded_scm_arg_closed: embedded_scm_bare_arg
  238                        | scm_function_call_closed
  239                        | closed_music

  240 scm_function_call_closed: SCM_FUNCTION function_arglist_closed

  241 function_arglist_bare: EXPECT_NO_MORE_ARGS
  242                      | "ly:pitch?" 
                               function_arglist_optional 
                               pitch_also_in_chords 
  243                      | "ly:duration?" 
                               function_arglist_closed_optional 
                               duration_length 
  244                      | "optional?" 
                               "ly:pitch?" 
                               function_arglist_skip 
                               "\default" 
  245                      | "optional?" 
                               "ly:duration?" 
                               function_arglist_skip 
                               "\default" 
  246                      | "optional?" 
                               "scheme?" 
                               function_arglist_skip 
                               "\default" 

  247 music_function_call: MUSIC_FUNCTION function_arglist

  248 optional_id: /* empty */
  249            | '=' simple_string

  250 complex_music: music_function_call
  251              | repeated_music
  252              | re_rhythmed_music
  253              | complex_music_prefix music

  254 complex_music_prefix: "\context" 
                              simple_string 
                              optional_id 
                              optional_context_mod 
  255                     | "\new" 
                              simple_string 
                              optional_id 
                              optional_context_mod 

  256 mode_changed_music: mode_changing_head grouped_music_list
  257                   | mode_changing_head_with_context 
                            optional_context_mod 
                            grouped_music_list 

  258 mode_changing_head: "\notemode"
  259                   | "\drummode"
  260                   | "\figuremode"
  261                   | "\chordmode"
  262                   | "\lyricmode"

  263 mode_changing_head_with_context: "\drums"
  264                                | "\figures"
  265                                | "\chords"
  266                                | "\lyrics"

  268 new_lyrics: "\addlyrics" $ composite_music

  270 new_lyrics: new_lyrics "\addlyrics" $0 composite_music

  271 re_rhythmed_music: composite_music new_lyrics

  273 re_rhythmed_music: "\lyricsto" simple_string $1 music

  274 context_change: "\change" STRING '=' STRING

  275 property_path_revved: embedded_scm_closed
  276                     | property_path_revved embedded_scm_closed

  277 property_path: property_path_revved

  278 property_operation: STRING '=' scalar
  279                   | "\unset" simple_string
  280                   | "\override" simple_string property_path '=' scalar
  281                   | "\revert" simple_string embedded_scm

  282 context_def_mod: "\consists"
  283                | "\remove"
  284                | "\accepts"
  285                | "\defaultchild"
  286                | "\denies"
  287                | "\alias"
  288                | "\type"
  289                | "\description"
  290                | "\name"

  291 context_mod: property_operation
  292            | context_def_mod STRING
  293            | context_def_mod embedded_scm

  294 context_prop_spec: simple_string
  295                  | simple_string '.' simple_string

  296 simple_music_property_def: "\override" 
                                   context_prop_spec 
                                   property_path 
                                   '=' 
                                   scalar 
  297                          | "\revert" context_prop_spec embedded_scm
  298                          | "\set" context_prop_spec '=' scalar
  299                          | "\unset" context_prop_spec

  300 music_property_def: simple_music_property_def

  301 string: STRING
  302       | STRING_IDENTIFIER
  303       | string '+' string

  304 simple_string: STRING
  305              | LYRICS_STRING
  306              | STRING_IDENTIFIER

  307 scalar: embedded_scm_arg
  308       | bare_number
  309       | FRACTION
  310       | lyric_element

  311 scalar_closed: embedded_scm_arg_closed
  312              | bare_number
  313              | FRACTION
  314              | lyric_element

  315 event_chord: simple_element post_events
  316            | simple_chord_elements post_events
  317            | CHORD_REPETITION optional_notemode_duration post_events
  318            | MULTI_MEASURE_REST optional_notemode_duration post_events
  319            | command_element
  320            | note_chord_element

  321 note_chord_element: chord_body optional_notemode_duration post_events

  322 chord_body: "<" chord_body_elements ">"

  323 chord_body_elements: /* empty */
  324                    | chord_body_elements chord_body_element

  325 chord_body_element: pitch 
                            exclamations 
                            questions 
                            octave_check 
                            post_events 
  326                   | DRUM_PITCH post_events
  327                   | music_function_chord_body

  328 music_function_chord_body: music_function_call
  329                          | MUSIC_IDENTIFIER

  330 music_function_event: MUSIC_FUNCTION function_arglist_closed

  331 event_function_event: EVENT_FUNCTION function_arglist_closed

  332 command_element: command_event
  333                | "\["
  334                | "\]"
  335                | "\"
  336                | '|'

  337 command_event: "\~"
  338              | tempo_event

  339 post_events: /* empty */
  340            | post_events post_event

  341 post_event_nofinger: direction_less_event
  342                    | script_dir music_function_event
  343                    | "--"
  344                    | "__"
  345                    | script_dir direction_reqd_event
  346                    | script_dir direction_less_event
  347                    | string_number_event
  348                    | '^' fingering
  349                    | '_' fingering

  350 post_event: post_event_nofinger
  351           | '-' fingering

  352 string_number_event: E_UNSIGNED

  353 direction_less_char: '['
  354                    | ']'
  355                    | '~'
  356                    | '('
  357                    | ')'
  358                    | "\!"
  359                    | "\("
  360                    | "\)"
  361                    | "\>"
  362                    | "\<"

  363 direction_less_event: direction_less_char
  364                     | EVENT_IDENTIFIER
  365                     | tremolo_type
  366                     | event_function_event

  367 direction_reqd_event: gen_text_def
  368                     | script_abbreviation

  369 octave_check: /* empty */
  370             | '='
  371             | '=' sub_quotes
  372             | '=' sup_quotes

  373 sup_quotes: '\''
  374           | sup_quotes '\''

  375 sub_quotes: ','
  376           | sub_quotes ','

  377 steno_pitch: NOTENAME_PITCH
  378            | NOTENAME_PITCH sup_quotes
  379            | NOTENAME_PITCH sub_quotes

  380 steno_tonic_pitch: TONICNAME_PITCH
  381                  | TONICNAME_PITCH sup_quotes
  382                  | TONICNAME_PITCH sub_quotes

  383 pitch: steno_pitch
  384      | PITCH_IDENTIFIER

  385 pitch_also_in_chords: pitch
  386                     | steno_tonic_pitch

  387 gen_text_def: full_markup
  388             | simple_string

  389 fingering: UNSIGNED

  390 script_abbreviation: '^'
  391                    | '+'
  392                    | '-'
  393                    | '|'
  394                    | ">"
  395                    | '.'
  396                    | '_'

  397 script_dir: '_'
  398           | '^'
  399           | '-'

  400 duration_length: multiplied_duration

  401 maybe_notemode_duration: /* empty */
  402                        | multiplied_duration

  403 optional_notemode_duration: maybe_notemode_duration

  404 steno_duration: bare_unsigned dots
  405               | DURATION_IDENTIFIER dots

  406 multiplied_duration: steno_duration
  407                    | multiplied_duration '*' bare_unsigned
  408                    | multiplied_duration '*' FRACTION

  409 dots: /* empty */
  410     | dots '.'

  411 tremolo_type: ':'
  412             | ':' bare_unsigned

  413 bass_number: UNSIGNED
  414            | STRING
  415            | full_markup

  416 figured_bass_alteration: '-'
  417                        | '+'
  418                        | '!'

  419 bass_figure: "_"
  420            | bass_number
  421            | bass_figure ']'
  422            | bass_figure figured_bass_alteration
  423            | bass_figure figured_bass_modification

  424 figured_bass_modification: "\+"
  425                          | "\!"
  426                          | '/'
  427                          | "\"

  428 br_bass_figure: bass_figure
  429               | '[' bass_figure

  430 figure_list: /* empty */
  431            | figure_list br_bass_figure

  432 figure_spec: FIGURE_OPEN figure_list FIGURE_CLOSE

  433 optional_rest: /* empty */
  434              | "\rest"

  435 simple_element: pitch 
                        exclamations 
                        questions 
                        octave_check 
                        maybe_notemode_duration 
                        optional_rest 
  436               | DRUM_PITCH optional_notemode_duration
  437               | RESTNAME optional_notemode_duration

  438 simple_chord_elements: new_chord
  439                      | figure_spec optional_notemode_duration

  440 lyric_element: lyric_markup
  441              | LYRICS_STRING

  442 lyric_element_arg: lyric_element
  443                  | lyric_element multiplied_duration post_events
  444                  | lyric_element post_event post_events
  445                  | LYRIC_ELEMENT optional_notemode_duration post_events

  446 lyric_element_music: lyric_element 
                             optional_notemode_duration 
                             post_events 

  447 new_chord: steno_tonic_pitch optional_notemode_duration
  448          | steno_tonic_pitch 
                   optional_notemode_duration 
                   chord_separator 
                   chord_items 

  449 chord_items: /* empty */
  450            | chord_items chord_item

  451 chord_separator: ":"
  452                | "^"
  453                | "/" steno_tonic_pitch
  454                | "/+" steno_tonic_pitch

  455 chord_item: chord_separator
  456           | step_numbers
  457           | CHORD_MODIFIER

  458 step_numbers: step_number
  459             | step_numbers '.' step_number

  460 step_number: bare_unsigned
  461            | bare_unsigned '+'
  462            | bare_unsigned "-"

  463 tempo_range: bare_unsigned
  464            | bare_unsigned '~' bare_unsigned

  465 number_expression: number_expression '+' number_term
  466                  | number_expression '-' number_term
  467                  | number_term

  468 number_term: number_factor
  469            | number_factor '*' number_factor
  470            | number_factor '/' number_factor

  471 number_factor: '-' number_factor
  472              | bare_number

  473 bare_number: bare_number_closed
  474            | UNSIGNED NUMBER_IDENTIFIER
  475            | REAL NUMBER_IDENTIFIER

  476 bare_number_closed: UNSIGNED
  477                   | REAL
  478                   | NUMBER_IDENTIFIER

  479 bare_unsigned: UNSIGNED

  480 unsigned_number: UNSIGNED
  481                | NUMBER_IDENTIFIER

  482 exclamations: /* empty */
  483             | exclamations '!'

  484 questions: /* empty */
  485          | questions '?'

  486 lyric_markup: LYRIC_MARKUP_IDENTIFIER

  488 lyric_markup: LYRIC_MARKUP $2 markup_top

  489 full_markup_list: MARKUPLIST_IDENTIFIER

  491 full_markup_list: "\markuplist" $3 markup_list

  492 full_markup: MARKUP_IDENTIFIER

  494 full_markup: "\markup" $4 markup_top

  495 markup_top: markup_list
  496           | markup_head_1_list simple_markup
  497           | simple_markup

  499 markup_scm: embedded_scm_bare $5 "(backed-up?)"

  500 markup_list: MARKUPLIST_IDENTIFIER
  501            | markup_composed_list
  502            | markup_braced_list
  503            | markup_command_list
  504            | markup_scm MARKUPLIST_IDENTIFIER

  505 markup_composed_list: markup_head_1_list markup_braced_list

  506 markup_braced_list: '{' markup_braced_list_body '}'

  507 markup_braced_list_body: /* empty */
  508                        | markup_braced_list_body markup
  509                        | markup_braced_list_body markup_list

  510 markup_command_list: MARKUP_LIST_FUNCTION markup_command_list_arguments

  511 markup_command_basic_arguments: "markup-list?" 
                                        markup_command_list_arguments 
                                        markup_list 
  512                               | "scheme?" 
                                        markup_command_list_arguments 
                                        embedded_scm_closed 
  513                               | EXPECT_NO_MORE_ARGS

  514 markup_command_list_arguments: markup_command_basic_arguments
  515                              | "markup?" 
                                       markup_command_list_arguments 
                                       markup 

  516 markup_head_1_item: MARKUP_FUNCTION 
                            "markup?" 
                            markup_command_list_arguments 

  517 markup_head_1_list: markup_head_1_item
  518                   | markup_head_1_list markup_head_1_item

  519 simple_markup: STRING
  520              | MARKUP_IDENTIFIER
  521              | LYRIC_MARKUP_IDENTIFIER
  522              | STRING_IDENTIFIER

  524 simple_markup: "\score" $6 '{' score_body '}'
  525              | MARKUP_FUNCTION markup_command_basic_arguments
  526              | markup_scm MARKUP_IDENTIFIER

  527 markup: markup_head_1_list simple_markup
  528       | simple_markup


Terminals, with rules where they appear



    181 186 187 188 189 190 191 192 193 194 195 196 197 198 229 230
    189 190 191 192 193 194 195 198 204 205 206 207 210 212 213 214
    219 220 221 222 223 224 225 226 246 512
    233 234 244 245 246
    416 466 471
"#{" (352) 3
"(backed-up?)" (347) 198 228 232 499
"(reparsed?)" (348) 199 200 211 215
"-" (317) 462
"--" (338) 343
"/" (318) 453
"/+" (314) 454
":" (316) 451
"<" (319) 322
"<<" (321) 141
">" (320) 322 394
">>" (322) 141
"\!" (327) 358 425
"\" (323) 335 427
"\(" (329) 359
"\)" (326) 360
"\+" (332) 424
"\<" (331) 362
"\>" (324) 361
"\[" (328) 333
"\]" (330) 334
"\accepts" (273) 284
"\addlyrics" (262) 268 270
"\alias" (274) 287
"\alternative" (260) 137
"\book" (275) 73
"\bookpart" (276) 86
"\C[haracter]" (325)
"\change" (277) 274
"\chordmode" (278) 261
"\chords" (279) 265
"\consists" (280) 282
"\context" (281) 64 113 254
"\default" (263) 244 245 246
"\defaultchild" (282) 285
"\denies" (283) 286
"\description" (284) 289
"\drummode" (285) 259
"\drums" (286) 263
"\figuremode" (287) 260
"\figures" (288) 264
"\header" (289) 44
"\layout" (291) 109
"\lyricmode" (292) 262
"\lyrics" (293) 266
"\lyricsto" (294) 273
"\markup" (295) 494
"\markuplist" (296) 491
"\midi" (297) 108
"\name" (298) 290
"\new" (313) 255
"\notemode" (299) 258
"\override" (300) 280 296
"\paper" (301) 107
"\remove" (302) 283
"\repeat" (259) 136 137
"\rest" (303) 434
"\revert" (304) 281 297
"\score" (305) 98 524
"\sequential" (306) 138
"\set" (307) 298
"\simultaneous" (308) 140
"\tempo" (309) 120 121 122
"\type" (310) 288
"\unset" (311) 279 299
"\version-error" (290) 8 41
"\with" (312) 146 147 149
"\~" (333) 337
"^" (315) 452
"_" (337) 419
"__" (334) 344
"ly:duration?" (345) 167 170 197 230 234 243 245
"ly:pitch?" (344) 166 169 196 229 233 242 244
"markup-list?" (349) 511
"markup?" (343) 515 516
"optional?" (350) 166 167 168 169 170 171 172 173 174 175 177 178 180
"scheme?" (346) 168 171 172 173 174 175 177 178 180 181 186 187 188
$end (0) 0
'!' (33) 418 483
'(' (40) 356
')' (41) 357
'*' (42) 407 408 469
'+' (43) 303 391 417 461 465
',' (44) 375 376
'-' (45) 173 174 175 193 194 195 212 213 214 221 222 223 351 392 399
'.' (46) 295 395 410 459
'/' (47) 426 470
':' (58) 411 412
'=' (61) 47 48 120 121 249 274 278 280 296 298 370 371 372
'?' (63) 485
'[' (91) 353 429
'\'' (39) 373 374
']' (93) 354 421
'^' (94) 348 390 398
'_' (95) 349 396 397
'{' (123) 44 64 73 86 98 113 114 115 126 146 506 524
'|' (124) 336 393
'}' (125) 44 64 73 86 98 106 113 126 146 506 524
'~' (126) 355 464
BOOK_IDENTIFIER (353) 75 88
CHORD_MODIFIER (355) 457
CHORD_REPETITION (356) 317
CHORDMODIFIER_PITCH (354)
CHORDMODIFIERS (339)
COMPOSITE (261)
CONTEXT_DEF_IDENTIFIER (357) 69
CONTEXT_MOD_IDENTIFIER (358) 147 148 154
DRUM_PITCH (359) 326 436
DURATION_IDENTIFIER (265) 405
E_UNSIGNED (342) 352
error (256) 7 40 85 97 104 119 125
EVENT_FUNCTION (361) 331
EVENT_IDENTIFIER (360) 364
EXPECT_NO_MORE_ARGS (351) 241 513
FIGURE_CLOSE (335) 432
FIGURE_OPEN (336) 432
FRACTION (362) 58 171 192 206 225 309 313 408
FUNCTION_ARGLIST (264)
LYRIC_ELEMENT (364) 445
LYRIC_MARKUP (340) 488
LYRIC_MARKUP_IDENTIFIER (365) 486 521
LYRICS_STRING (363) 46 305 441
MARKUP_FUNCTION (366) 516 525
MARKUP_IDENTIFIER (368) 492 520 526
MARKUP_LIST_FUNCTION (367) 510
MARKUPLIST_IDENTIFIER (369) 489 500 504
MULTI_MEASURE_REST (341) 318
MUSIC_FUNCTION (370) 247 330
MUSIC_IDENTIFIER (371) 161 329
NOTENAME_PITCH (269) 377 378 379
NUMBER_IDENTIFIER (271) 175 191 195 214 223 474 475 478 481
OUTPUT_DEF_IDENTIFIER (372) 115
PITCH_IDENTIFIER (270) 384
PREC_BOT (258)
PREC_TOP (272)
REAL (266) 174 190 194 213 222 475 477
RESTNAME (373) 437
SCM_FUNCTION (374) 36 240
SCM_IDENTIFIER (375) 19
SCM_TOKEN (376) 18
SCORE_IDENTIFIER (377) 100
STRING (378) 21 45 274 278 292 301 304 414 519
STRING_IDENTIFIER (379) 22 302 306 522
TONICNAME_PITCH (268) 380 381 382
UNARY_MINUS (380)
UNSIGNED (267) 173 189 193 212 221 389 413 474 476 479 480

Nonterminals, with rules where they appear


$@1 (149)
    on left: 2, on right: 3
$@10 (232)
    on left: 269, on right: 270
$@11 (234)
    on left: 272, on right: 273
$@12 (313)
    on left: 487, on right: 488
$@13 (315)
    on left: 490, on right: 491
$@14 (317)
    on left: 493, on right: 494
$@15 (320)
    on left: 498, on right: 499
$@16 (331)
    on left: 523, on right: 524
$@2 (152)
    on left: 9, on right: 10
$@3 (170)
    on left: 82, on right: 83
$@4 (173)
    on left: 94, on right: 95
$@5 (176)
    on left: 101, on right: 102
$@6 (182)
    on left: 112, on right: 113
$@7 (184)
    on left: 117, on right: 118
$@8 (197)
    on left: 145, on right: 146
$@9 (231)
    on left: 267, on right: 268
assignment (162)
    on left: 47 48 49, on right: 6 43 116
assignment_id (161)
    on left: 45 46, on right: 47 48
bare_number_closed (307)
    on left: 476 477 478, on right: 178 473
bass_number (283)
    on left: 413 414 415, on right: 420
book_block (168)
    on left: 73, on right: 11 28 51
bookpart_block (171)
    on left: 86, on right: 12 29 52 77
br_bass_figure (287)
    on left: 428 429, on right: 431
braced_music_list (187)
    on left: 126, on right: 137 138 139 140
chord_body (250)
    on left: 322, on right: 321
chord_body_element (252)
    on left: 325 326 327, on right: 324
chord_body_elements (251)
    on left: 323 324, on right: 322 324
chord_item (299)
    on left: 455 456 457, on right: 450
chord_items (297)
    on left: 449 450, on right: 448 450
chord_separator (298)
    on left: 451 452 453 454, on right: 448 455
closed_music (201)
    on left: 158 159, on right: 159 239
command_element (256)
    on left: 332 333 334 335 336, on right: 319
command_event (257)
    on left: 337 338, on right: 332
complex_music (225)
    on left: 250 251 252 253, on right: 156
complex_music_prefix (226)
    on left: 254 255, on right: 159 253
context_change (235)
    on left: 274, on right: 144
context_def_spec_block (164)
    on left: 64, on right: 27 54
context_mod (240)
    on left: 291 292 293, on right: 70 153
context_mod_arg (165)
    on left: 65 66, on right: 67
context_mod_embedded (166)
    on left: 67, on right: 72 155
context_prop_spec (241)
    on left: 294 295, on right: 296 297 298 299
direction_less_event (263)
    on left: 363 364 365 366, on right: 341 346
direction_reqd_event (264)
    on left: 367 368, on right: 345
dots (281)
    on left: 409 410, on right: 404 405 410
duration_length (276)
    on left: 400, on right: 170 197 243
embedded_lilypond (158)
    on left: 37 38 39 40 41, on right: 3 41
embedded_scm_arg (156)
    on left: 33 34 35, on right: 180 204 307
embedded_scm_bare (153)
    on left: 18 19, on right: 20 31 235 499
embedded_scm_closed (219)
    on left: 235 236, on right: 149 275 276 512
event_chord (248)
    on left: 315 316 317 318 319 320, on right: 142
event_function_event (255)
    on left: 331, on right: 366
exclamations (310)
    on left: 482 483, on right: 325 435 483
figure_list (288)
    on left: 430 431, on right: 431 432
figure_spec (289)
    on left: 432, on right: 439
figured_bass_alteration (284)
    on left: 416 417 418, on right: 422
figured_bass_modification (286)
    on left: 424 425 426 427, on right: 423
fingering (273)
    on left: 389, on right: 348 349 351
full_markup (316)
    on left: 492 494, on right: 15 23 61 80 92 387 415
full_markup_list (314)
    on left: 489 491, on right: 16 24 62 81 93
function_arglist (211)
    on left: 201 202, on right: 36 169 177 180 247
function_arglist_common_lyric (213)
    on left: 210 211, on right: 209 211
function_arglist_keep (208)
    on left: 182 183, on right: 186 188 196 227
function_arglist_nonbackup (207)
    on left: 179 180 181, on right: 202
gen_text_def (272)
    on left: 387 388, on right: 367
grouped_music_list (203)
    on left: 163 164, on right: 162 256 257
lilypond (150)
    on left: 4 5 6 7 8, on right: 1 5 6 7 8
lilypond_header (160)
    on left: 44, on right: 10 83 95 102
lilypond_header_body (159)
    on left: 42 43, on right: 43 44
lyric_element_arg (294)
    on left: 442 443 444 445, on right: 211
lyric_element_music (295)
    on left: 446, on right: 128 135
lyric_markup (312)
    on left: 486 488, on right: 440
markup (332)
    on left: 527 528, on right: 508 515
markup_braced_list (323)
    on left: 506, on right: 502 505
markup_braced_list_body (324)
    on left: 507 508 509, on right: 506 508 509
markup_command_list (325)
    on left: 510, on right: 503
markup_composed_list (322)
    on left: 505, on right: 501
markup_head_1_item (328)
    on left: 516, on right: 517 518
markup_head_1_list (329)
    on left: 517 518, on right: 496 505 518 527
markup_list (321)
    on left: 500 501 502 503 504, on right: 491 495 509 511
markup_scm (319)
    on left: 499, on right: 504 526
markup_top (318)
    on left: 495 496 497, on right: 488 494
maybe_notemode_duration (277)
    on left: 401 402, on right: 403 435
mode_changed_music (227)
    on left: 256 257, on right: 160
mode_changing_head (228)
    on left: 258 259 260 261 262, on right: 256
music (188)
    on left: 127 128, on right: 99 129 136 137 253 273
music_arg (190)
    on left: 131 132, on right: 35 111 127
music_assign (191)
    on left: 133 134 135, on right: 55
music_bare (202)
    on left: 160 161 162, on right: 157 158
music_embedded (189)
    on left: 129 130, on right: 39 124
music_function_call (223)
    on left: 247, on right: 250 328
music_function_chord_body (253)
    on left: 328 329, on right: 327
music_function_event (254)
    on left: 330, on right: 342
music_list (186)
    on left: 123 124 125, on right: 39 124 125 126 141
music_or_context_def (181)
    on left: 111 113, on right: 118
music_property_def (243)
    on left: 300, on right: 143
new_chord (296)
    on left: 447 448, on right: 438
new_lyrics (230)
    on left: 268 270, on right: 270 271
note_chord_element (249)
    on left: 321, on right: 320
number_expression (303)
    on left: 465 466 467, on right: 57 465 466
number_factor (305)
    on left: 471 472, on right: 468 469 470 471
number_term (304)
    on left: 468 469 470, on right: 465 466 467
octave_check (265)
    on left: 369 370 371 372, on right: 325 435
optional_context_mod (198)
    on left: 150 151, on right: 254 255 257
optional_id (224)
    on left: 248 249, on right: 254 255
optional_rest (290)
    on left: 433 434, on right: 435
output_def (178)
    on left: 106, on right: 17 30 53 103 105
output_def_head (179)
    on left: 107 108 109, on right: 110
output_def_head_with_mode_switch (180)
    on left: 110, on right: 114 115
paper_block (177)
    on left: 105, on right: 76 89
pitch (270)
    on left: 383 384, on right: 325 385 435
pitch_also_in_chords (271)
    on left: 385 386, on right: 169 196 242
post_event (260)
    on left: 350 351, on right: 340 444
property_operation (238)
    on left: 278 279 280 281, on right: 291
property_path (237)
    on left: 277, on right: 48 280 296
property_path_revved (236)
    on left: 275 276, on right: 276 277
questions (311)
    on left: 484 485, on right: 325 435 485
re_rhythmed_music (233)
    on left: 271 273, on right: 252
repeated_music (192)
    on left: 136 137, on right: 251
scalar (246)
    on left: 307 308 309 310, on right: 122 278 280 296 298
scalar_closed (247)
    on left: 311 312 313 314, on right: 121
scm_function_call (157)
    on left: 36, on right: 32 34
scm_function_call_closed (221)
    on left: 240, on right: 236 238
score_block (174)
    on left: 98, on right: 13 26 50 78 90
script_dir (275)
    on left: 397 398 399, on right: 342 345 346
sequential_music (193)
    on left: 138 139, on right: 164
simple_chord_elements (292)
    on left: 438 439, on right: 316
simple_element (291)
    on left: 435 436 437, on right: 315
simple_music (195)
    on left: 142 143 144, on right: 131 133
simple_music_property_def (242)
    on left: 296 297 298 299, on right: 300
simultaneous_music (194)
    on left: 140 141, on right: 163
start_symbol (148)
    on left: 1 3, on right: 0
steno_duration (279)
    on left: 404 405, on right: 120 121 406
steno_pitch (268)
    on left: 377 378 379, on right: 383
step_number (301)
    on left: 460 461 462, on right: 458 459
step_numbers (300)
    on left: 458 459, on right: 456 459
string (244)
    on left: 301 302 303, on right: 59 303
string_number_event (261)
    on left: 352, on right: 347
sub_quotes (267)
    on left: 375 376, on right: 371 376 379 382
sup_quotes (266)
    on left: 373 374, on right: 372 374 378 381
tempo_event (185)
    on left: 120 121 122, on right: 338
tempo_range (302)
    on left: 463 464, on right: 120 121
toplevel_expression (151)
    on left: 10 11 12 13 14 15 16 17, on right: 5
tremolo_type (282)
    on left: 411 412, on right: 365
unsigned_number (309)
    on left: 480 481, on right: 136 137

Jiné jazyky: deutsch, español, français, italiano, 日本語.
About automatic language selection.

LilyPond — Notation Reference