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                    | SCM_TOKEN
   18                    | embedded_scm_active
   19                    | output_def

   20 embedded_scm_bare: SCM_TOKEN
   21                  | SCM_IDENTIFIER

   22 embedded_scm_active: SCM_IDENTIFIER
   23                    | scm_function_call

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

   34 embedded_scm: embedded_scm_bare
   35             | scm_function_call

   36 embedded_scm_arg: embedded_scm_bare_arg
   37                 | scm_function_call
   38                 | music_assign

   39 scm_function_call: SCM_FUNCTION function_arglist

   40 embedded_lilypond: /* empty */
   41                  | identifier_init
   42                  | music_embedded music_embedded music_list
   43                  | error
   44                  | "\version-error" embedded_lilypond

   45 lilypond_header_body: /* empty */
   46                     | lilypond_header_body assignment
   47                     | lilypond_header_body embedded_scm

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

   49 assignment_id: STRING

   50 assignment: assignment_id '=' identifier_init
   51           | assignment_id property_path '=' identifier_init
   52           | assignment_id '.' property_path '=' identifier_init

   53 identifier_init: score_block
   54                | book_block
   55                | bookpart_block
   56                | output_def
   57                | context_def_spec_block
   58                | music_assign
   59                | post_event_nofinger post_events
   60                | number_expression
   61                | FRACTION
   62                | string
   63                | embedded_scm
   64                | full_markup_list
   65                | context_modification

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

   67 context_mod_arg: embedded_scm

   69 context_mod_arg:  composite_music

   70 context_mod_embedded: context_mod_arg

   71 context_def_spec_body: /* empty */
   72                      | CONTEXT_DEF_IDENTIFIER
   73                      | context_def_spec_body context_mod
   74                      | context_def_spec_body context_modification
   75                      | context_def_spec_body context_mod_embedded

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

   77 book_body: /* empty */
   78          | BOOK_IDENTIFIER
   79          | book_body paper_block
   80          | book_body bookpart_block
   81          | book_body score_block
   82          | book_body composite_music
   83          | book_body full_markup
   84          | book_body full_markup_list
   85          | book_body SCM_TOKEN
   86          | book_body embedded_scm_active

   88 book_body: book_body  lilypond_header
   89          | book_body error

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

   91 bookpart_body: /* empty */
   92              | BOOK_IDENTIFIER
   93              | bookpart_body paper_block
   94              | bookpart_body score_block
   95              | bookpart_body composite_music
   96              | bookpart_body full_markup
   97              | bookpart_body full_markup_list
   98              | bookpart_body SCM_TOKEN
   99              | bookpart_body embedded_scm_active

  101 bookpart_body: bookpart_body  lilypond_header
  102              | bookpart_body error

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

  104 score_body: music
  105           | embedded_scm_active

  107 score_body: score_body  lilypond_header
  108           | score_body output_def
  109           | score_body error

  110 paper_block: output_def

  111 output_def: output_def_body '}'

  112 output_def_head: "\paper"
  113                | "\midi"
  114                | "\layout"

  115 output_def_head_with_mode_switch: output_def_head

  116 music_or_context_def: music_arg
  117                     | context_def_spec_block

  118 output_def_body: output_def_head_with_mode_switch '{'
  119                | output_def_head_with_mode_switch 
                         '{' 
                         OUTPUT_DEF_IDENTIFIER 
  120                | output_def_body assignment
  121                | output_def_body embedded_scm

  123 output_def_body: output_def_body  music_or_context_def
  124                | output_def_body error

  125 tempo_event: "\tempo" steno_duration '=' tempo_range
  126            | "\tempo" scalar steno_duration '=' tempo_range
  127            | "\tempo" scalar

  128 music_list: /* empty */
  129           | music_list music_embedded
  130           | music_list error

  131 braced_music_list: '{' music_list '}'

  132 music: music_arg
  133      | lyric_element_music

  134 music_embedded: music
  135               | music_embedded_backup
  136               | music_embedded_backup 
                        "(backed-up?)" 
                        lyric_element_music 

  137 music_embedded_backup: embedded_scm

  138 music_arg: simple_music
  139          | composite_music

  140 music_assign: simple_music
  141             | composite_music

  142 repeated_music: "\repeat" simple_string unsigned_number music
  143               | REPEAT_IDENTIFIER music
  144               | "\repeat" 
                        simple_string 
                        unsigned_number 
                        music 
                        "\alternative" 
                        braced_music_list 
  145               | REPEAT_IDENTIFIER 
                        music 
                        "\alternative" 
                        braced_music_list 

  146 sequential_music: "\sequential" braced_music_list
  147                 | braced_music_list

  148 simultaneous_music: "\simultaneous" braced_music_list
  149                   | "<<" music_list ">>"

  150 simple_music: event_chord
  151             | music_property_def
  152             | context_change

  154 context_modification: "\with"  '{' context_mod_list '}'
  155                     | "\with" CONTEXT_MOD_IDENTIFIER
  156                     | CONTEXT_MOD_IDENTIFIER
  157                     | "\with" context_modification_arg

  158 context_modification_arg: embedded_scm_closed
  159                         | MUSIC_IDENTIFIER

  160 optional_context_mod: /* empty */
  161                     | context_modification

  162 context_mod_list: /* empty */
  163                 | context_mod_list context_mod
  164                 | context_mod_list CONTEXT_MOD_IDENTIFIER
  165                 | context_mod_list context_mod_embedded

  166 composite_music: complex_music
  167                | music_bare

  168 closed_music: music_bare
  169             | complex_music_prefix closed_music
  170             | music_function_call_closed

  171 music_bare: mode_changed_music
  172           | MUSIC_IDENTIFIER
  173           | grouped_music_list

  174 grouped_music_list: simultaneous_music
  175                   | sequential_music

  176 function_arglist_nonbackup_common: "optional?" 
                                           "scheme?" 
                                           function_arglist_nonbackup 
                                           post_event_nofinger 
  177                                  | "optional?" 
                                           "scheme?" 
                                           function_arglist_nonbackup 
                                           '-' 
                                           UNSIGNED 
  178                                  | "optional?" 
                                           "scheme?" 
                                           function_arglist_nonbackup 
                                           '-' 
                                           REAL 
  179                                  | "optional?" 
                                           "scheme?" 
                                           function_arglist_nonbackup 
                                           '-' 
                                           NUMBER_IDENTIFIER 

  180 function_arglist_closed_nonbackup: function_arglist_nonbackup_common
  181                                  | function_arglist_closed_common
  182                                  | "optional?" 
                                           "scheme?" 
                                           function_arglist_nonbackup 
                                           embedded_scm_arg_closed 
  183                                  | "optional?" 
                                           "scheme?" 
                                           function_arglist_nonbackup 
                                           bare_number_closed 
  184                                  | "optional?" 
                                           "scheme?" 
                                           function_arglist_nonbackup 
                                           SCM_IDENTIFIER 
  185                                  | "optional?" 
                                           "scheme?" 
                                           function_arglist_nonbackup 
                                           STRING 
  186                                  | "optional?" 
                                           "scheme?" 
                                           function_arglist_nonbackup 
                                           full_markup 

  187 symbol_list_arg: SYMBOL_LIST
  188                | SYMBOL_LIST '.' symbol_list_rev

  189 symbol_list_rev: symbol_list_part
  190                | symbol_list_rev '.' symbol_list_part

  191 symbol_list_part: symbol_list_element

  192 symbol_list_element: STRING
  193                    | embedded_scm_bare

  194 function_arglist_nonbackup: function_arglist_nonbackup_common
  195                           | function_arglist_common
  196                           | "optional?" 
                                    "scheme?" 
                                    function_arglist_nonbackup 
                                    embedded_scm_arg 
  197                           | "optional?" 
                                    "scheme?" 
                                    function_arglist_nonbackup 
                                    bare_number_common 
  198                           | function_arglist_nonbackup_reparse 
                                    "(reparsed?)" 
                                    duration_length 
  199                           | function_arglist_nonbackup_reparse 
                                    "(reparsed?)" 
                                    bare_number_common 
  200                           | function_arglist_nonbackup_reparse 
                                    "(reparsed?)" 
                                    SCM_ARG 
  201                           | function_arglist_nonbackup_reparse 
                                    "(reparsed?)" 
                                    lyric_element_music 
  202                           | function_arglist_nonbackup_reparse 
                                    "(reparsed?)" 
                                    symbol_list_arg 

  203 function_arglist_nonbackup_reparse: "optional?" 
                                            "scheme?" 
                                            function_arglist_nonbackup 
                                            SCM_IDENTIFIER 
  204                                   | "optional?" 
                                            "scheme?" 
                                            function_arglist_nonbackup 
                                            STRING 
  205                                   | "optional?" 
                                            "scheme?" 
                                            function_arglist_nonbackup 
                                            full_markup 
  206                                   | "optional?" 
                                            "scheme?" 
                                            function_arglist_nonbackup 
                                            UNSIGNED 
  207                                   | "optional?" 
                                            "scheme?" 
                                            function_arglist_nonbackup 
                                            DURATION_IDENTIFIER 

  208 function_arglist_backup: function_arglist_common
  209                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 embedded_scm_arg_closed 
  210                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 "\repeat" 
                                 simple_string 
                                 unsigned_number 
  211                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 chord_body 
  212                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 post_event_nofinger 
  213                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 full_markup 
  214                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 UNSIGNED 
  215                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 REAL 
  216                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 NUMBER_IDENTIFIER 
  217                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 '-' 
                                 UNSIGNED 
  218                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 '-' 
                                 REAL 
  219                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 '-' 
                                 NUMBER_IDENTIFIER 
  220                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 PITCH_IDENTIFIER 
  221                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 NOTENAME_PITCH 
  222                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 TONICNAME_PITCH 
  223                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 DURATION_IDENTIFIER 
  224                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 SCM_IDENTIFIER 
  225                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_backup 
                                 STRING 
  226                        | function_arglist_backup 
                                 "(reparsed?)" 
                                 music_assign 
  227                        | function_arglist_backup 
                                 "(reparsed?)" 
                                 pitch_arg 
  228                        | function_arglist_backup 
                                 "(reparsed?)" 
                                 bare_number_common 
  229                        | function_arglist_backup 
                                 "(reparsed?)" 
                                 duration_length 
  230                        | function_arglist_backup 
                                 "(reparsed?)" 
                                 symbol_list_arg 

  231 function_arglist: function_arglist_nonbackup
  232                 | "optional?" 
                          "scheme?" 
                          function_arglist_skip_nonbackup 
                          "\default" 

  233 function_arglist_skip_nonbackup: function_arglist_nonbackup
  234                                | "optional?" 
                                         "scheme?" 
                                         function_arglist_skip_nonbackup 

  235 function_arglist_common: EXPECT_NO_MORE_ARGS
  236                        | "scheme?" 
                                 function_arglist_optional 
                                 embedded_scm_arg 
  237                        | "scheme?" 
                                 function_arglist_optional 
                                 bare_number_common 
  238                        | "scheme?" 
                                 function_arglist_optional 
                                 post_event_nofinger 
  239                        | "scheme?" 
                                 function_arglist_optional 
                                 '-' 
                                 NUMBER_IDENTIFIER 
  240                        | function_arglist_common_reparse 
                                 "(reparsed?)" 
                                 SCM_ARG 
  241                        | function_arglist_common_reparse 
                                 "(reparsed?)" 
                                 lyric_element_music 
  242                        | function_arglist_common_reparse 
                                 "(reparsed?)" 
                                 bare_number_common 
  243                        | function_arglist_common_reparse 
                                 "(reparsed?)" 
                                 duration_length 
  244                        | function_arglist_common_reparse 
                                 "(reparsed?)" 
                                 symbol_list_arg 

  245 function_arglist_common_reparse: "scheme?" 
                                         function_arglist_optional 
                                         SCM_IDENTIFIER 
  246                                | "scheme?" 
                                         function_arglist_optional 
                                         STRING 
  247                                | "scheme?" 
                                         function_arglist_optional 
                                         full_markup 
  248                                | "scheme?" 
                                         function_arglist_optional 
                                         UNSIGNED 
  249                                | "scheme?" 
                                         function_arglist_optional 
                                         DURATION_IDENTIFIER 
  250                                | "scheme?" 
                                         function_arglist_optional 
                                         '-' 
                                         UNSIGNED 
  251                                | "scheme?" 
                                         function_arglist_optional 
                                         '-' 
                                         REAL 

  252 function_arglist_closed: function_arglist_closed_nonbackup
  253                        | "optional?" 
                                 "scheme?" 
                                 function_arglist_skip_nonbackup 
                                 "\default" 

  254 function_arglist_closed_common: EXPECT_NO_MORE_ARGS
  255                               | "scheme?" 
                                        function_arglist_optional 
                                        embedded_scm_arg_closed 
  256                               | "scheme?" 
                                        function_arglist_optional 
                                        bare_number_common_closed 
  257                               | "scheme?" 
                                        function_arglist_optional 
                                        '-' 
                                        NUMBER_IDENTIFIER 
  258                               | "scheme?" 
                                        function_arglist_optional 
                                        post_event_nofinger 
  259                               | function_arglist_common_reparse 
                                        "(reparsed?)" 
                                        SCM_ARG 
  260                               | function_arglist_common_reparse 
                                        "(reparsed?)" 
                                        bare_number_common_closed 
  261                               | function_arglist_common_reparse 
                                        "(reparsed?)" 
                                        symbol_list_arg 

  262 function_arglist_optional: function_arglist_backup
  263                          | "optional?" 
                                   "scheme?" 
                                   function_arglist_skip_backup 
                                   "\default" 
  264                          | function_arglist_skip_backup "(backed-up?)"

  265 function_arglist_skip_backup: function_arglist_backup
  266                             | "optional?" 
                                      "scheme?" 
                                      function_arglist_skip_backup 

  267 embedded_scm_closed: embedded_scm_bare
  268                    | scm_function_call_closed

  269 embedded_scm_arg_closed: embedded_scm_bare_arg
  270                        | scm_function_call_closed
  271                        | closed_music

  272 scm_function_call_closed: SCM_FUNCTION function_arglist_closed

  273 music_function_call: MUSIC_FUNCTION function_arglist

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

  276 complex_music: music_function_call
  277              | repeated_music
  278              | re_rhythmed_music
  279              | complex_music_prefix music

  280 complex_music_prefix: "\context" 
                              symbol 
                              optional_id 
                              optional_context_mod 
  281                     | "\new" symbol optional_id optional_context_mod

  282 mode_changed_music: mode_changing_head grouped_music_list
  283                   | mode_changing_head_with_context 
                            optional_context_mod 
                            grouped_music_list 

  284 mode_changing_head: "\notemode"
  285                   | "\drummode"
  286                   | "\figuremode"
  287                   | "\chordmode"
  288                   | "\lyricmode"

  289 mode_changing_head_with_context: "\drums"
  290                                | "\figures"
  291                                | "\chords"
  292                                | "\lyrics"

  294 new_lyrics: "\addlyrics"  composite_music

  296 new_lyrics: new_lyrics "\addlyrics" 0 composite_music

  297 re_rhythmed_music: composite_music new_lyrics

  299 re_rhythmed_music: "\lyricsto" simple_string 1 music

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

  301 property_path: symbol_list_rev
  302              | symbol_list_rev property_path

  303 property_operation: symbol '=' scalar
  304                   | "\unset" symbol
  305                   | "\override" property_path '=' scalar
  306                   | "\revert" revert_arg

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

  308 revert_arg_backup: revert_arg_part

  309 revert_arg_part: symbol_list_part
  310                | revert_arg_backup 
                         "(backed-up?)" 
                         SCM_ARG 
                         '.' 
                         symbol_list_part 
  311                | revert_arg_backup 
                         "(backed-up?)" 
                         SCM_ARG 
                         symbol_list_part 

  312 context_def_mod: "\consists"
  313                | "\remove"
  314                | "\accepts"
  315                | "\defaultchild"
  316                | "\denies"
  317                | "\alias"
  318                | "\type"
  319                | "\description"
  320                | "\name"

  321 context_mod: property_operation
  322            | context_def_mod STRING
  323            | context_def_mod embedded_scm

  324 grob_prop_spec: symbol_list_rev

  325 grob_prop_path: grob_prop_spec
  326               | grob_prop_spec property_path

  327 context_prop_spec: symbol_list_rev

  328 simple_music_property_def: "\override" grob_prop_path '=' scalar
  329                          | "\revert" simple_revert_context revert_arg
  330                          | "\set" context_prop_spec '=' scalar
  331                          | "\unset" context_prop_spec

  332 simple_revert_context: symbol_list_part

  333 music_property_def: simple_music_property_def

  334 string: STRING
  335       | full_markup

  336 simple_string: STRING
  337              | embedded_scm_bare

  338 symbol: STRING
  339       | embedded_scm_bare

  340 scalar: embedded_scm_arg
  341       | SCM_IDENTIFIER
  342       | bare_number
  343       | '-' bare_number
  344       | STRING
  345       | full_markup

  346 event_chord: simple_element post_events
  347            | simple_chord_elements post_events
  348            | CHORD_REPETITION optional_notemode_duration post_events
  349            | MULTI_MEASURE_REST optional_notemode_duration post_events
  350            | command_element
  351            | note_chord_element

  352 note_chord_element: chord_body optional_notemode_duration post_events

  353 chord_body: "<" chord_body_elements ">"
  354           | CHORD_BODY_IDENTIFIER

  355 chord_body_elements: /* empty */
  356                    | chord_body_elements chord_body_element

  357 chord_body_element: pitch 
                            exclamations 
                            questions 
                            octave_check 
                            post_events 
  358                   | DRUM_PITCH post_events
  359                   | music_function_chord_body

  360 music_function_chord_body: music_function_call
  361                          | MUSIC_IDENTIFIER

  362 music_function_call_closed: MUSIC_FUNCTION function_arglist_closed

  363 event_function_event: EVENT_FUNCTION function_arglist_closed

  364 command_element: command_event

  365 command_event: tempo_event

  366 post_events: /* empty */
  367            | post_events post_event

  368 post_event_nofinger: direction_less_event
  369                    | script_dir music_function_call_closed
  370                    | "--"
  371                    | "__"
  372                    | script_dir direction_reqd_event
  373                    | script_dir direction_less_event
  374                    | '^' fingering
  375                    | '_' fingering

  376 post_event: post_event_nofinger
  377           | '-' fingering

  378 string_number_event: E_UNSIGNED

  379 direction_less_event: string_number_event
  380                     | EVENT_IDENTIFIER
  381                     | tremolo_type
  382                     | event_function_event

  383 direction_reqd_event: gen_text_def
  384                     | script_abbreviation

  385 octave_check: /* empty */
  386             | '=' quotes

  387 quotes: /* empty */
  388       | sub_quotes
  389       | sup_quotes

  390 sup_quotes: '''
  391           | sup_quotes '''

  392 sub_quotes: ','
  393           | sub_quotes ','

  394 steno_pitch: NOTENAME_PITCH quotes

  395 steno_tonic_pitch: TONICNAME_PITCH quotes

  396 pitch: steno_pitch
  397      | PITCH_IDENTIFIER quotes

  398 pitch_arg: PITCH_ARG quotes

  399 gen_text_def: full_markup
  400             | STRING
  401             | embedded_scm_closed

  402 fingering: UNSIGNED

  403 script_abbreviation: '^'
  404                    | '+'
  405                    | '-'
  406                    | '!'
  407                    | ">"
  408                    | '.'
  409                    | '_'

  410 script_dir: '_'
  411           | '^'
  412           | '-'

  413 duration_length: multiplied_duration

  414 maybe_notemode_duration: /* empty */
  415                        | multiplied_duration

  416 optional_notemode_duration: maybe_notemode_duration

  417 steno_duration: UNSIGNED dots
  418               | DURATION_IDENTIFIER dots

  419 multiplied_duration: steno_duration
  420                    | multiplied_duration '*' UNSIGNED
  421                    | multiplied_duration '*' FRACTION

  422 dots: /* empty */
  423     | dots '.'

  424 tremolo_type: ':'
  425             | ':' UNSIGNED

  426 bass_number: UNSIGNED
  427            | STRING
  428            | full_markup
  429            | embedded_scm_bare

  430 figured_bass_alteration: '-'
  431                        | '+'
  432                        | '!'

  433 bass_figure: "_"
  434            | bass_number
  435            | bass_figure ']'
  436            | bass_figure figured_bass_alteration
  437            | bass_figure figured_bass_modification

  438 figured_bass_modification: "\+"
  439                          | "\!"
  440                          | '/'
  441                          | "\"

  442 br_bass_figure: bass_figure
  443               | '[' bass_figure

  444 figure_list: /* empty */
  445            | figure_list br_bass_figure

  446 figure_spec: FIGURE_OPEN figure_list FIGURE_CLOSE

  447 optional_rest: /* empty */
  448              | "\rest"

  449 simple_element: pitch 
                        exclamations 
                        questions 
                        octave_check 
                        maybe_notemode_duration 
                        optional_rest 
  450               | DRUM_PITCH optional_notemode_duration
  451               | RESTNAME optional_notemode_duration

  452 simple_chord_elements: new_chord
  453                      | figure_spec optional_notemode_duration

  454 lyric_element: full_markup
  455              | STRING
  456              | LYRIC_ELEMENT

  457 lyric_element_music: lyric_element 
                             optional_notemode_duration 
                             post_events 

  458 new_chord: steno_tonic_pitch maybe_notemode_duration
  459          | steno_tonic_pitch 
                   optional_notemode_duration 
                   chord_separator 
                   chord_items 

  460 chord_items: /* empty */
  461            | chord_items chord_item

  462 chord_separator: ":"
  463                | "^"
  464                | "/" steno_tonic_pitch
  465                | "/+" steno_tonic_pitch

  466 chord_item: chord_separator
  467           | step_numbers
  468           | CHORD_MODIFIER

  469 step_numbers: step_number
  470             | step_numbers '.' step_number

  471 step_number: UNSIGNED
  472            | UNSIGNED '+'
  473            | UNSIGNED "-"

  474 tempo_range: unsigned_number
  475            | unsigned_number '-' unsigned_number

  476 number_expression: number_expression '+' number_term
  477                  | number_expression '-' number_term
  478                  | number_term

  479 number_term: number_factor
  480            | number_factor '*' number_factor
  481            | number_factor '/' number_factor

  482 number_factor: '-' number_factor
  483              | bare_number

  484 bare_number_common: bare_number_common_closed
  485                   | REAL NUMBER_IDENTIFIER

  486 bare_number_common_closed: REAL
  487                          | NUMBER_IDENTIFIER

  488 bare_number: bare_number_common
  489            | UNSIGNED
  490            | UNSIGNED NUMBER_IDENTIFIER

  491 bare_number_closed: UNSIGNED
  492                   | bare_number_common_closed

  493 unsigned_number: UNSIGNED
  494                | NUMBER_IDENTIFIER
  495                | embedded_scm

  496 exclamations: /* empty */
  497             | exclamations '!'

  498 questions: /* empty */
  499          | questions '?'

  501 full_markup_list: "\markuplist" 2 markup_list

  503 full_markup: "\markup" 3 markup_top

  504 markup_top: markup_list
  505           | markup_head_1_list simple_markup
  506           | simple_markup

  508 markup_scm: embedded_scm_bare 4 "(backed-up?)"

  509 markup_list: markup_composed_list
  510            | markup_uncomposed_list

  511 markup_uncomposed_list: markup_braced_list
  512                       | markup_command_list
  513                       | markup_scm MARKUPLIST_IDENTIFIER

  514 markup_composed_list: markup_head_1_list markup_uncomposed_list

  515 markup_braced_list: '{' markup_braced_list_body '}'

  516 markup_braced_list_body: /* empty */
  517                        | markup_braced_list_body markup
  518                        | markup_braced_list_body markup_list

  519 markup_command_list: MARKUP_LIST_FUNCTION markup_command_list_arguments

  520 markup_command_basic_arguments: "markup-list?" 
                                        markup_command_list_arguments 
                                        markup_list 
  521                               | "scheme?" 
                                        markup_command_list_arguments 
                                        embedded_scm_closed 
  522                               | EXPECT_NO_MORE_ARGS

  523 markup_command_list_arguments: markup_command_basic_arguments
  524                              | "markup?" 
                                       markup_command_list_arguments 
                                       markup 

  525 markup_head_1_item: MARKUP_FUNCTION 
                            "markup?" 
                            markup_command_list_arguments 

  526 markup_head_1_list: markup_head_1_item
  527                   | markup_head_1_list markup_head_1_item

  528 simple_markup: STRING

  530 simple_markup: "\score" 5 '{' score_body '}'
  531              | MARKUP_FUNCTION markup_command_basic_arguments
  532              | markup_scm MARKUP_IDENTIFIER

  533 markup: markup_head_1_list simple_markup
  534       | simple_markup


