本發明專利技術公開了一種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語法解析器,其特征在于,包括: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
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。