C# 5.0 EBNF grammar
Asked Answered
G

1

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?

Genealogy answered 4/5, 2014 at 13:33 Comment(5)
Which variant of EBNF are you using? The one given in MSDN (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.Herzegovina
Ideally ISO/IEC 14977:1996(E). Basically the variant used in this link cs.fit.edu/~ryan/cse4251/mini_java_grammar.html which specifies a EBNF grammar for MiniJavaGenealogy
Doubt you will find one in that variant. There is a complete grammar specification in one of the back appendices of 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.Herzegovina
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...Genealogy
I'm curious what you intend to accomplish once you find the grammar.Seller
S
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.

Stopping answered 9/9, 2018 at 10:59 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.