读书人

用ANTLR分析容易的十六进制格式字符串

发布时间: 2012-09-03 09:48:39 作者: rapoo

用ANTLR分析简单的十六进制格式字符串

?

用ANTLR分析简单的十六进制格式字符串

?

一、问题:

假设现在有一个16进制格式的文本字符串,如下:

?

?

?

?

三、测试结果:

用ANTLRWorks测试,输入数据设置为

?

?

0x00, 0x06, 0x6E, 0x61, 0x6e, 0x61, 0x6d, 0x69,
0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02,
?

开始规则(Start Rule)设置为?packets

输出为:

?

?

username : nanami
x : 1
y : 2
?

?

四、总结:

相比起其它语言(诸如C的struct和Erlang的binary数据类型匹配),

用ANTLR的BNF语法处理二进制的解码会比较麻烦(需要先转换为文本型的字符串),

而且灵活性很小(虽然可以用谓词分析变长的字符串,但处理更复杂的结构会很困难)。

不过个人觉得这个问题对于了解ANTLR的语法和ANTLRWorks的测试环境很有帮助。

?

读书人网 >编程

热点推荐