From: Trevor Daniels <t.daniels@treda.co.uk> Date: Mon, 17 Aug 2009 08:47:02 +0000 (+0100) Subject: Docs: NR Notation appendices: extend parser X-Git-Tag: release/2.13.4-1~179^2~24 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=a47ad4cf26ede140e0b5d7997200c8e2dbccf27c;p=lilypond.git Docs: NR Notation appendices: extend parser --- diff --git a/Documentation/notation/notation-appendices.itely b/Documentation/notation/notation-appendices.itely index aa24bdfeaa..631129396d 100644 --- a/Documentation/notation/notation-appendices.itely +++ b/Documentation/notation/notation-appendices.itely @@ -1011,6 +1011,7 @@ Internals Reference: @unnumberedsubsec lexer @cindex lexer +@cindex Flex A @strong{lexer} is a program which converts a sequence of characters into a sequence of tokens, a process called lexical @@ -1038,10 +1039,26 @@ created for midi, layout and paper blocks. @unnumberedsubsec parser @cindex parser +@cindex Bison +@cindex grammar for LilyPond +@cindex BNF + +A @strong{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 LilyPond parser is built with Bison to +apply the grammar defined in @file{lily/parser.yy} and shown in +Backus Normal Form (BNF) in @ref{LilyPond grammar}. This grammar +specifies the syntactic groupings and the rules for constructing +them from their parts. -A @strong{parser} analyzes the sequence of tokens produced by -a lexer to determine its grammatical structure as defined by the -rules governing the format of an input file. +@seealso + +Installed Files: +@file{lily/parser.yy} @node parser variable @unnumberedsubsec parser variable