26

Is there a place I can find Backus–Naur Form or BNF grammars for popular languages? Whenever I do a search I don't turn up much, but I figure they must be published somewhere. I'm most interested in seeing one for Objective-C and maybe MySQL.

Mansfield
  • 14,445
  • 18
  • 76
  • 112
Greg
  • 45,306
  • 89
  • 231
  • 297

5 Answers5

6

There are some links from w:BNF#Language Grammars.

I also found a page that lists grammars for Objective C.

Kirill Kobelev
  • 10,252
  • 6
  • 30
  • 51
Eugene Yokota
  • 94,654
  • 45
  • 215
  • 319
6

FWIW, the MySQL grammar file (mysql-server/sql/sql_yacc.y) is open source and browseable at launchpad.net (though it's a bit slow and I got an error when I tried to pull up the specific file).

Also, a snapshot of the whole MySQL Server source is downloadable from dev.mysql.com.

Bill Karwin
  • 538,548
  • 86
  • 673
  • 828
  • 2
    The issue with reusing the grammar that is used by the MySQL server is that is depends on the tokens generated by the lexer. The lexer, having ~115 members, is neither easy to use nor easy to replace. – dvogel Mar 11 '10 at 00:23
3

IIRC, BNF grammars are just different enough from what yacc/bison want as input to be really annoying :) If you intend to feed these files into a parser generator, you may want to look for files in the appropriate format. I recall seeing such files for Java, JavaScript and C++ at one point. Probably as part of Eclipse, Firefox and GCC, respectively, but I can't remember for sure. I would assume you can find pretty much any parser input file by finding an open source project that uses that language.

rmeador
  • 25,504
  • 18
  • 62
  • 103
2

I also searched this and i collected this repository

http://slps.github.io/zoo/

Cristiano
  • 31
  • 5