Extended BNF

  • BNFはoptionalな項目や繰り返しを記述するのがダルい
  • EBNFでは:
    • optional: signed number = [ sign ], number ;
      • BNFだと <signed-number> ::= <sign> <number> | <number> となる
    • repeat: number = { digit } ;
      • BNFだと <number> ::= <digit> | <number> <digit> となる
UsageNotationAlternativeMeaning
definition=
concatenation,
termination;.
alternation|/ or !
optional[ … ](/ … /)none or once
repetition{ … }(: … :)none or more
grouping( … )
terminal string” … ”’ … ‘
comment(* … *)
special sequence? … ?
exception-
Wikipediaより