A2L语法解析器及方法技术

技术编号:14014719 阅读:502 留言:0更新日期:2016-11-17 20:28
本发明专利技术公开了一种A2L语法解析器,包括:AML语法定义文件模块,采用AML语法描述ASAM标准语法;AML语法解析模块,用于逐行读取和解析AML语法定义文件,并生成AML语法信息关键词链表;A2L文件解析模块,用于逐行读取A2L文件,并与AML语法信息关键词链表作对照,生成A2L数据结构链表。本发明专利技术还公开了一种A2L语法解析方法,包括以下步骤:步骤1、采用AML语法描述ASAM标准语法;步骤2、逐行读取和解析AML语法定义文件,并生成AML语法信息关键词链表;步骤3、逐行读取A2L文件,并与AML语法信息关键词链表作对照,生成A2L数据结构链表。本发明专利技术能够对ASAM MCD‑2MC规范中定义的数据存储格式进行解析,并生成相关链表,以供其它程序访问。

【技术实现步骤摘要】

本专利技术属于汽车语法解析技术,具体涉及一种A2L语法解析器及方法
技术介绍
目前没有专门用于对A2L语法进行解析的解析器,无法对A2L文件进行解读,只能不使用标准的A2L文件,而是通过定义一套类似的规则来存储A2L信息,由于这种文件不满足标准的规范,故无法同其它商业软件进行对接。而A2L文件的主要作用就是用于不同软件之间的对接,例如A2L编辑器生成A2L文件,而A2L文件又被商业标定软件读取。这些商业软件虽可读取A2L文件,但不能提供A2L解析的功能,所以有必要开发一种A2L语法解析器及方法。
技术实现思路
本专利技术的目的是提供一种A2L语法解析器及方法,能对ASAM MCD-2MC规范中定义的数据存储格式进行解析,并生成相关链表,以供其它程序访问。本专利技术所述的A2L语法解析器,包括:AML语法定义文件模块,采用AML语法描述ASAM标准语法;AML语法解析模块,用于逐行读取和解析AML语法定义文件,并生成AML语法信息关键词链表;A2L文件解析模块,用于逐行读取A2L文件,并与AML语法信息关键词链表作对照,生成A2L数据结构链表。本专利技术所述的一种A2L语法解析方法,采用如本专利技术所述的A2L语法解析器,其解析方法包括以下步骤:步骤1、采用AML语法描述ASAM标准语法;步骤2、逐行读取和解析AML语法定义文件,并生成AML语法信息关键词链表;步骤3、逐行读取A2L文件,并与AML语法信息关键词链表作对照,生成A2L数据结构链表。所述步骤2具体为:对AML语法定义文件进行逐行读取,识别出其中的关键词,并对关键词的属性做记录,同时递归访问其成员,最终生成AML语法信息关键词链表。所述步骤3中逐行读取A2L文件,并与AML语法信息关键词链表作对照,具体为:对A2L文件进行逐行读取,遍历步骤2中所生成的AML语法信息关键词链表,找到对应的关键词,并找到其对应的属性。所述A2L数据结构链表为双向链表形式,其结构为List类型,能够被C/C++程序直接访问。所述A2L数据结构链表由MEASUREMENT、CHARACTERISTIC、Curve、MAP、AXIS、计算公式、Group类型组成,其中:MEASUREMENT表示测量类变量,CHARACTERISTIC为标定类变量,Curve为一维表格类标定变量,MAP为二维表格类标定变量,AXIS为坐标轴类变量,计算公式为转换用公式类变量,Group为记录分组信息的链表。本专利技术具有以下优点:(1)能够解析ASAM MCD-2MC协议V1.6以上版本定义的A2L语法文件。(2)提供DLL(动态链接库)文件形式的调用,其它能够调用DLL的编程语言均可使用。(3)采用AML语法描述ASAM(自动化及测量系统标准协会)语法,语法定义与软件算法脱离。(4)AML语法文件独立于程序,通过修改AML语法文件来实现对IF_DATA接口的定制。(5)通过读取以A2L格式保存的文本文件,对其中的字符进行解析,从而生成对应的数据结构。(6)支持对MEASUREMENT(测量类变量)、CHARACTERISTIC(标定类变量)、Curve(一维表格类标定变量)、MAP(二维表格类标定变量)、AXIS(坐标轴类变量)、计算公式、Group、array (数组)的读取和识别。附图说明图1为本专利技术的结构示意图;图2为本专利技术的流程图;图3为本专利技术中AML文件读取流程图;图4为本专利技术中A2L文件读取流程图;图5为本专利技术中A2L数据结构链表的示意图。具体实施方式下面结合附图对本专利技术作进一步说明。如图1所示的A2L语法解析器,包括AML语法定义文件模块1、AML语法解析模块2和A2L文件解析模块3。其中:AML语法定义文件模块1采用AML语法描述ASAM标准语法。AML语法解析模块2用于逐行读取和解析AML语法定义文件,并生成AML语法信息关键词链表。A2L文件解析模块3用于逐行读取A2L文件,并与AML语法信息关键词链表作对照,生成A2L数据结构链表。本专利技术所述的A2L语法解析器具有以下功能:(1)能够解析ASAM MCD-2MC协议V1.6以上版本定义的A2L语法文件。ASAM协议分为若干个层次,A2L语法解析协议位于第二层,定义了数据的存储结构方式。(2)提供DLL文件形式的调用,其它能够调用DLL的编程语言均可使用。(3)采用AML语法描述ASAM语法,语法定义与软件算法脱离。(4)AML语法文件独立于程序,通过修改AML语法文件来实现对IF_DATA接口的定制。(5)通过读取以A2L格式保存的文本文件,对其中的字符进行解析,从而生成对应的数据结构。(6)支持对MEASUREMENT、CHARACTERISTIC、Curve、MAP、AXIS、计算公式、Group、数组(array)的读取和识别。本专利技术所述的一种A2L语法解析方法,采用如本专利技术所述的A2L语法解析器,其解析方法包括以下步骤:步骤1、采用AML语法描述ASAM标准语法。步骤2、对AML语法定义文件进行逐行读取,识别出其中的关键词,并对关键词的属性做记录,同时递归访问其成员,最终生成AML语法信息关键词链表。如图3所示,对AML语法定义文件进行逐行读取,识别出其中的关键词,并对关键词的属性做记录,同时递归访问其成员,具体为:2a、读取AML语法定义文件中的第一行字符;2b、对该行字符进行关键词识别,识别出其中的关键词;2c、判断是否为结束符,若是,结束,若否,则进入步骤2d;2d、读取该关键词的属性字段;2e、判断是否有成员,若是,读取该成员的信息,并进入步骤2d;若否,则进入下一行,并进入步骤2b。步骤3、对A2L文件进行逐行读取,遍历步骤2中所生成的AML语法信息关键词链表,找到对应的关键词,并找到其对应的属性,生成A2L数据结构链表,参见图5。通过访问A2L数据结构链表,获取到A2L文件中所存储的A2L变量和参数信息。如图4所示,对A2L文件进行逐行读取,遍历步骤2中所生成的AML语法信息关键词链表,找到对应的关键词,并找到其对应的属性,具体为:3a、读取A2L文件中的第一行字符;3b、与AML语法信息关键词链表对比;3c、判断是否有关键词,若否,则读取A2L文件中的下一行字符,并进入步骤3b,若是,则进入步骤3d;3d、读取该关键词的信息,并找到其对应的属性;3e、判断是否有成员,若是,则将成员与AML语法信息关键词链表对比,并进入步骤3d,若否,则读取A2L文件中的下一行字符,并进入步骤3b。所述A2L数据结构链表为双向链表形式,其结构为List类型,能够被C/C++程序直接访问,其余程序通过一定的处理接口也可以访问。所述A2L数据结构链表由MEASUREMENT、CHARACTERISTIC、Curve、MAP、AXIS、计算公式、Group类型组成,其中:MEASUREMENT表示测量类变量,CHARACTERISTIC为标定类变量,Curve为一维表格类标定变量,MAP为二维表格类标定变量,AXIS为坐标轴类变量,计算公式为转换用公式类变量,Group为记录分组信息的链表。本文档来自技高网...
A2L语法解析器及方法

