A. 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                    | BOOK_IDENTIFIER
   14                    | score_block
   15                    | composite_music
   16                    | full_markup
   17                    | full_markup_list
   18                    | SCM_TOKEN
   19                    | embedded_scm_active
   20                    | output_def

   21 embedded_scm_bare: SCM_TOKEN
   22                  | SCM_IDENTIFIER

   23 embedded_scm_active: SCM_IDENTIFIER
   24                    | scm_function_call

   25 embedded_scm_bare_arg: SCM_ARG
   26                      | SCM_TOKEN
   27                      | FRACTION
   28                      | full_markup_list
   29                      | context_modification
   30                      | score_block
   31                      | context_def_spec_block
   32                      | book_block
   33                      | bookpart_block
   34                      | output_def

   35 embedded_scm: embedded_scm_bare
   36             | scm_function_call

   37 embedded_scm_arg: embedded_scm_bare_arg
   38                 | scm_function_call
   39                 | music_assign

   40 scm_function_call: SCM_FUNCTION function_arglist

   41 embedded_lilypond_number: '-' embedded_lilypond_number
   42                         | bare_number_common
   43                         | UNSIGNED NUMBER_IDENTIFIER

   44 embedded_lilypond: /* empty */
   45                  | identifier_init_nonumber
   46                  | embedded_lilypond_number
   47                  | post_event post_events
   48                  | multiplied_duration
   49                  | music_embedded music_embedded music_list
   50                  | error
   51                  | "\version-error" embedded_lilypond

   52 lilypond_header_body: /* empty */
   53                     | lilypond_header_body assignment
   54                     | lilypond_header_body embedded_scm

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

   56 assignment_id: STRING

   57 assignment: assignment_id '=' identifier_init
   58           | assignment_id property_path '=' identifier_init
   59           | assignment_id '.' property_path '=' identifier_init

   60 identifier_init: identifier_init_nonumber
   61                | number_expression
   62                | post_event_nofinger post_events

   63 identifier_init_nonumber: score_block
   64                         | book_block
   65                         | bookpart_block
   66                         | output_def
   67                         | context_def_spec_block
   68                         | music_assign
   69                         | pitch_or_music
   70                         | FRACTION
   71                         | string
   72                         | embedded_scm
   73                         | full_markup_list
   74                         | context_modification

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

   76 context_mod_arg: embedded_scm

   78 context_mod_arg:  composite_music

   79 context_def_spec_body: /* empty */
   80                      | context_def_spec_body context_mod
   81                      | context_def_spec_body context_modification
   82                      | context_def_spec_body context_mod_arg

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

   84 book_body: /* empty */
   85          | BOOK_IDENTIFIER
   86          | book_body paper_block
   87          | book_body bookpart_block
   88          | book_body score_block
   89          | book_body composite_music
   90          | book_body full_markup
   91          | book_body full_markup_list
   92          | book_body SCM_TOKEN
   93          | book_body embedded_scm_active

   95 book_body: book_body  lilypond_header
   96          | book_body error

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

   98 bookpart_body: /* empty */
   99              | BOOK_IDENTIFIER
  100              | bookpart_body paper_block
  101              | bookpart_body score_block
  102              | bookpart_body composite_music
  103              | bookpart_body full_markup
  104              | bookpart_body full_markup_list
  105              | bookpart_body SCM_TOKEN
  106              | bookpart_body embedded_scm_active

  108 bookpart_body: bookpart_body  lilypond_header
  109              | bookpart_body error

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

  111 score_body: score_items
  112           | score_body error

  113 score_item: embedded_scm
  114           | music
  115           | output_def

  116 score_items: /* empty */
  117            | score_items score_item

  119 score_items: score_items  lilypond_header

  120 paper_block: output_def

  121 output_def: output_def_body '}'

  122 output_def_head: "\paper"
  123                | "\midi"
  124                | "\layout"

  125 output_def_head_with_mode_switch: output_def_head

  126 music_or_context_def: music_assign
  127                     | context_def_spec_block

  128 output_def_body: output_def_head_with_mode_switch '{'
  129                | output_def_body assignment
  130                | output_def_body embedded_scm_active
  131                | output_def_body SCM_TOKEN

  133 output_def_body: output_def_body  music_or_context_def
  134                | output_def_body error

  135 tempo_event: "\tempo" steno_duration '=' tempo_range
  136            | "\tempo" scalar steno_duration '=' tempo_range
  137            | "\tempo" scalar

  138 music_list: /* empty */
  139           | music_list music_embedded
  140           | music_list error

  141 braced_music_list: '{' music_list '}'

  142 music: music_assign
  143      | lyric_element_music
  144      | pitch_as_music

  145 pitch_as_music: pitch_or_music

  146 music_embedded: music
  147               | music_embedded_backup
  148               | music_embedded_backup 
                        "(backed-up?)" 
                        lyric_element_music 
  149               | multiplied_duration post_events

  150 music_embedded_backup: embedded_scm

  151 music_assign: simple_music
  152             | composite_music

  153 repeated_music: "\repeat" simple_string unsigned_number music
  154               | "\repeat" 
                        simple_string 
                        unsigned_number 
                        music 
                        "\alternative" 
                        braced_music_list 

  155 sequential_music: "\sequential" braced_music_list
  156                 | braced_music_list

  157 simultaneous_music: "\simultaneous" braced_music_list
  158                   | "<<" music_list ">>"

  159 simple_music: event_chord
  160             | music_property_def
  161             | context_change

  163 context_modification: "\with"  '{' context_mod_list '}'
  164                     | "\with" CONTEXT_MOD_IDENTIFIER
  165                     | CONTEXT_MOD_IDENTIFIER
  166                     | "\with" context_modification_arg

  167 context_modification_arg: embedded_scm
  168                         | MUSIC_IDENTIFIER

  169 optional_context_mod: /* empty */
  170                     | context_modification

  171 context_mod_list: /* empty */
  172                 | context_mod_list context_mod
  173                 | context_mod_list CONTEXT_MOD_IDENTIFIER
  174                 | context_mod_list context_mod_arg

  175 context_prefix: "\context" symbol optional_id optional_context_mod
  176               | "\new" symbol optional_id optional_context_mod

  177 new_lyrics: "\addlyrics" lyric_mode_music
  178           | new_lyrics "\addlyrics" lyric_mode_music

  179 basic_music: music_function_call
  180            | repeated_music
  181            | music_bare
  182            | "\lyricsto" simple_string lyric_mode_music
  183            | "\lyricsto" symbol '=' simple_string lyric_mode_music

  184 contextable_music: basic_music
  185                  | pitch_as_music
  186                  | event_chord

  187 contexted_basic_music: context_prefix contextable_music new_lyrics
  188                      | context_prefix contextable_music
  189                      | context_prefix contexted_basic_music

  190 composite_music: basic_music
  191                | contexted_basic_music
  192                | basic_music new_lyrics

  193 music_bare: mode_changed_music
  194           | MUSIC_IDENTIFIER
  195           | grouped_music_list

  196 grouped_music_list: simultaneous_music
  197                   | sequential_music

  198 symbol_list_arg: SYMBOL_LIST
  199                | SYMBOL_LIST '.' symbol_list_rev

  200 symbol_list_rev: symbol_list_part
  201                | symbol_list_rev '.' symbol_list_part

  202 symbol_list_part: symbol_list_element

  203 symbol_list_element: STRING
  204                    | embedded_scm_bare

  205 function_arglist_nonbackup: function_arglist_common
  206                           | "optional?" 
                                    "scheme?" 
                                    function_arglist_nonbackup 
                                    post_event_nofinger 
  207                           | "optional?" 
                                    "scheme?" 
                                    function_arglist_nonbackup 
                                    '-' 
                                    UNSIGNED 
  208                           | "optional?" 
                                    "scheme?" 
                                    function_arglist_nonbackup 
                                    '-' 
                                    REAL 
  209                           | "optional?" 
                                    "scheme?" 
                                    function_arglist_nonbackup 
                                    '-' 
                                    NUMBER_IDENTIFIER 
  210                           | "optional?" 
                                    "scheme?" 
                                    function_arglist_nonbackup 
                                    embedded_scm_arg 
  211                           | "optional?" 
                                    "scheme?" 
                                    function_arglist_nonbackup 
                                    bare_number_common 
  212                           | function_arglist_nonbackup_reparse 
                                    "(reparsed?)" 
                                    pitch_or_music 
  213                           | function_arglist_nonbackup_reparse 
                                    "(reparsed?)" 
                                    duration_length 
  214                           | function_arglist_nonbackup_reparse 
                                    "(reparsed?)" 
                                    bare_number_common 
  215                           | function_arglist_nonbackup_reparse 
                                    "(reparsed?)" 
                                    SCM_ARG 
  216                           | function_arglist_nonbackup_reparse 
                                    "(reparsed?)" 
                                    lyric_element_music 
  217                           | function_arglist_nonbackup_reparse 
                                    "(reparsed?)" 
                                    symbol_list_arg 

  218 function_arglist_nonbackup_reparse: "optional?" 
                                            "scheme?" 
                                            function_arglist_nonbackup 
                                            SCM_IDENTIFIER 
  219                                   | "optional?" 
                                            "scheme?" 
                                            function_arglist_nonbackup 
                                            pitch 
  220                                   | "optional?" 
                                            "scheme?" 
                                            function_arglist_nonbackup 
                                            steno_tonic_pitch 
  221                                   | "optional?" 
                                            "scheme?" 
                                            function_arglist_nonbackup 
                                            STRING 
  222                                   | "optional?" 
                                            "scheme?" 
                                            function_arglist_nonbackup 
                                            full_markup 
  223                                   | "optional?" 
                                            "scheme?" 
                                            function_arglist_nonbackup 
                                            UNSIGNED 
  224                                   | "optional?" 
                                            "scheme?" 
                                            function_arglist_nonbackup 
                                            DURATION_IDENTIFIER 

  225 function_arglist_backup: function_arglist_common
  226                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 embedded_scm_arg 
  227                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 post_event_nofinger 
  228                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 pitch 
  229                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 steno_tonic_pitch 
  230                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 full_markup 
  231                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 UNSIGNED 
  232                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 REAL 
  233                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 NUMBER_IDENTIFIER 
  234                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 '-' 
                                 UNSIGNED 
  235                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 '-' 
                                 REAL 
  236                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 '-' 
                                 NUMBER_IDENTIFIER 
  237                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 DURATION_IDENTIFIER 
  238                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 SCM_IDENTIFIER 
  239                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 STRING 
  240                        | function_arglist_backup 
                                 "(reparsed?)" 
                                 pitch_or_music 
  241                        | function_arglist_backup 
                                 "(reparsed?)" 
                                 bare_number_common 
  242                        | function_arglist_backup 
                                 "(reparsed?)" 
                                 duration_length 
  243                        | function_arglist_backup 
                                 "(reparsed?)" 
                                 symbol_list_arg 

  244 function_arglist: function_arglist_nonbackup
  245                 | "optional?" 
                          "scheme?" 
                          function_arglist_skip_nonbackup 
                          "\default" 

  246 function_arglist_skip_nonbackup: function_arglist_nonbackup
  247                                | "optional?" 
                                         "scheme?" 
                                         function_arglist_skip_nonbackup 

  248 function_arglist_common: EXPECT_NO_MORE_ARGS
  249                        | "scheme?" 
                                 function_arglist_optional 
                                 embedded_scm_arg 
  250                        | "scheme?" 
                                 function_arglist_optional 
                                 bare_number_common 
  251                        | "scheme?" 
                                 function_arglist_optional 
                                 post_event_nofinger 
  252                        | "scheme?" 
                                 function_arglist_optional 
                                 '-' 
                                 NUMBER_IDENTIFIER 
  253                        | function_arglist_common_reparse 
                                 "(reparsed?)" 
                                 SCM_ARG 
  254                        | function_arglist_common_reparse 
                                 "(reparsed?)" 
                                 lyric_element_music 
  255                        | function_arglist_common_reparse 
                                 "(reparsed?)" 
                                 pitch_or_music 
  256                        | function_arglist_common_reparse 
                                 "(reparsed?)" 
                                 bare_number_common 
  257                        | function_arglist_common_reparse 
                                 "(reparsed?)" 
                                 duration_length 
  258                        | function_arglist_common_reparse 
                                 "(reparsed?)" 
                                 symbol_list_arg 

  259 function_arglist_common_reparse: "scheme?" 
                                         function_arglist_optional 
                                         SCM_IDENTIFIER 
  260                                | "scheme?" 
                                         function_arglist_optional 
                                         pitch 
  261                                | "scheme?" 
                                         function_arglist_optional 
                                         steno_tonic_pitch 
  262                                | "scheme?" 
                                         function_arglist_optional 
                                         STRING 
  263                                | "scheme?" 
                                         function_arglist_optional 
                                         full_markup 
  264                                | "scheme?" 
                                         function_arglist_optional 
                                         UNSIGNED 
  265                                | "scheme?" 
                                         function_arglist_optional 
                                         DURATION_IDENTIFIER 
  266                                | "scheme?" 
                                         function_arglist_optional 
                                         '-' 
                                         UNSIGNED 
  267                                | "scheme?" 
                                         function_arglist_optional 
                                         '-' 
                                         REAL 

  268 function_arglist_optional: function_arglist_backup
  269                          | "optional?" 
                                   "scheme?" 
                                   function_arglist_skip_backup 
                                   "\default" 
  270                          | function_arglist_skip_backup "(backed-up?)"

  271 function_arglist_skip_backup: function_arglist_backup
  272                             | "optional?" 
                                      "scheme?" 
                                      function_arglist_skip_backup 

  273 music_function_call: MUSIC_FUNCTION function_arglist

  274 optional_id: /* empty */
  275            | '=' simple_string

  277 lyric_mode_music:  grouped_music_list
  278                 | MUSIC_IDENTIFIER

  279 mode_changed_music: mode_changing_head grouped_music_list
  280                   | mode_changing_head_with_context 
                            optional_context_mod 
                            grouped_music_list 

  281 mode_changing_head: "\notemode"
  282                   | "\drummode"
  283                   | "\figuremode"
  284                   | "\chordmode"
  285                   | "\lyricmode"

  286 mode_changing_head_with_context: "\drums"
  287                                | "\figures"
  288                                | "\chords"
  289                                | "\lyrics"

  290 context_change: "\change" symbol '=' simple_string

  291 property_path: symbol_list_rev
  292              | symbol_list_rev property_path

  293 property_operation: symbol '=' scalar
  294                   | "\unset" symbol
  295                   | "\override" property_path '=' scalar
  296                   | "\revert" revert_arg

  297 revert_arg: revert_arg_backup "(backed-up?)" symbol_list_arg

  298 revert_arg_backup: revert_arg_part

  299 revert_arg_part: symbol_list_part
  300                | revert_arg_backup 
                         "(backed-up?)" 
                         SCM_ARG 
                         '.' 
                         symbol_list_part 
  301                | revert_arg_backup 
                         "(backed-up?)" 
                         SCM_ARG 
                         symbol_list_part 

  302 context_def_mod: "\consists"
  303                | "\remove"
  304                | "\accepts"
  305                | "\defaultchild"
  306                | "\denies"
  307                | "\alias"
  308                | "\type"
  309                | "\description"
  310                | "\name"

  311 context_mod: property_operation
  312            | context_def_mod STRING
  313            | context_def_mod embedded_scm

  314 grob_prop_spec: symbol_list_rev

  315 grob_prop_path: grob_prop_spec
  316               | grob_prop_spec property_path

  317 context_prop_spec: symbol_list_rev

  318 simple_music_property_def: "\override" grob_prop_path '=' scalar
  319                          | "\revert" simple_revert_context revert_arg
  320                          | "\set" context_prop_spec '=' scalar
  321                          | "\unset" context_prop_spec

  322 simple_revert_context: symbol_list_part

  323 music_property_def: simple_music_property_def

  324 string: STRING
  325       | full_markup

  326 simple_string: STRING
  327              | embedded_scm_bare

  328 symbol: STRING
  329       | embedded_scm_bare

  330 scalar: embedded_scm_arg
  331       | pitch_or_music
  332       | SCM_IDENTIFIER
  333       | bare_number
  334       | '-' bare_number
  335       | string

  336 event_chord: simple_element post_events
  337            | CHORD_REPETITION optional_notemode_duration post_events
  338            | MULTI_MEASURE_REST optional_notemode_duration post_events
  339            | tempo_event
  340            | note_chord_element

  341 note_chord_element: chord_body optional_notemode_duration post_events

  342 chord_body: "<" chord_body_elements ">"
  343           | FIGURE_OPEN figure_list FIGURE_CLOSE

  344 chord_body_elements: /* empty */
  345                    | chord_body_elements chord_body_element

  346 chord_body_element: pitch_or_tonic_pitch 
                            exclamations 
                            questions 
                            octave_check 
                            post_events 
  347                   | DRUM_PITCH post_events
  348                   | music_function_chord_body

  349 music_function_chord_body: music_function_call
  350                          | MUSIC_IDENTIFIER
  351                          | embedded_scm

  352 event_function_event: EVENT_FUNCTION function_arglist

  353 post_events: /* empty */
  354            | post_events post_event

  355 post_event_nofinger: direction_less_event
  356                    | script_dir music_function_call
  357                    | "--"
  358                    | "__"
  359                    | script_dir direction_reqd_event
  360                    | script_dir direction_less_event
  361                    | '^' fingering
  362                    | '_' fingering

  363 post_event: post_event_nofinger
  364           | '-' fingering

  365 string_number_event: E_UNSIGNED

  366 direction_less_event: string_number_event
  367                     | EVENT_IDENTIFIER
  368                     | tremolo_type
  369                     | event_function_event

  370 direction_reqd_event: gen_text_def
  371                     | script_abbreviation

  372 octave_check: /* empty */
  373             | '=' quotes

  374 quotes: /* empty */
  375       | sub_quotes
  376       | sup_quotes

  377 sup_quotes: '''
  378           | sup_quotes '''

  379 sub_quotes: ','
  380           | sub_quotes ','

  381 steno_pitch: NOTENAME_PITCH quotes

  382 steno_tonic_pitch: TONICNAME_PITCH quotes

  383 pitch: steno_pitch
  384      | PITCH_IDENTIFIER quotes

  385 pitch_or_tonic_pitch: pitch
  386                     | steno_tonic_pitch

  387 gen_text_def: full_markup
  388             | STRING
  389             | embedded_scm

  390 fingering: UNSIGNED

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

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

  401 duration_length: multiplied_duration

  402 maybe_notemode_duration: /* empty */
  403                        | multiplied_duration

  404 optional_notemode_duration: maybe_notemode_duration

  405 steno_duration: UNSIGNED dots
  406               | DURATION_IDENTIFIER dots

  407 multiplied_duration: steno_duration
  408                    | multiplied_duration '*' UNSIGNED
  409                    | multiplied_duration '*' FRACTION

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

  412 tremolo_type: ':'
  413             | ':' UNSIGNED

  414 bass_number: UNSIGNED
  415            | STRING
  416            | full_markup
  417            | embedded_scm_bare

  418 figured_bass_alteration: '-'
  419                        | '+'
  420                        | '!'

  421 bass_figure: "_"
  422            | bass_number
  423            | bass_figure ']'
  424            | bass_figure figured_bass_alteration
  425            | bass_figure figured_bass_modification

  426 figured_bass_modification: "\+"
  427                          | "\!"
  428                          | '/'
  429                          | "\"

  430 br_bass_figure: bass_figure
  431               | '[' bass_figure

  432 figure_list: /* empty */
  433            | figure_list br_bass_figure

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

  436 pitch_or_music: pitch 
                        exclamations 
                        questions 
                        octave_check 
                        maybe_notemode_duration 
                        optional_rest 
                        post_events 
  437               | new_chord post_events

  438 simple_element: DRUM_PITCH optional_notemode_duration
  439               | RESTNAME optional_notemode_duration

  440 lyric_element: full_markup
  441              | STRING
  442              | LYRIC_ELEMENT

  443 lyric_element_music: lyric_element 
                             optional_notemode_duration 
                             post_events 

  444 new_chord: steno_tonic_pitch maybe_notemode_duration
  445          | steno_tonic_pitch 
                   optional_notemode_duration 
                   chord_separator 
                   chord_items 

  446 chord_items: /* empty */
  447            | chord_items chord_item

  448 chord_separator: ":"
  449                | "^"
  450                | "/" steno_tonic_pitch
  451                | "/+" steno_tonic_pitch

  452 chord_item: chord_separator
  453           | step_numbers
  454           | CHORD_MODIFIER

  455 step_numbers: step_number
  456             | step_numbers '.' step_number

  457 step_number: UNSIGNED
  458            | UNSIGNED '+'
  459            | UNSIGNED "-"

  460 tempo_range: unsigned_number
  461            | unsigned_number '-' unsigned_number

  462 number_expression: number_expression '+' number_term
  463                  | number_expression '-' number_term
  464                  | number_term

  465 number_term: number_factor
  466            | number_factor '*' number_factor
  467            | number_factor '/' number_factor

  468 number_factor: '-' number_factor
  469              | bare_number

  470 bare_number_common: REAL
  471                   | NUMBER_IDENTIFIER
  472                   | REAL NUMBER_IDENTIFIER

  473 bare_number: bare_number_common
  474            | UNSIGNED
  475            | UNSIGNED NUMBER_IDENTIFIER

  476 unsigned_number: UNSIGNED
  477                | NUMBER_IDENTIFIER
  478                | embedded_scm

  479 exclamations: /* empty */
  480             | exclamations '!'

  481 questions: /* empty */
  482          | questions '?'

  484 full_markup_list: "\markuplist" 0 markup_list

  486 full_markup: "\markup" 1 markup_top

  487 markup_top: markup_list
  488           | markup_head_1_list simple_markup
  489           | simple_markup

  491 markup_scm: embedded_scm_bare 2 "(backed-up?)"

  492 markup_list: markup_composed_list
  493            | markup_uncomposed_list

  494 markup_uncomposed_list: markup_braced_list
  495                       | markup_command_list
  496                       | markup_scm MARKUPLIST_IDENTIFIER

  498 markup_uncomposed_list: "\score-lines" 3 '{' score_body '}'

  499 markup_composed_list: markup_head_1_list markup_uncomposed_list

  500 markup_braced_list: '{' markup_braced_list_body '}'

  501 markup_braced_list_body: /* empty */
  502                        | markup_braced_list_body markup
  503                        | markup_braced_list_body markup_list

  504 markup_command_list: MARKUP_LIST_FUNCTION markup_command_list_arguments

  505 markup_command_basic_arguments: "markup-list?" 
                                        markup_command_list_arguments 
                                        markup_list 
  506                               | "scheme?" 
                                        markup_command_list_arguments 
                                        embedded_scm 
  507                               | EXPECT_NO_MORE_ARGS

  508 markup_command_list_arguments: markup_command_basic_arguments
  509                              | "markup?" 
                                       markup_command_list_arguments 
                                       markup 

  510 markup_head_1_item: MARKUP_FUNCTION 
                            "markup?" 
                            markup_command_list_arguments 

  511 markup_head_1_list: markup_head_1_item
  512                   | markup_head_1_list markup_head_1_item

  513 simple_markup: STRING

  515 simple_markup: "\score" 4 '{' score_body '}'
  516              | MARKUP_FUNCTION markup_command_basic_arguments
  517              | markup_scm MARKUP_IDENTIFIER

  518 markup: markup_head_1_list simple_markup
  519       | simple_markup


