C#/.NET的解析器构建器

3

我想在C#中编写一个简单的DSL。不要太复杂。我正在寻找与Lex和Yacc等效的.NET版本。到目前为止,我找到的最简单的选择是GOLD Parser builder。另一个选择是使用F#中可用的lex和yacc,但我现在不想用F#编程。

如果你有任何关于.NET版本的Lex或Yacc的建议,我很乐意听取!

谢谢!

5个回答

8
如果您真的想继续使用C#,我建议使用Irony toolkit - 它允许您在C#代码中指定语法。

3

1
你需要完成多少F#编程才能利用Lex&Yacc? 你能把你需要的东西放进一个F# dll中,然后从C#项目中引用它吗?

0

我在维也纳大学的网站上找到了C# Lex和C# CUP

C# Lex手册


有人用过这个吗?我正在使用它,似乎在解析过程中遇到了一些问题。有人发现它很稳定吗?有任何积极的反馈可以报告吗?需要注意什么缺点吗? - Alex H
词法分析器存在一些小问题(易于修复),而语法分析器存在更大的问题。这个项目(C# JLex+CUP)已经不再维护了。我尝试重新创建整个语法分析器部分(通过将原始代码从Java翻译成C#),但发现它过于复杂,不值得花费时间。 - greenoldman

0

我不确定这是否符合您的需求,但奥斯陆具备创建文本DSL的能力。

它还有更多功能,但您可以忽略所有存储库和大愿景等内容,只需生成一个语法,即可将您的DSL解析为AST。或者,您可以利用内置的支持,将其解析为数据库中的一组行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接