Terminals, with rules where they appear



    205 206 207 209 210 211 212 213 214 215 216 217 218 219 220 221
    205 206 207 209 210 211 212 213 214 215 216 217 218 219 220 221
    222 223 224 225 232 234 236 237 238 239 245 246 247 248 249 250
    222 223 224 225 232 234 253 263 266
    242 243 244 259 260 261
    251 253 255 256 257 258 263 266 521
    473 489 490 491 493
    475 477 482
    528
"#{" (339) 3
"(backed-up?)" (334) 136 264 307 310 311 508
"(reparsed?)" (335) 198 199 200 201 202 226 227 228 229 230 240 241
"-" (319) 473
"--" (266) 370
"/" (320) 464
"/+" (316) 465
":" (318) 462
"<" (321) 353
"<<" (323) 149
">" (322) 353 407
">>" (324) 149
"\!" (326) 439
"\" (325) 441
"\+" (327) 438
"\accepts" (274) 314
"\addlyrics" (263) 294 296
"\alias" (275) 317
"\alternative" (261) 144 145
"\book" (276) 76
"\bookpart" (277) 90
"\change" (278) 300
"\chordmode" (279) 287
"\chords" (280) 291
"\consists" (281) 312
"\context" (282) 66 280
"\default" (283) 232 253 263
"\defaultchild" (284) 315
"\denies" (285) 316
"\description" (286) 319
"\drummode" (287) 285
"\drums" (288) 289
"\figuremode" (289) 286
"\figures" (290) 290
"\header" (291) 48
"\layout" (293) 114
"\lyricmode" (294) 288
"\lyrics" (295) 292
"\lyricsto" (296) 299
"\markup" (297) 503
"\markuplist" (298) 501
"\midi" (299) 113
"\name" (300) 320
"\new" (315) 281
"\notemode" (301) 284
"\override" (302) 305 328
"\paper" (303) 112
"\remove" (304) 313
"\repeat" (260) 142 144 210
"\rest" (305) 448
"\revert" (306) 306 329
"\score" (307) 103 530
"\sequential" (308) 146
"\set" (309) 330
"\simultaneous" (310) 148
"\tempo" (311) 125 126 127
"\type" (312) 318
"\unset" (313) 304 331
"\version-error" (292) 8 44
"\with" (314) 154 155 157
"^" (317) 463
"_" (330) 433
"__" (265) 371
"end of input" (0) 0
"markup-list?" (336) 520
"markup?" (332) 524 525
"optional?" (337) 176 177 178 179 182 183 184 185 186 196 197 203 204
"scheme?" (333) 176 177 178 179 182 183 184 185 186 196 197 203 204
'!' (33) 406 432 497
''' (39) 390 391
'*' (42) 420 421 480
'+' (43) 404 431 472 476
',' (44) 392 393
'-' (45) 177 178 179 217 218 219 239 250 251 257 343 377 405 412 430
'.' (46) 52 188 190 310 408 423 470
'/' (47) 440 481
':' (58) 424 425
'=' (61) 50 51 52 125 126 275 300 303 305 328 330 386
'?' (63) 499
'[' (91) 443
']' (93) 435
'^' (94) 374 403 411
'_' (95) 375 409 410
'{' (123) 48 66 76 90 103 118 119 131 154 515 530
'}' (125) 48 66 76 90 103 111 131 154 515 530
BOOK_IDENTIFIER (340) 78 92
CHORD_BODY_IDENTIFIER (341) 354
CHORD_MODIFIER (342) 468
CHORD_REPETITION (343) 348
COMPOSITE (262)
CONTEXT_DEF_IDENTIFIER (344) 72
CONTEXT_MOD_IDENTIFIER (345) 155 156 164
DRUM_PITCH (346) 358 450
DURATION_IDENTIFIER (264) 207 223 249 418
E_UNSIGNED (269) 378
error (256) 7 43 89 102 109 124 130
EVENT_FUNCTION (267) 363
EVENT_IDENTIFIER (268) 380
EXPECT_NO_MORE_ARGS (338) 235 254 522
FIGURE_CLOSE (328) 446
FIGURE_OPEN (329) 446
FRACTION (349) 26 61 421
LYRIC_ELEMENT (350) 456
MARKUP_FUNCTION (351) 525 531
MARKUP_IDENTIFIER (353) 532
MARKUP_LIST_FUNCTION (352) 519
MARKUPLIST_IDENTIFIER (354) 513
MULTI_MEASURE_REST (331) 349
MUSIC_FUNCTION (355) 273 362
MUSIC_IDENTIFIER (356) 159 172 361
NOTENAME_PITCH (357) 221 394
NUMBER_IDENTIFIER (272) 179 216 219 239 257 485 487 490 494
OUTPUT_DEF_IDENTIFIER (358) 119
PITCH_ARG (348) 398
PITCH_IDENTIFIER (347) 220 397
PREC_BOT (258)
PREC_TOP (273)
REAL (270) 178 215 218 251 485 486
REPEAT_IDENTIFIER (259) 143 145
RESTNAME (359) 451
SCM_ARG (360) 24 200 240 259 310 311
SCM_FUNCTION (361) 39 272
SCM_IDENTIFIER (362) 21 22 184 203 224 245 341
SCM_TOKEN (363) 17 20 25 85 98
STRING (364) 49 185 192 204 225 246 322 334 336 338 344 400 427 455
SYMBOL_LIST (365) 187 188
TONICNAME_PITCH (366) 222 395
UNARY_MINUS (367)
UNSIGNED (271) 177 206 214 217 248 250 402 417 420 425 426 471 472

Nonterminals, with rules where they appear


assignment (146)
    on left: 50 51 52, on right: 6 46 120
assignment_id (145)
    on left: 49, on right: 50 51 52
bare_number (299)
    on left: 488 489 490, on right: 342 343 483
bare_number_closed (300)
    on left: 491 492, on right: 183
bass_number (275)
    on left: 426 427 428 429, on right: 434
book_block (153)
    on left: 76, on right: 11 31 54
bookpart_block (156)
    on left: 90, on right: 12 32 55 80
br_bass_figure (279)
    on left: 442 443, on right: 445
braced_music_list (171)
    on left: 131, on right: 144 145 146 147 148
chord_body (242)
    on left: 353 354, on right: 211 352
chord_body_element (244)
    on left: 357 358 359, on right: 356
chord_body_elements (243)
    on left: 355 356, on right: 353 356
chord_item (290)
    on left: 466 467 468, on right: 461
chord_items (288)
    on left: 460 461, on right: 459 461
chord_separator (289)
    on left: 462 463 464 465, on right: 459 466
closed_music (187)
    on left: 168 169 170, on right: 169 271
command_element (248)
    on left: 364, on right: 350
command_event (249)
    on left: 365, on right: 364
complex_music (212)
    on left: 276 277 278 279, on right: 166
complex_music_prefix (213)
    on left: 280 281, on right: 169 279
context_change (222)
    on left: 300, on right: 152
context_def_spec_block (148)
    on left: 66, on right: 30 57 117
context_mod (229)
    on left: 321 322 323, on right: 73 163
context_mod_arg (149)
    on left: 67 69, on right: 70
context_mod_embedded (151)
    on left: 70, on right: 75 165
context_modification_arg (183)
    on left: 158 159, on right: 157
context_prop_spec (232)
    on left: 327, on right: 330 331
direction_less_event (254)
    on left: 379 380 381 382, on right: 368 373
direction_reqd_event (255)
    on left: 383 384, on right: 372
dots (273)
    on left: 422 423, on right: 417 418 423
duration_length (268)
    on left: 413, on right: 198 229 243
embedded_lilypond (142)
    on left: 40 41 42 43 44, on right: 3 44
embedded_scm (139)
    on left: 34 35, on right: 47 63 67 121 137 323 495
embedded_scm_active (137)
    on left: 22 23, on right: 18 86 99 105
embedded_scm_arg (140)
    on left: 36 37 38, on right: 196 236 340
embedded_scm_arg_closed (208)
    on left: 269 270 271, on right: 182 209 255
embedded_scm_closed (207)
    on left: 267 268, on right: 158 401 521
event_chord (240)
    on left: 346 347 348 349 350 351, on right: 150
event_function_event (247)
    on left: 363, on right: 382
exclamations (302)
    on left: 496 497, on right: 357 449 497
figure_list (280)
    on left: 444 445, on right: 445 446
figure_spec (281)
    on left: 446, on right: 453
figured_bass_alteration (276)
    on left: 430 431 432, on right: 436
figured_bass_modification (278)
    on left: 438 439 440 441, on right: 437
fingering (265)
    on left: 402, on right: 374 375 377
full_markup_list (304)
    on left: 501, on right: 16 27 64 84 97
function_arglist (199)
    on left: 231 232, on right: 39 273
function_arglist_closed (203)
    on left: 252 253, on right: 272 362 363
gen_text_def (264)
    on left: 399 400 401, on right: 383
grob_prop_path (231)
    on left: 325 326, on right: 328
grob_prop_spec (230)
    on left: 324, on right: 325 326
grouped_music_list (189)
    on left: 174 175, on right: 173 282 283
lilypond (133)
    on left: 4 5 6 7 8, on right: 1 5 6 7 8
lilypond_header (144)
    on left: 48, on right: 10 88 101 107
lilypond_header_body (143)
    on left: 45 46 47, on right: 46 47 48
lyric_element (285)
    on left: 454 455 456, on right: 457
lyric_element_music (286)
    on left: 457, on right: 133 136 201 241
markup (323)
    on left: 533 534, on right: 517 524
markup_braced_list (314)
    on left: 515, on right: 511
markup_braced_list_body (315)
    on left: 516 517 518, on right: 515 517 518
markup_command_list (316)
    on left: 519, on right: 512
markup_composed_list (313)
    on left: 514, on right: 509
markup_head_1_item (319)
    on left: 525, on right: 526 527
markup_head_1_list (320)
    on left: 526 527, on right: 505 514 527 533
markup_list (311)
    on left: 509 510, on right: 501 504 518 520
markup_scm (309)
    on left: 508, on right: 513 532
markup_top (308)
    on left: 504 505 506, on right: 503
markup_uncomposed_list (312)
    on left: 511 512 513, on right: 510 514
maybe_notemode_duration (269)
    on left: 414 415, on right: 416 449 458
mode_changed_music (214)
    on left: 282 283, on right: 171
mode_changing_head (215)
    on left: 284 285 286 287 288, on right: 282
multiplied_duration (272)
    on left: 419 420 421, on right: 413 415 420 421
music (172)
    on left: 132 133, on right: 104 134 142 143 144 145 279 299
music_arg (175)
    on left: 138 139, on right: 116 132
music_assign (176)
    on left: 140 141, on right: 38 58 226
music_bare (188)
    on left: 171 172 173, on right: 167 168
music_embedded (173)
    on left: 134 135 136, on right: 42 129
music_embedded_backup (174)
    on left: 137, on right: 135 136
music_function_call (210)
    on left: 273, on right: 276 360
music_function_call_closed (246)
    on left: 362, on right: 170 369
music_function_chord_body (245)
    on left: 360 361, on right: 359
music_list (170)
    on left: 128 129 130, on right: 42 129 130 131 149
music_or_context_def (166)
    on left: 116 117, on right: 123
music_property_def (235)
    on left: 333, on right: 151
new_chord (287)
    on left: 458 459, on right: 452
new_lyrics (217)
    on left: 294 296, on right: 296 297
note_chord_element (241)
    on left: 352, on right: 351
number_expression (294)
    on left: 476 477 478, on right: 60 476 477
number_factor (296)
    on left: 482 483, on right: 479 480 481 482
number_term (295)
    on left: 479 480 481, on right: 476 477 478
octave_check (256)
    on left: 385 386, on right: 357 449
optional_context_mod (184)
    on left: 160 161, on right: 280 281 283
optional_id (211)
    on left: 274 275, on right: 280 281
optional_rest (282)
    on left: 447 448, on right: 449
output_def (163)
    on left: 111, on right: 19 33 56 108 110
output_def_head (164)
    on left: 112 113 114, on right: 115
output_def_head_with_mode_switch (165)
    on left: 115, on right: 118 119
paper_block (162)
    on left: 110, on right: 79 93
pitch (262)
    on left: 396 397, on right: 357 449
pitch_arg (263)
    on left: 398, on right: 227
post_event (252)
    on left: 376 377, on right: 367
property_operation (224)
    on left: 303 304 305 306, on right: 321
property_path (223)
    on left: 301 302, on right: 51 52 302 305 326
questions (303)
    on left: 498 499, on right: 357 449 499
quotes (257)
    on left: 387 388 389, on right: 386 394 395 397 398
re_rhythmed_music (220)
    on left: 297 299, on right: 278
repeated_music (177)
    on left: 142 143 144 145, on right: 277
revert_arg (225)
    on left: 307, on right: 306 329
revert_arg_backup (226)
    on left: 308, on right: 307 310 311
revert_arg_part (227)
    on left: 309 310 311, on right: 308
scm_function_call (141)
    on left: 39, on right: 23 35 37
scm_function_call_closed (209)
    on left: 272, on right: 268 270
score_block (159)
    on left: 103, on right: 13 29 53 81 94
script_dir (267)
    on left: 410 411 412, on right: 369 372 373
sequential_music (178)
    on left: 146 147, on right: 175
simple_chord_elements (284)
    on left: 452 453, on right: 347
simple_element (283)
    on left: 449 450 451, on right: 346
simple_markup (321)
    on left: 528 530 531 532, on right: 505 506 533 534
simple_music (180)
    on left: 150 151 152, on right: 138 140
simple_music_property_def (233)
    on left: 328 329 330 331, on right: 333
simple_revert_context (234)
    on left: 332, on right: 329
simple_string (237)
    on left: 336 337, on right: 142 144 210 275 299 300
simultaneous_music (179)
    on left: 148 149, on right: 174
start_symbol (131)
    on left: 1 3, on right: 0
steno_duration (271)
    on left: 417 418, on right: 125 126 419
steno_pitch (260)
    on left: 394, on right: 396
steno_tonic_pitch (261)
    on left: 395, on right: 458 459 464 465
step_number (292)
    on left: 471 472 473, on right: 469 470
step_numbers (291)
    on left: 469 470, on right: 467 470
string (236)
    on left: 334 335, on right: 62
string_number_event (253)
    on left: 378, on right: 379
sub_quotes (259)
    on left: 392 393, on right: 388 393
sup_quotes (258)
    on left: 390 391, on right: 389 391
symbol (238)
    on left: 338 339, on right: 280 281 300 303 304
symbol_list_arg (192)
    on left: 187 188, on right: 202 230 244 261 307
symbol_list_element (195)
    on left: 192 193, on right: 191
symbol_list_part (194)
    on left: 191, on right: 189 190 309 310 311 332
symbol_list_rev (193)
    on left: 189 190, on right: 188 190 301 302 324 327
tempo_event (169)
    on left: 125 126 127, on right: 365
tempo_range (293)
    on left: 474 475, on right: 125 126
tremolo_type (274)
    on left: 424 425, on right: 381
unsigned_number (301)
    on left: 493 494 495, on right: 142 144 210 474 475
