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" ;