Penguin
Blame: BackusNaurForm
EditPageHistoryDiffInfoLikePages
Annotated edit history of BackusNaurForm version 1, including all changes. View license author blame.
Rev Author # Line
1 AristotlePagaltzis 1 This is a language to define the formal grammar of a language, whether that be a ProgrammingLanguage, a MarkupLanguage or simply the syntax of a configuration file.
2
3 An example grammar would be
4
5 <sentance> ::= <verb-part> <noun-part>
6
7 <verb-part> ::= <noun-part> <verb>
8
9 <noun-part> ::= <proper-noun>
10 | THE <noun>
11
12 <verb> ::= throws
13 | kicks
14 | hides
15 | fetches
16
17 <proper-noun> ::= John
18 | Jane
19
20 <noun> ::= ball
21 ::= dog
22
23 This grammar accepts sentances such as
24 * Jane throws the ball
25 * The dog fetches the ball
26 * John kicks the dog
27 * John hides Jane
28 * The ball fetches Jane
29
30 but would not accept sentences such as
31 * John deflates the ball
32 * Jane hides in the basement
33
34 because __deflates__ is not a verb known in this grammer and __in the basement__ is not a noun. The grammar would have to be extended to cover such cases.
35
36 Because some common cases are inconvenient to define using pure [BNF], some extensions have been added in [EBNF]:
37 * __...__ means ''1 or more''
38 * __[[ ]__ means ''optional''