在哪里可以找到C#3.0语法?

在哪里可以找到C#3.0语法?,c#,compiler-construction,c#-3.0,antlr,grammar,C#,Compiler Construction,C# 3.0,Antlr,Grammar,我计划用C语言编写一个C#3.0编译器。在哪里可以获得语法分析器生成 最好是不经修改就能与ANTLR v3一起使用的版本。您是在寻找类似或的产品吗 另请参考问题。看一看,他们似乎有语言规范。看一看。在B.语法一章中你会找到语法。我遇到了。这是一个相对较新的项目,使用ANTLR 3.2。它说它支持C#4.0,并根据Eclipse公共许可证(EPL)获得许可 我玩了一会儿。它有一组包含表达式的测试文件。它支持lambdas、不安全上下文。。。正如你自然期望的那样。它解析一个C#文件,并将抽象语法树交

我计划用C语言编写一个C#3.0编译器。在哪里可以获得语法分析器生成


最好是不经修改就能与ANTLR v3一起使用的版本。

您是在寻找类似或的产品吗

另请参考问题。

看一看,他们似乎有语言规范。

看一看。在B.语法一章中你会找到语法。

我遇到了。这是一个相对较新的项目,使用ANTLR 3.2。它说它支持C#4.0,并根据Eclipse公共许可证(EPL)获得许可


我玩了一会儿。它有一组包含表达式的测试文件。它支持lambdas、不安全上下文。。。正如你自然期望的那样。它解析一个C#文件,并将抽象语法树交给您。你可以用它做任何你想做的事。

你知道我们已经免费提供了一个编译C#3的编译器,对吧?:-)但说真的,你为什么要建立自己的?只是为了好玩,还是有什么商业目的?(我问这个问题的原因是因为我们非常有兴趣了解人们希望从我们的编译器中得到什么“服务”,而不是简单地“为这个源代码吐出一些IL”。)Eric:主要是为了好玩。然而,我时不时地提出一些语言想法,我希望我能测试它们。@Mehrdad,如果你真的有一些代码,我能玩一下吗:)@Mehrdad:“…语言想法”很模糊。如果你想用C#(或任何其他语言)做任何有趣的事情,你不仅需要一个解析器(因此是语法),还需要构建树、构建符号表、分析符号使用情况。。。这不仅仅是语法上的问题。Mono框架可能比你想象的要有用得多。Ira:我当然看到过这个问题。我明确提到了C#3.0,因为我已经为1.0找到了很多东西顺便说一句,我说“主要是为了好玩”。对我来说,编写自己的代码并用它来测试我的东西比试图理解Mono人编写的代码结构更有趣。链接语法不是C#3.0。它不支持lambdas。这对我来说特别重要,因为只需要定义参数列表,就语法中现有的结构而言,添加对lambdas的支持似乎是相当简单的。但是,这可能需要LL(),因为您可以解析类似于
(a**
)的内容,但不知道这是否会成为类似于
(a**b)
(即,将
a
乘以
b
)的表达式,或者lambda表达式
(a**b)=>
,直到您点击
=>
。由于对间接寻址的数量没有限制(指针指向…),所以在我看来它是LL()。但是由于ANTLR3支持opt-in LL(*),这不是问题。@Pavel:不仅如此。它不支持泛型。如果我找不到一个相当好的C#3.0语法,我可能会从头开始编写自己的语法分析器或语法。是的,规范当然包含语法。但是,Word文档中的语法分散在整个文档中,不适合生成语法分析器。它是它不仅分散在各处;我们在最后有一个附录,把整个东西放在一个地方。你可能是对的,它需要一些修改才能使解析器生成器工作。埃里克:哦,我没有注意到那一部分。谢谢你指出。迈克尔:它不到40页长。当我想到它时,它是可以处理的然后从零开始