【技术保护点】
一种A2L语法解析器,其特征在于,包括:AML语法定义文件模块(1),采用AML语法描述ASAM标准语法;AML语法解析模块(2),用于逐行读取和解析AML语法定义文件,并生成AML语法信息关键词链表;A2L文件解析模块(3),用于逐行读取A2L文件,并与AML语法信息关键词链表作对照,生成A2L数据结构链表。

【技术特征摘要】
1.一种A2L语法解析器,其特征在于,包括:AML语法定义文件模块(1),采用AML语法描述ASAM标准语法;AML语法解析模块(2),用于逐行读取和解析AML语法定义文件,并生成AML语法信息关键词链表;A2L文件解析模块(3),用于逐行读取A2L文件,并与AML语法信息关键词链表作对照,生成A2L数据结构链表。2.一种A2L语法解析方法,其特征在于,采用如权利要求1所述的A2L语法解析器,其解析方法包括以下步骤:步骤1、采用AML语法描述ASAM标准语法;步骤2、逐行读取和解析AML语法定义文件,并生成AML语法信息关键词链表;步骤3、逐行读取A2L文件,并与AML语法信息关键词链表作对照,生成A2L数据结构链表。3.根据权利要求2所述的A2L语法解析方法,其特征在于:所述步骤2具体为:对AML语法定义文件进行逐行读取,识别出其中的关键词,并对关键词的属性做记录,同时递归访问其成员,最终生成AML...

【专利技术属性】
技术研发人员:张鹏周琴陈兴华章信华褚开星邱奇王纪方
申请(专利权)人:重庆红江机械有限责任公司
类型:发明
国别省市:重庆;50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1