LBNF
LBNF (Labelled BNF) är en form av Backus-Naur-form som används av verktyget BNFC för att generera abstrakt syntax, lexers och parsers. Den största skillnaden gentemot "vanlig" BNF är att man i LBNF, som namnet antyder, sätter "labels" (ung. "beteckningar") på regler som sedan används i genereringen av syntaxträdet.
Exempel
-- Ett program består av en mängd funktioner. Prog. Program ::= [Function] ; -- De enda funktionerna som tillåts är följande: HelloFunc. Function ::= "hello" Name ; GoodbyeFunc. Function ::= "good bye" Name ; -- Diverse olika namn. Perra. Name ::= "Perra" ; Jenny. Name ::= "Jenny" ;