parser
A parser analyzes the sequence of tokens produced by a
lexer to determine its grammatical structure, grouping the tokens
progressively into larger groupings according to the rules of the
grammar. If the sequence of tokens is valid the end product is a
tree of tokens whose root is the grammar’s start symbol. If this
cannot be achieved the file is invalid and an appropriate error
message is produced. The syntactic groupings and the rules for
constructing the groupings from their parts for the LilyPond syntax
are defined in ‘lily/parser.yy’ and shown in Backus Normal Form
(BNF) in
LilyPond grammar. This file is used to build the
parser during the program build by the parser generator, Bison. It is
part of the source code and is not included in the LilyPond binary
installation.