SmaCC starts with a EBNF grammar. There's a booklet in Smacc that you can download from the Pharo website.
is a language for defining languages. site , github