我需要读写八位字节流,通过各种网络发送,与智能电表进行通信.ANSI标准ANSI C12.19描述了二进制数据格式.虽然数据格式不是太复杂,但标准非常大(500多页),因为它描述了许多不同的类型.该标准由EBNF语法完整描述.我正在考虑利用ANTLR来读取EBNF语法或它的修改版本,并创建可以读写八位字节流的C#类.
这是一个很好的使用ANTLR?
如果是这样,我需要做些什么才能使用ANTLR 3.1?从搜索新闻组档案看来,我似乎需要实现一个可以读取字节而不是字符的新流.是全部还是我必须实现Lexer衍生物?
如果ANTLR可以帮助我读取/解析流,它还可以帮助我编写流吗?
谢谢.
丹芬卡
对我来说,Java生态系统的开发支付了多年的账单.但是,几年来,我一直主要在.Net领域工作.最初,我转换到.Net世界包括编写和维护VB.Net代码.在提供了多年的Eclipse/Java组合工作之后,VS提供了我所期望的几乎所有优秀的intellisense支持.最终我的雇主决定用C#做新的开发.我对c#的intellisense支持的最初印象不是很好.有时似乎VS没有C#的后台编译器,但偶尔它会做一些聪明的事情,表明那里有一些后台处理,但还不足以真正以有意义的方式提高生产力.关于两种语言之间智能感知支持的差异,是否有任何明智的技术原因?
我非常尊重Mono和CSLA。我想在非Microsoft操作系统上使用CSLA。我接受一个事实,即Mono始终落后于Microsoft两步,但是Mono支持足够的.Net框架来促进各种有趣的应用程序。我还意识到,Mono不支持WPF等3.0.Net的许多新增功能(尽管在一定程度上要使Moonlight正常运行)。对于我当前的需求,WPF的支持并不重要,WCF也不重要。我衷心感谢Rocky在CSLA中实现并继续维护的所有繁琐的数据绑定支持。对于许多应用程序来说,这是CSLA显着增加价值的地方。我意识到CSLA为表带来了许多其他功能,但是对我来说,数据绑定非常重要。我怀疑Mono下CSLA的主要兼容性问题集中在Mono没有实现所有.Net数据绑定细微差别(尤其是DataGrid)和序列化格式差异方面。我对如何解决这些感知到的问题有一些想法,但是我很想听到已经走这条路的任何人的来信。
编辑:对于它的价值,我很早前确实在CSLA论坛上发布了这个确切的问题。CSLA社区和Rocky可以迅速回答问题。但是,这个问题从未得到任何答案。我相信原因很简单:Rocky长期以来一直只专注于MS技术。我不会为此而责备他。Rocky对CSLA进行了大量投资。他是仁慈的独裁者。我很感谢他使CSLA开源。我怀疑他有足够的问题跟上Microsoft世界每两年一次主要API变更的步伐。Linux / Mac OS可能不在他的视野内。无论如何,目前可能不应该如此。大多数Linux或Mac OS用户甚至从未听说过CSLA。
您始终可以分叉源代码,对其进行剥离,增强等,以使其与Mono一起使用。如果这样做,您将不会拥有CSLA社区(至少目前是这样)。因此,我放弃了这一努力。
更新: 似乎洛基现在对Mono感兴趣。查看CSLA路线图。
我能想到的方式
你知道webservice的任何简洁例子吗?