使用C#编写ANTLR

网上的教程都是基于JAVA的,其实C#也是能编写ANTLR的,两者使用的.g4文件都是一样的

使用C#方法如下:

1.新建两个.net framework 控制台应该程序

  (1). Antlr0601

  (2).Antlr0601Test

2.启动程序包管理器控制台,执行以下命令,目的是添加antlr4.dll等的引用

  (1).install-Package Antlr4 -Version 4.6.6 -Project Antlr0601

  (2).install-Package Antlr4 -Version 4.6.6 -Project Antlr0601Test

3.参照<Antlr4权威指南>这本书6.1中的例子,在Antlr0601工程中创建CSV.g4,并完成CSV.g4文件

4.关闭工程,重新打开工程

5.选中CSV.g4文件,在属性面板中

  "生成操作"选择Antlr4 (如果没有4中重启工程这里无法选择Antlr4)

  "自定义工具"写上:MSBuild:Compile,

  "自定义工具命名空间"写上:Antlr0601Test (方便Antlr0601Test工程调用,写其它命名空间也可以)

6.编译Antlr0601工程,会在"<工程目录>\obj\Debug\"生成6个 .cs文件

7.把6中生成的6个.cs文件 通过添加linkfile的方式添加到Antlr0601Test

8.在Antlr0601Test工程中添加data.csv文件(参照<Antlr4权威指南>这本书6.1中的例子) , 复制到输出目录选择:始终复制

9.在Antlr0601Test的Program.cs文件 的Main方法中添加以下代码

复制代码
StreamReader input = new StreamReader("data.csv", Encoding.Default);
var stream = new AntlrInputStream(input);
var lexer = new CSVLexer(stream);
var tokens = new CommonTokenStream(lexer);
var parser = new CSVParser(tokens);
var tree = parser.file();

var visitor = new CSVBaseVisitor<object>();
var result = visitor.Visit(tree);

Console.WriteLine(tree.ToStringTree(parser));
Console.WriteLine(result);
Console.ReadKey();
复制代码

10.运行Antlr0601Tes工程

 

作者:lost0

出处:https://www.cnblogs.com/lost0/p/16127833.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   码农加一  阅读(779)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示