在C#中使用Irony实现SQL语句的解析
在上一篇博文中,我介绍了LOGO语言的C#实现,在该项目中,我使用了.NET下的语法解析框架:Irony。Irony框架最开始的时候是由Roman Ivantsov发布在codeplex上的一个开源项目,它使用MIT协议开源。由于2017年的时候,微软关闭了codeplex服务,为了让这个优秀的项目能够继续为人所用,我将其复制到了我的Github账号下,并将其移植到NET Standard 2.0,地址是: https://github.com/daxnet/irony 。于是,Irony目前可以在.NET Core下使用了。事实上,Github中有很多Irony的版本,但大多数都不支持.NET Core。 不仅如此,我还在Azure DevOps上配置了持续集成,因此,你可以通过NuGet很方便地使用Irony。Irony相关的NuGet包有两个,你需要在你的项目中同时安装以下两个NuGet包: Install-Package Irony.NetCore -Version 1.1.11 Install-Package Irony.Interpreter.NetCore -Version 1.1.11 接下来,我介绍一下如何用Irony实现一个语法解析器,我们以SQL语句为例进行介绍。 定义语法 所有使用Irony框架的语法定义,都必须继承于Grammar类