使用形式语言定义通信报文格式

来源:互联网 发布:gta4渣优化 编辑:程序博客网 时间:2024/05/22 06:16

本文由 @lonelyrains 出品,转载请注明出处。 
文章链接: http://blog.csdn.net/lonelyrains/article/details/9465773


在通信过程中,有几种常用的通信报文定义格式。有if-else直接层层递进融合代码的方式,有自然语言描述的方式定义一条条规则,但是很少发现有用形式语言定义的。

其实,形式语言定义的报文,由于是规范,可以比较方便地让计算机识别,从而自动转换成代码。它和直接if-else定义报文相比,省去了很多手工敲打条件判断的过程,体现的是高效和高质量。现在手头缺少这个识别形式语言并转化为格式检测代码的自动机实现。但是这东西迟早会有人做出来的。

比如有自然语言定义的通信报文格式为:

1、报文以^|^开始,以^|^结尾,报文每个字段都以^|^为分割符

2、报文有需要在表格中显示的部分和不需要显示的部分,需要显示的部分采用_show={{key1:value1},{key2:value2}}类似形式;不需要显示的只要不用_show关键字即可,例如hidekey1=hidevalue1

3、不使用中文编码字符':' 即ascii码0xA3BA,以免与':'混淆。分隔符^|^左右无多余空格和其他制表符

4、解析到多个_show字段,报错


以不全面的自然语言定义转化为严密的形式语言,将自然语言描述不全面的地方补全:

A=“^|^”
B="="
C=":"
D=所有可打印字符
E=(D*)-A-B-C-"_show"
F=A((EBEA)*)
G="_show={"(("{"(ECE)"}",)*)"{"ECE"}}"
H=FGF

说明:*表示任意个(包括0个)重复单元

原创粉丝点击