Terminals, with rules where they appear



    226 227 228 229 230 231 232 233 234 235 236 237 238 239 245 247
    226 227 228 229 230 231 232 233 234 235 236 237 238 239 245 247
    249 250 251 252 259 260 261 262 263 264 265 266 267 269 272 506
    255 256 257 258
    269 272
    459 474 475 476
    461 463 468
"#{" (339) 3
"(backed-up?)" (334) 148 270 297 300 301 491
"(reparsed?)" (335) 212 213 214 215 216 217 240 241 242 243 253 254
"-" (319) 459
"--" (265) 357
"/" (320) 450
"/+" (316) 451
":" (318) 448
"<" (321) 342
"<<" (323) 158
">" (322) 342 395
">>" (324) 158
"\!" (326) 427
"\" (325) 429
"\+" (327) 426
"\accepts" (273) 304
"\addlyrics" (262) 177 178
"\alias" (274) 307
"\alternative" (260) 154
"\book" (275) 83
"\bookpart" (276) 97
"\change" (277) 290
"\chordmode" (278) 284
"\chords" (279) 288
"\consists" (280) 302
"\context" (281) 75 175
"\default" (282) 245 269
"\defaultchild" (283) 305
"\denies" (284) 306
"\description" (285) 309
"\drummode" (286) 282
"\drums" (287) 286
"\figuremode" (288) 283
"\figures" (289) 287
"\header" (290) 55
"\layout" (292) 124
"\lyricmode" (293) 285
"\lyrics" (294) 289
"\lyricsto" (295) 182 183
"\markup" (296) 486
"\markuplist" (297) 484
"\midi" (298) 123
"\name" (299) 310
"\new" (315) 176
"\notemode" (300) 281
"\override" (301) 295 318
"\paper" (302) 122
"\remove" (303) 303
"\repeat" (259) 153 154
"\rest" (304) 435
"\revert" (305) 296 319
"\score" (306) 110 515
"\score-lines" (307) 498
"\sequential" (308) 155
"\set" (309) 320
"\simultaneous" (310) 157
"\tempo" (311) 135 136 137
"\type" (312) 308
"\unset" (313) 294 321
"\version-error" (291) 8 51
"\with" (314) 163 164 166
"^" (317) 449
"_" (330) 421
"__" (264) 358
"end of input" (0) 0
"markup-list?" (336) 505
"markup?" (332) 509 510
"optional?" (337) 206 207 208 209 210 211 218 219 220 221 222 223 224
"scheme?" (333) 206 207 208 209 210 211 218 219 220 221 222 223 224
'!' (33) 394 420 480
''' (39) 377 378
'*' (42) 408 409 466
'+' (43) 392 419 458 462
',' (44) 379 380
'-' (45) 41 207 208 209 234 235 236 252 266 267 334 364 393 400 418
'.' (46) 59 199 201 300 396 411 456
'/' (47) 428 467
':' (58) 412 413
'=' (61) 57 58 59 135 136 183 275 290 293 295 318 320 373
'?' (63) 482
'[' (91) 431
']' (93) 423
'^' (94) 361 391 399
'_' (95) 362 397 398
'{' (123) 55 75 83 97 110 128 141 163 498 500 515
'}' (125) 55 75 83 97 110 121 141 163 498 500 515
BOOK_IDENTIFIER (340) 13 85 99
CHORD_MODIFIER (341) 454
CHORD_REPETITION (342) 337
COMPOSITE (261)
CONTEXT_MOD_IDENTIFIER (343) 164 165 173
DRUM_PITCH (344) 347 438
DURATION_IDENTIFIER (263) 224 237 265 406
E_UNSIGNED (268) 365
error (256) 7 50 96 109 112 134 140
EVENT_FUNCTION (266) 352
EVENT_IDENTIFIER (267) 367
EXPECT_NO_MORE_ARGS (338) 248 507
FIGURE_CLOSE (328) 343
FIGURE_OPEN (329) 343
FRACTION (346) 27 70 409
LYRIC_ELEMENT (347) 442
MARKUP_FUNCTION (348) 510 516
MARKUP_IDENTIFIER (350) 517
MARKUP_LIST_FUNCTION (349) 504
MARKUPLIST_IDENTIFIER (351) 496
MULTI_MEASURE_REST (331) 338
MUSIC_FUNCTION (352) 273
MUSIC_IDENTIFIER (353) 168 194 278 350
NOTENAME_PITCH (354) 381
NUMBER_IDENTIFIER (271) 43 209 233 236 252 471 472 475 477
PITCH_IDENTIFIER (345) 384
PREC_BOT (258)
PREC_TOP (272)
REAL (269) 208 232 235 267 470 472
RESTNAME (355) 439
SCM_ARG (356) 25 215 253 300 301
SCM_FUNCTION (357) 40
SCM_IDENTIFIER (358) 22 23 218 238 259 332
SCM_TOKEN (359) 18 21 26 92 105 131
STRING (360) 56 203 221 239 262 312 324 326 328 388 415 441 513
SYMBOL_LIST (361) 198 199
TONICNAME_PITCH (362) 382
UNARY_MINUS (363)
UNSIGNED (270) 43 207 223 231 234 264 266 390 405 408 413 414 457 458

Nonterminals, with rules where they appear


assignment (143)
    on left: 57 58 59, on right: 6 53 129
assignment_id (142)
    on left: 56, on right: 57 58 59
bare_number (285)
    on left: 473 474 475, on right: 333 334 469
basic_music (187)
    on left: 179 180 181 182 183, on right: 184 190 192
bass_number (263)
    on left: 414 415 416 417, on right: 422
book_block (150)
    on left: 83, on right: 11 32 64
bookpart_block (153)
    on left: 97, on right: 12 33 65 87
br_bass_figure (267)
    on left: 430 431, on right: 433
braced_music_list (170)
    on left: 141, on right: 154 155 156 157
chord_body (233)
    on left: 342 343, on right: 341
chord_body_element (235)
    on left: 346 347 348, on right: 345
chord_body_elements (234)
    on left: 344 345, on right: 342 345
chord_item (277)
    on left: 452 453 454, on right: 447
chord_items (275)
    on left: 446 447, on right: 445 447
chord_separator (276)
    on left: 448 449 450 451, on right: 445 452
composite_music (190)
    on left: 190 191 192, on right: 15 78 89 102 152
context_change (213)
    on left: 290, on right: 161
context_def_spec_block (146)
    on left: 75, on right: 31 67 127
context_def_spec_body (149)
    on left: 79 80 81 82, on right: 75 80 81 82
context_mod (220)
    on left: 311 312 313, on right: 80 172
context_mod_arg (147)
    on left: 76 78, on right: 82 174
context_modification_arg (182)
    on left: 167 168, on right: 166
context_prefix (185)
    on left: 175 176, on right: 187 188 189
context_prop_spec (223)
    on left: 317, on right: 320 321
contextable_music (188)
    on left: 184 185 186, on right: 187 188
contexted_basic_music (189)
    on left: 187 188 189, on right: 189 191
direction_less_event (242)
    on left: 366 367 368 369, on right: 355 360
direction_reqd_event (243)
    on left: 370 371, on right: 359
dots (261)
    on left: 410 411, on right: 405 406 411
duration_length (256)
    on left: 401, on right: 213 242 257
embedded_lilypond (139)
    on left: 44 45 46 47 48 49 50 51, on right: 3 51
embedded_lilypond_number (138)
    on left: 41 42 43, on right: 41 46
embedded_scm_active (133)
    on left: 23 24, on right: 19 93 106 130
embedded_scm_arg (136)
    on left: 37 38 39, on right: 210 226 249 330
embedded_scm_bare (132)
    on left: 21 22, on right: 35 204 327 329 417 491
event_chord (231)
    on left: 336 337 338 339 340, on right: 159 186
event_function_event (237)
    on left: 352, on right: 369
exclamations (287)
    on left: 479 480, on right: 346 436 480
figure_list (268)
    on left: 432 433, on right: 343 433
figured_bass_alteration (264)
    on left: 418 419 420, on right: 424
figured_bass_modification (266)
    on left: 426 427 428 429, on right: 425
fingering (253)
    on left: 390, on right: 361 362 364
full_markup_list (289)
    on left: 484, on right: 17 28 73 91 104
function_arglist (200)
    on left: 244 245, on right: 40 273 352
function_arglist_skip_nonbackup (201)
    on left: 246 247, on right: 245 247
gen_text_def (252)
    on left: 387 388 389, on right: 370
grob_prop_path (222)
    on left: 315 316, on right: 318
grob_prop_spec (221)
    on left: 314, on right: 315 316
grouped_music_list (192)
    on left: 196 197, on right: 195 277 279 280
identifier_init (144)
    on left: 60 61 62, on right: 57 58 59
lilypond (129)
    on left: 4 5 6 7 8, on right: 1 5 6 7 8
lilypond_header (141)
    on left: 55, on right: 10 95 108 119
lilypond_header_body (140)
    on left: 52 53 54, on right: 53 54 55
lyric_element (272)
    on left: 440 441 442, on right: 443
lyric_element_music (273)
    on left: 443, on right: 143 148 216 254
lyric_mode_music (208)
    on left: 277 278, on right: 177 178 182 183
markup (309)
    on left: 518 519, on right: 502 509
markup_braced_list (300)
    on left: 500, on right: 494
markup_braced_list_body (301)
    on left: 501 502 503, on right: 500 502 503
markup_command_list (302)
    on left: 504, on right: 495
markup_composed_list (299)
    on left: 499, on right: 492
markup_head_1_item (305)
    on left: 510, on right: 511 512
markup_head_1_list (306)
    on left: 511 512, on right: 488 499 512 518
markup_list (296)
    on left: 492 493, on right: 484 487 503 505
markup_scm (294)
    on left: 491, on right: 496 517
markup_top (293)
    on left: 487 488 489, on right: 486
markup_uncomposed_list (297)
    on left: 494 495 496 498, on right: 493 499
maybe_notemode_duration (257)
    on left: 402 403, on right: 404 436 444
mode_changed_music (210)
    on left: 279 280, on right: 193
mode_changing_head (211)
    on left: 281 282 283 284 285, on right: 279
music (171)
    on left: 142 143 144, on right: 114 146 153 154
music_assign (175)
    on left: 151 152, on right: 39 68 126 142
music_bare (191)
    on left: 193 194 195, on right: 181
music_embedded (173)
    on left: 146 147 148 149, on right: 49 139
music_embedded_backup (174)
    on left: 150, on right: 147 148
music_function_call (206)
    on left: 273, on right: 179 349 356
music_function_chord_body (236)
    on left: 349 350 351, on right: 348
music_list (169)
    on left: 138 139 140, on right: 49 139 140 141 158
music_or_context_def (165)
    on left: 126 127, on right: 133
music_property_def (226)
    on left: 323, on right: 160
new_chord (274)
    on left: 444 445, on right: 437
new_lyrics (186)
    on left: 177 178, on right: 178 187 192
note_chord_element (232)
    on left: 341, on right: 340
number_expression (281)
    on left: 462 463 464, on right: 61 462 463
number_factor (283)
    on left: 468 469, on right: 465 466 467 468
number_term (282)
    on left: 465 466 467, on right: 462 463 464
octave_check (244)
    on left: 372 373, on right: 346 436
optional_context_mod (183)
    on left: 169 170, on right: 175 176 280
optional_id (207)
    on left: 274 275, on right: 175 176
optional_rest (269)
    on left: 434 435, on right: 436
output_def (162)
    on left: 121, on right: 20 34 66 115 120
output_def_head (163)
    on left: 122 123 124, on right: 125
output_def_head_with_mode_switch (164)
    on left: 125, on right: 128
paper_block (161)
    on left: 120, on right: 86 100
pitch (250)
    on left: 383 384, on right: 219 228 260 385 436
pitch_as_music (172)
    on left: 145, on right: 144 185
pitch_or_music (270)
    on left: 436 437, on right: 69 145 212 240 255 331
pitch_or_tonic_pitch (251)
    on left: 385 386, on right: 346
post_event (240)
    on left: 363 364, on right: 47 354
property_operation (215)
    on left: 293 294 295 296, on right: 311
property_path (214)
    on left: 291 292, on right: 58 59 292 295 316
questions (288)
    on left: 481 482, on right: 346 436 482
quotes (245)
    on left: 374 375 376, on right: 373 381 382 384
repeated_music (176)
    on left: 153 154, on right: 180
revert_arg (216)
    on left: 297, on right: 296 319
revert_arg_backup (217)
    on left: 298, on right: 297 300 301
revert_arg_part (218)
    on left: 299 300 301, on right: 298
scm_function_call (137)
    on left: 40, on right: 24 36 38
score_block (156)
    on left: 110, on right: 14 30 63 88 101
score_body (157)
    on left: 111 112, on right: 110 112 498 515
score_item (158)
    on left: 113 114 115, on right: 117
score_items (159)
    on left: 116 117 119, on right: 111 117 119
script_dir (255)
    on left: 398 399 400, on right: 356 359 360
sequential_music (177)
    on left: 155 156, on right: 197
simple_element (271)
    on left: 438 439, on right: 336
simple_markup (307)
    on left: 513 515 516 517, on right: 488 489 518 519
simple_music (179)
    on left: 159 160 161, on right: 151
simple_music_property_def (224)
    on left: 318 319 320 321, on right: 323
simple_revert_context (225)
    on left: 322, on right: 319
simple_string (228)
    on left: 326 327, on right: 153 154 182 183 275 290
simultaneous_music (178)
    on left: 157 158, on right: 196
start_symbol (127)
    on left: 1 3, on right: 0
steno_duration (259)
    on left: 405 406, on right: 135 136 407
steno_pitch (248)
    on left: 381, on right: 383
step_number (279)
    on left: 457 458 459, on right: 455 456
step_numbers (278)
    on left: 455 456, on right: 453 456
string (227)
    on left: 324 325, on right: 71 335
string_number_event (241)
    on left: 365, on right: 366
sub_quotes (247)
    on left: 379 380, on right: 375 380
sup_quotes (246)
    on left: 377 378, on right: 376 378
symbol (229)
    on left: 328 329, on right: 175 176 183 290 293 294
symbol_list_arg (193)
    on left: 198 199, on right: 217 243 258 297
symbol_list_element (196)
    on left: 203 204, on right: 202
symbol_list_part (195)
    on left: 202, on right: 200 201 299 300 301 322
symbol_list_rev (194)
    on left: 200 201, on right: 199 201 291 292 314 317
tempo_event (168)
    on left: 135 136 137, on right: 339
tempo_range (280)
    on left: 460 461, on right: 135 136
tremolo_type (262)
    on left: 412 413, on right: 368
unsigned_number (286)
    on left: 476 477 478, on right: 153 154 460 461

LilyPond — Contributor’s Guide v2.19.15 (development-branch).