我需要读取和写入八位字节流以通过各种网络发送以与智能电表进行通信。有一个 ANSI 标准 ANSI C12.19,它描述了二进制数据格式。虽然数据格式并不过分复杂,但标准非常大(500 多页),因为它描述了许多不同的类型。该标准完全由 EBNF 语法描述。我正在考虑使用 ANTLR 来读取 EBNF 语法或其修改版本,并创建可以读写八位字节流的 C# 类。
这是对 ANTLR 的一个很好的使用吗?
如果是这样,我需要做什么才能使用 ANTLR 3.1?通过搜索新闻组文件,似乎我需要实现一个可以读取字节而不是字符的新流。这就是全部还是我还必须实现 Lexer 派生词?
如果 ANTLR 可以帮助我读取/解析流,它也可以帮助我编写流吗?
谢谢。
丹菲纽肯
最佳答案
这个主题不时出现在 ANTLR 邮件列表中。答案通常是否定的,因为二进制文件格式是非常规则的,因此不值得付出这样的代价。
关于parsing - ANTLR 是序列化/反序列化二进制数据格式的合适工具吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/517004/