10

I am looking for an EBNF grammar of the programming language C# in the Version 5.0. This grammar should be machine readable, so I am able to do some processing with this EBNF grammar

Until now I found out that the language specification document of C# is included in the installation of Visual Studio (%PROGRAMFILES(x86)%\Microsoft Visual Studio 12.0\VC#\Specifications\1033) this document already includes the BNF grammar embedded in the document. However, this is only in BNF syntax and not EBNF and it is embedded in the *.docx document an no separate file, which means it is not sufficient for me.

Additionally I found these resources:

  • MSDN Blog: This is a EBNF grammar for C# version 4.0
  • slps.github.io: This contains the extracted BNF Grammar for C# Version 4.0

So these resources are not sufficient for my project. Do you know a complete EBNF grammar for C# 5.0?

nicael
  • 18,550
  • 13
  • 57
  • 90
boindiil
  • 5,805
  • 1
  • 28
  • 31
  • Which variant of EBNF are you using? The one given in MSDN (http://msdn.microsoft.com/en-us/library/aa664812(v=vs.71).aspx) is a mix of W-grammar and BNF which some might call EBNF but this is the C#2.0 specification. – cup May 04 '14 at 13:58
  • Ideally ISO/IEC 14977:1996(E). Basically the variant used in this link http://cs.fit.edu/~ryan/cse4251/mini_java_grammar.html which specifies a EBNF grammar for MiniJava – boindiil May 04 '14 at 14:04
  • 2
    Doubt you will find one in that variant. There is a complete grammar specification in one of the back appendices of http://www.microsoft.com/en-us/download/details.aspx?id=7029 . It is probably the one in ProgramFiles. Easiest way is probably to copy the appendix and use global search and replace or a powershell/awk script to convert it to a form that is usable to you. – cup May 04 '14 at 15:14
  • Thanks for the link, you are right, its exactly the same document which is shipped with Visual Studio. I hoped that I could skip this manual step, but if there is no EBNF grammar I have to do it... – boindiil May 04 '14 at 16:08
  • I'm curious what you intend to accomplish once you find the grammar. – Qwertie Jul 20 '18 at 23:11

1 Answers1

3

I know you're looking for a C# 5.0 Grammar, but there is an ANTLR grammar for c# 6.0 at github. ANTLR uses a kind of EBNF notation and can be parsed by a computer. If you want ANTLR allows you to generate a parser for C# from that grammar. Since C# 6.0 is a superset of C# 5.0, the Version difference shouldn't matter.

Pretasoc
  • 1,116
  • 12
  • 22