本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤指一種網(wǎng)絡(luò)安全設(shè)備命令行的解析方法和裝置。
背景技術(shù):
目前,命令行是通過輸入命令來實(shí)現(xiàn)對網(wǎng)絡(luò)安全設(shè)備的管理和監(jiān)控,一般是通過串口或安全外殼協(xié)議(Secure Shell,簡稱:SSH)連接到設(shè)備,使用網(wǎng)絡(luò)產(chǎn)品界面設(shè)計(jì)(Website User Interface,簡稱:WEB UI)的方式來管理和監(jiān)控設(shè)備,因此,命令行方式依然是各種網(wǎng)絡(luò)安全設(shè)備最基礎(chǔ),最強(qiáng)大的管理方式,尤其在某些特殊場景下命令行仍是不可或缺的,同時(shí)也是最難掌握的。
現(xiàn)有技術(shù)中,隨著網(wǎng)絡(luò)安全設(shè)備的功能特性不斷增多,提供的命令行也不斷增多,復(fù)雜度也不斷提高,一直以來在命令行開發(fā)過程中,基本上都是手動(dòng)編寫命令行解析流程,并執(zhí)行相關(guān)操作邏輯。
但是,采用現(xiàn)有技術(shù),手動(dòng)編寫命令行解析流程工作量較大,且很多都是重復(fù)勞動(dòng),導(dǎo)致容易出錯(cuò),且難于調(diào)試和維護(hù)。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明提供了一種網(wǎng)絡(luò)安全設(shè)備命令行的解析方法和裝置,能夠根據(jù)命令格式串自動(dòng)構(gòu)建命令解析樹,自動(dòng)完成相關(guān)邏輯解析,無需手動(dòng)編寫命令行來解析流程,從而可以使得命令行解析過程更加簡單,高效,準(zhǔn)確。
第一方面,本發(fā)明實(shí)施例提供一種網(wǎng)絡(luò)安全設(shè)備命令行的解析方法,該方法包括:
加載命令鏈表中按照預(yù)定的命令格式規(guī)范設(shè)置的命令格式串;
對加載的命令格式串進(jìn)行詞法分析,并根據(jù)詞法分析的結(jié)果按照采用巴克斯范式語言描述的預(yù)定語法規(guī)則進(jìn)行語法分析,生成所述命令鏈表的命令解析樹和位圖特征碼矩陣;
使用命令解析樹對輸入的命令字符串進(jìn)行解析獲取位圖特征碼,并將解析后的位圖特征碼與位圖特征碼矩陣進(jìn)行匹配,執(zhí)行匹配成功后所對應(yīng)的命令操作。
第二方面,本發(fā)明實(shí)施例提供一種網(wǎng)絡(luò)安全設(shè)備命令行的解析裝置,該裝置包括:加載模塊、解析模塊和匹配模塊;
加載模塊,用于加載命令鏈表中按照預(yù)定的命令格式規(guī)范設(shè)置的命令格式串;
解析模塊,用于對加載后的命令格式串進(jìn)行詞法分析,并對詞法分析的結(jié)果按照采用巴克斯范式語言描述的預(yù)定語法規(guī)則進(jìn)行語法分析,生成所述命令鏈表的命令解析樹和位圖特征碼矩陣;
匹配模塊,用于使用命令解析樹對輸入的命令字符串進(jìn)行解析獲取位圖特征碼,并將解析后的位圖特征碼與位圖特征碼矩陣進(jìn)行匹配,執(zhí)行匹配成功后所對應(yīng)的命令操作。
本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)安全設(shè)備命令行的解析方法和裝置,包括加載模塊、解析模塊、匹配模塊,通過加載命令鏈表中按照預(yù)定的命令格式規(guī)范設(shè)置的命令格式串,對加載后的命令格式串進(jìn)行詞法分析,并對詞法分析的結(jié)果按照采用巴克斯范式語言描述的預(yù)定語法規(guī)則進(jìn)行語法分析,從而生成該命令鏈表的命令解析樹和位圖特征碼矩陣,由命令解析樹對輸入的命令字符串進(jìn)行解析獲取位圖特征碼,并將解析后的位圖特征碼與位圖特征碼矩陣進(jìn)行匹配,執(zhí)行匹配成功后所對應(yīng)的命令操作,這樣根據(jù)命令格式串自動(dòng)構(gòu)建命令解析樹,自動(dòng)完成輸入的命令字符串的相關(guān)邏輯解析,從而無需手動(dòng)編寫命令行的解析流程,進(jìn)而使得命令行解析的過程更加簡單,高效,準(zhǔn)確。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲 得。
附圖說明
附圖用來提供對本發(fā)明技術(shù)方案的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本申請的實(shí)施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對本發(fā)明技術(shù)方案的限制。
圖1為本發(fā)明提供的一種網(wǎng)絡(luò)安全設(shè)備命令行的解析方法實(shí)施例一的流程示意圖;
圖2為本發(fā)明提供的一種網(wǎng)絡(luò)安全設(shè)備命令行的解析方法實(shí)施例二的命令行語法分析圖;
圖3為本發(fā)明提供的一種網(wǎng)絡(luò)安全設(shè)備命令行的解析方法實(shí)施例三的左向規(guī)約圖;
圖4為本發(fā)明提供的一種網(wǎng)絡(luò)安全設(shè)備命令行的解析方法實(shí)施例四的右向規(guī)約圖;
圖5為本發(fā)明提供的一種網(wǎng)絡(luò)安全設(shè)備命令行的解析裝置實(shí)施例一的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。
在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本發(fā)明實(shí)施例涉及的方法可以應(yīng)用于網(wǎng)絡(luò)安全設(shè)備,例如:路由器、防火墻、IDS/IPS、SSL、負(fù)載均衡、VPN(ssl vpn/ipsec vpn)、UTM、防病毒網(wǎng)關(guān)、抗DDOS設(shè)備、NAC、網(wǎng)閘、IPAM等,但并不以此為限。
本發(fā)明實(shí)施例涉及的方法,旨在解決現(xiàn)有技術(shù)中的手動(dòng)編寫命令行解析流程工作量較大,且很多都是重復(fù)勞動(dòng),導(dǎo)致容易出錯(cuò),且難于調(diào)試和維護(hù) 的技術(shù)問題。
下面以具體地實(shí)施例對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明。下面這幾個(gè)具體的實(shí)施例可以相互結(jié)合,對于相同或相似的概念或過程可能在某些實(shí)施例不再贅述。
圖1為本發(fā)明提供的一種網(wǎng)絡(luò)安全設(shè)備命令行的解析方法實(shí)施例一的流程示意圖,本實(shí)施例涉及的是自動(dòng)解析命令來執(zhí)行相關(guān)操作的具體過程。如圖1所示,該方法包括:
S101、命令格式規(guī)范加載命令鏈表中按照預(yù)定的命令格式規(guī)范設(shè)置的命令格式串。
具體的,所述命令鏈表包括所有按照預(yù)定的命令格式規(guī)范設(shè)置的命令格式串,所述命令格式串為能夠被正確解析并執(zhí)行的格式串,具體格式根據(jù)每個(gè)命令功能的不同而不同,依次加載該命令鏈表中的每一條命令格式串,對每一條命令格式串進(jìn)行詞法分析和語法分析,直至該命令鏈表中的命令格式串加載至空為止。
S102、加載的命令格式串進(jìn)行詞法分析,并根據(jù)詞法分析的結(jié)果按照采用巴克斯范式語言描述的預(yù)定語法規(guī)則進(jìn)行語法分析,生成所述命令鏈表的命令解析樹和位圖特征碼矩陣。
具體的,對加載后的命令格式串進(jìn)行詞法分析,分析出該命令格式串的命令名和命令參數(shù),其中,該命令名為命令格式串中第一個(gè)關(guān)鍵字,該命令參數(shù)為命令格式串中除命令名之外的關(guān)鍵字。根據(jù)詞法分析出該命令行的命令名和命令參數(shù)再按照預(yù)定的語法規(guī)則進(jìn)行語法分析,該語法規(guī)則是采用巴克斯范式語言進(jìn)行描述的,從而可以生成該命令鏈表的命令解析樹和位圖特征碼矩陣以便后續(xù)根據(jù)輸入的命令字符串查詢對應(yīng)的命令格式來執(zhí)行對應(yīng)的命令操作。
S103、使用命令解析樹對輸入的命令字符串進(jìn)行解析獲取位圖特征碼,并將解析后的位圖特征碼與位圖特征碼矩陣進(jìn)行匹配,執(zhí)行匹配成功后所對應(yīng)的命令操作。
當(dāng)在終端設(shè)備輸入命令字符串時(shí),使用命令解析樹對輸入的命令字符串 進(jìn)行解析,生成該命令字符串的位圖特征碼,其中,該命令字符串是終端輸入的一行文本字符串,通過解析獲取到該命令字符串的位圖特征碼,并將該命令字符竄的位圖特征碼與位圖特征碼矩陣進(jìn)行匹配,找到所屬的命令格式串串,執(zhí)行對應(yīng)的命令操作。
本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)安全設(shè)備命令行的解析方法,該方法通過加載命令鏈表中按照預(yù)定的命令格式規(guī)范設(shè)置的命令格式串,對加載后的命令格式串進(jìn)行詞法分析,并對詞法分析的結(jié)果按照采用巴克斯范式語言描述的預(yù)定語法規(guī)則進(jìn)行語法分析,從而生成該命令鏈表的命令解析樹和位圖特征碼矩陣,由命令解析樹對輸入的命令字符串進(jìn)行解析獲取位圖特征碼,并將解析后的位圖特征碼與位圖特征碼矩陣進(jìn)行匹配,執(zhí)行匹配成功后所對應(yīng)的命令操作,這樣根據(jù)命令格式串自動(dòng)構(gòu)建命令解析樹,自動(dòng)完成輸入的命令字符串的相關(guān)邏輯解析,從而無需手動(dòng)編寫命令行的解析流程,進(jìn)而使得命令行解析的過程更加簡單,高效,準(zhǔn)確。
進(jìn)一步地,在上述實(shí)施例的基礎(chǔ)上,上述步驟101中預(yù)定的命令格式規(guī)范,包括:
命令格式串中關(guān)于“順序排列”、“或”、“可選”和“優(yōu)先”關(guān)系的命令格式,其中,所述命令格式串包括命令名及一個(gè)或多個(gè)按預(yù)定順序排列的命令參數(shù);
所述“順序排列”關(guān)系的命令格式是連續(xù)將多個(gè)命令參數(shù)進(jìn)行順序排列;
所述“或”關(guān)系的命令格式是使用分隔號將多個(gè)命令參數(shù)分隔起來;
所述“可選”關(guān)系的命令格式是使用中括號將至少一個(gè)命令參數(shù)括起來;
所述“優(yōu)選”關(guān)系的命令格式是使用大括號將至少一個(gè)命令參數(shù)括起來。
具體的,根據(jù)上述預(yù)定的命令格式規(guī)范,舉例說明如下:“user add name<name>”為user命令的命令格式串,其中user為命令名,add和name為固定式參數(shù),<name>為格式化參數(shù),在輸入命令字符串時(shí)必須滿足<name>的格式的合法性要求,命令才能正確執(zhí)行,但并不以此為限。
具體的,對于可選命令參數(shù),繼續(xù)舉例說明如下:“user add name<name>[phone<phone>]”的user命令的命令格式串,其中“[phone<phone>]”為可選命令參數(shù),如果輸入的命令字符串參數(shù)<name>的后邊不包含phone<phone> 格式的字符串時(shí),設(shè)備會(huì)默認(rèn)phone為空進(jìn)行配置下發(fā),但并不限于此。
具體的,對于優(yōu)先組合命令參數(shù)及多個(gè)命令參數(shù)的或的關(guān)系,繼續(xù)舉例說明如下:“user add name<name>[phone<phone>]status{on|off}”的user命令的命令格式串,這種情況下輸入命令字符串中status后面可以是on和off其中一個(gè),但并不限于此。
通過上述預(yù)定的命令格式規(guī)范,可以自動(dòng)按照該命令格式串解析命令字符串,檢查相對應(yīng)的命令格式,執(zhí)行對應(yīng)的命令操作,從而大幅減少由于編寫解析流程而產(chǎn)生的工作量,減少了代碼冗余,降低了解析過程中出錯(cuò)的概率,提高了命令行開發(fā)的效率,節(jié)省了項(xiàng)目資源,縮短了項(xiàng)目周期。
進(jìn)一步地,在上述實(shí)施例的基礎(chǔ)上,上述步驟102中所述采用巴克斯范式語言描述的預(yù)定語法規(guī)則包括:
其中,符號ROOT在所述命令解析樹中代表根節(jié)點(diǎn),符號SEQUENCE在所述命令解析樹中代表所述“順序排列”關(guān)系的命令格式的節(jié)點(diǎn),符號OR在所述命令解析樹中代表所所述“或”關(guān)系的命令格式的節(jié)點(diǎn),符號OPTION在所述命令解析樹中代表“可選”關(guān)系的命令格式的節(jié)點(diǎn),符號MERGE在所述命令解析樹中代表“優(yōu)先”關(guān)系的命令格式的節(jié)點(diǎn)。
具體的,圖2為本發(fā)明提供的一種網(wǎng)絡(luò)安全設(shè)備命令行的解析方法實(shí)施例二的命令行語法分析圖,根據(jù)上述預(yù)定的巴克斯范式對詞法分析的結(jié)果進(jìn)行語法分析,舉例說明如下:如“user add name<name>[phone<phone>]status{on|off}”user命令的命令格式串經(jīng)過語法分析后,生成的命令解析樹如圖2所示,但并不限于此。
通過上述采用巴克斯范式語言描述的語法規(guī)則對命令格式串進(jìn)行語法分析,從而可以自動(dòng)構(gòu)建命令解析樹,大幅減少由于編寫解析流程而產(chǎn)生的工作量,減少了代碼冗余,降低了解析過程中出錯(cuò)的概率,提高了命令行開發(fā)的效率,節(jié)省了項(xiàng)目資源,縮短了項(xiàng)目周期。
進(jìn)一步地,在上述實(shí)施例的基礎(chǔ)上,上述步驟102中所述命令解析樹按照向左規(guī)約和向右規(guī)約進(jìn)行合并。
具體的,所述命令解析樹是一個(gè)二叉樹,所述二叉樹的左右兩側(cè)可以分別對應(yīng)一個(gè)子樹、一個(gè)節(jié)點(diǎn)或者一個(gè)命令參數(shù),為簡化命令解析樹的大小,在生成命令解析樹后,都需要進(jìn)行規(guī)約處理,其中該規(guī)約分為兩種,一種是 左向規(guī)約,另一種是右向規(guī)約,但并不限于此。
進(jìn)一步地,在上述實(shí)施例的基礎(chǔ)上,上述左向規(guī)約包括:
當(dāng)節(jié)點(diǎn)OR的左右子樹的第一命令參數(shù)和第二命令參數(shù)相同時(shí),則用相同的命令參數(shù)來表示。
在所述命令解析樹有符號OR代表的第一節(jié)點(diǎn)中,若所述第一節(jié)點(diǎn)的右子樹和左子樹的命令格式有部分相同,則將所述符號OR代表的第一節(jié)點(diǎn)替換成符號SEQUENCE代表的第二節(jié)點(diǎn),其中,將部分相同的命令格式提取出放置在所述第二節(jié)點(diǎn)的左子樹,若所述第一節(jié)點(diǎn)的右子樹和左子樹的命令格式全部相同,則將所述符號OR代表的第一節(jié)點(diǎn)替換成全部相同的命令格式。
具體的,圖3為本發(fā)明提供的一種網(wǎng)絡(luò)安全設(shè)備命令行的解析方法實(shí)施例三的左向規(guī)約圖,如圖3所示,所述左向規(guī)約主要是針對命令解析樹中有符號OR代表的節(jié)點(diǎn)的情況,一共有四種情況,在此一一舉例說明如下:
當(dāng)節(jié)點(diǎn)OR的左右子樹相同時(shí),則按照圖3中(A)情況進(jìn)行轉(zhuǎn)換,在所述命令格式規(guī)范中相當(dāng)于“a|a”,則可以轉(zhuǎn)化為“a”;
當(dāng)節(jié)點(diǎn)OR的右子樹為SEQUENCE類型節(jié)點(diǎn),且節(jié)點(diǎn)OR的左子樹與SEQUENCE節(jié)點(diǎn)的左子樹相同時(shí),則按照圖3中(B)情況進(jìn)行轉(zhuǎn)換,在所述命令格式規(guī)范中相當(dāng)于“a|a b”,則可以轉(zhuǎn)化為“a[b]”;
當(dāng)節(jié)點(diǎn)OR的左子樹為SEQUENCE類型節(jié)點(diǎn),且節(jié)點(diǎn)OR的右子樹與SEQUENCE節(jié)點(diǎn)的左子樹相同時(shí),則按照圖3中(C)情況進(jìn)行轉(zhuǎn)換,在所述命令格式規(guī)范中相當(dāng)于“a b|a”,則可以轉(zhuǎn)化為“a[b]”;
當(dāng)節(jié)點(diǎn)OR的左子樹和右子樹都為SEQUENCE類型節(jié)點(diǎn),且節(jié)點(diǎn)OR左子樹的SEQUENCE節(jié)點(diǎn)的左子樹與OR右子樹的SEQUENCE節(jié)點(diǎn)的左子樹相同時(shí),則按照圖3中(D)情況進(jìn)行轉(zhuǎn)換,在所述命令格式規(guī)范中相當(dāng)于“a b|a c”,則可以轉(zhuǎn)化為“a{b|c}?!?/p>
上述舉例中的a、b、c是命令格式的表示符號,其在命令解析樹中可以是一個(gè)子樹,也可以是一個(gè)節(jié)點(diǎn),還可以是一個(gè)命令參數(shù),但并不以此為限。
進(jìn)一步地,在上述實(shí)施例的基礎(chǔ)上,上述右向規(guī)約包括:
在所述命令解析樹有符號OR代表的第三節(jié)點(diǎn)中,若所述第三節(jié)點(diǎn)的左子樹和右子樹的命令格式有部分相同,則將所述符號OR代表的第三節(jié)點(diǎn)替 換成符號SEQUENCE代表的第四節(jié)點(diǎn),其中,將部分相同的命令格式提取出放置在所述第四節(jié)點(diǎn)的右子樹,若所述第三節(jié)點(diǎn)的左子樹和右子樹的命令格式全部相同,則將所述符號OR代表的第三節(jié)點(diǎn)替換成全部相同的命令格式。
具體的,圖4為本發(fā)明提供的一種網(wǎng)絡(luò)安全設(shè)備命令行的解析方法實(shí)施例四的右向規(guī)約圖,如圖4所示,所述右向規(guī)約主要是針對命令解析樹中有符號OR代表的節(jié)點(diǎn)的情況,一共有四種情況,在此一一舉例說明如下::
當(dāng)節(jié)點(diǎn)OR的左右子樹相同時(shí),則按照圖4中(A)情況進(jìn)行轉(zhuǎn)換,在所述命令格式規(guī)范中相當(dāng)于“a|a”,則可以轉(zhuǎn)化為“a”的形式。
當(dāng)節(jié)點(diǎn)OR的左子樹為SEQUENCE類型節(jié)點(diǎn),且節(jié)點(diǎn)OR的右子樹與SEQUENCE節(jié)點(diǎn)的右子樹相同時(shí),則按照圖4中(B)情況進(jìn)行轉(zhuǎn)換,在所述命令格式規(guī)范中相當(dāng)于“b|a b”,則可以轉(zhuǎn)化為“b[a]”。
當(dāng)節(jié)點(diǎn)OR的右子樹為SEQUENCE類型節(jié)點(diǎn),且節(jié)點(diǎn)OR的左子樹與SEQUENCE節(jié)點(diǎn)的右子樹相同時(shí),則按照圖4中(C)情況進(jìn)行轉(zhuǎn)換,在所述命令格式規(guī)范中相當(dāng)于“b a|b”,則可以轉(zhuǎn)化為“b[a]”。
當(dāng)節(jié)點(diǎn)OR的左子樹和右子樹都為SEQUENCE類型節(jié)點(diǎn),且節(jié)點(diǎn)OR左子樹的SEQUENCE節(jié)點(diǎn)的右子樹與OR右子樹的SEQUENCE節(jié)點(diǎn)的右子樹相同時(shí),則按照圖4中(D)情況進(jìn)行轉(zhuǎn)換,在所述命令格式規(guī)范中相當(dāng)于“a b|c b”,則可以轉(zhuǎn)化為“b{a|c}。”
上述舉例中的a、b、c是命令格式的表示符號,其在命令解析樹中可以是一個(gè)子樹,也可以是一個(gè)節(jié)點(diǎn),還可以是一個(gè)命令參數(shù),但并不以此為限。
通過上述左向規(guī)約和右向規(guī)約,能夠反向輸出轉(zhuǎn)換后的命令格式串,減少了代碼冗余,降低了解析過程中出錯(cuò)的概率,提高了命令行開發(fā)的效率,節(jié)省了項(xiàng)目資源,縮短了項(xiàng)目周期。
進(jìn)一步地,在上述實(shí)施例的基礎(chǔ)上,所述位圖特征碼為命令解析樹中各節(jié)點(diǎn)的有序位圖映射。
具體的,位圖特征碼本質(zhì)上是命令解析樹中各節(jié)點(diǎn)的有序位圖映射,而命令鏈表中的多個(gè)命令格式串會(huì)組成一個(gè)位圖特征碼矩陣。其中,位圖特征碼是在語法分析每個(gè)命令格式串的同時(shí),生成的該命令格式串的位圖特征碼,從而構(gòu)建成位圖特征碼矩陣,以便后續(xù)用來將設(shè)備終端輸入的命令字符串的 位圖特征碼與位圖特征碼矩陣進(jìn)行匹配,從而找到所對應(yīng)的命令格式串,執(zhí)行對應(yīng)的命令操作。
進(jìn)一步地,圖5為本發(fā)明提供的一種網(wǎng)絡(luò)安全設(shè)備命令行的解析裝置實(shí)施例一的結(jié)構(gòu)示意圖,如圖5所示,該裝置包括:加載模塊10、解析模塊20和匹配模塊30;
所述加載模塊10,用于加載命令鏈表中按照預(yù)定的命令格式規(guī)范設(shè)置的命令格式串;
所述解析模塊20,用于對加載的命令格式串進(jìn)行詞法分析,并根據(jù)詞法分析的結(jié)果按照采用巴克斯范式語言描述的預(yù)定語法規(guī)則進(jìn)行語法分析,生成所述命令鏈表的命令解析樹和位圖特征碼矩陣;
所述匹配模塊30,用于使用命令解析樹對輸入的命令字符串進(jìn)行解析獲取位圖特征碼,并將解析后的位圖特征碼與位圖特征碼矩陣進(jìn)行匹配,執(zhí)行匹配成功后所對應(yīng)的命令操作。
本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)安全設(shè)備命令行的解析裝置,包括加載模塊、解析模塊和匹配模塊,通過加載命令鏈表中按照預(yù)定的命令格式規(guī)范設(shè)置的命令格式串,對加載后的命令格式串進(jìn)行詞法分析,并對詞法分析的結(jié)果按照采用巴克斯范式語言描述的預(yù)定語法規(guī)則進(jìn)行語法分析,從而生成該命令鏈表的命令解析樹和位圖特征碼矩陣,由命令解析樹對輸入的命令字符串進(jìn)行解析獲取位圖特征碼,并將解析后的位圖特征碼與位圖特征碼矩陣進(jìn)行匹配,執(zhí)行匹配成功后所對應(yīng)的命令操作,這樣根據(jù)命令格式串自動(dòng)構(gòu)建命令解析樹,自動(dòng)完成輸入的命令字符串的相關(guān)邏輯解析,從而無需手動(dòng)編寫命令行的解析流程,進(jìn)而使得命令行解析的過程更加簡單,高效,準(zhǔn)確。
進(jìn)一步地,在上述實(shí)施例的基礎(chǔ)上,所述預(yù)定的命令格式規(guī)范,包括:
命令格式串中關(guān)于“順序排列”、“或”、“可選”和“優(yōu)先”關(guān)系的命令格式,其中,所述命令格式串包括命令名及一個(gè)或多個(gè)按預(yù)定順序排列的命令參數(shù);
所述“順序排列”關(guān)系的命令格式是連續(xù)將多個(gè)命令參數(shù)進(jìn)行順序排列;
所述“或”關(guān)系的命令格式是使用分隔號將多個(gè)命令參數(shù)分隔起來;
所述“可選”關(guān)系的命令格式是使用中括號將至少一個(gè)命令參數(shù)括起來;
所述“優(yōu)選”關(guān)系的命令格式是使用大括號將至少一個(gè)命令參數(shù)括起來。
本發(fā)明實(shí)施例提供的裝置,可以執(zhí)行上述方法實(shí)施例,其實(shí)現(xiàn)原理和技術(shù)效果類似,在此不再贅述。
進(jìn)一步地,在上述實(shí)施例的基礎(chǔ)上,所述采用巴克斯范式語言描述的預(yù)定語法規(guī)則包括:
其中,符號ROOT在所述命令解析樹中代表根節(jié)點(diǎn),符號SEQUENCE在所述命令解析樹中代表所述“順序排列”關(guān)系的命令格式的節(jié)點(diǎn),符號OR在所述命令解析樹中代表所所述“或”關(guān)系的命令格式的節(jié)點(diǎn),符號OPTION在所述命令解析樹中代表“可選”關(guān)系的命令格式的節(jié)點(diǎn),符號MERGE在所述命令解析樹中代表“優(yōu)先”關(guān)系的命令格式的節(jié)點(diǎn)。
本發(fā)明實(shí)施例提供的裝置,可以執(zhí)行上述方法實(shí)施例,其實(shí)現(xiàn)原理和技術(shù)效果類似,在此不再贅述。
進(jìn)一步地,在上述實(shí)施例的基礎(chǔ)上,所述命令解析樹按照向左規(guī)約和向右規(guī)約進(jìn)行合并。
本發(fā)明實(shí)施例提供的裝置,可以執(zhí)行上述方法實(shí)施例,其實(shí)現(xiàn)原理和技術(shù)效果類似,在此不再贅述。
進(jìn)一步地,在上述實(shí)施例的基礎(chǔ)上,所述左向規(guī)約包括:
在所述命令解析樹有符號OR代表的第一節(jié)點(diǎn)中,若所述第一節(jié)點(diǎn)的右子樹和左子樹的命令格式有部分相同,則將所述符號OR代表的第一節(jié)點(diǎn)替換成符號SEQUENCE代表的第二節(jié)點(diǎn),其中,將部分相同的命令格式提取出放置在所述第二節(jié)點(diǎn)的左子樹,若所述第一節(jié)點(diǎn)的右子樹和左子樹的命令格式全部相同,則將所述符號OR代表的第一節(jié)點(diǎn)替換成全部相同的命令格式。
本發(fā)明實(shí)施例提供的裝置,可以執(zhí)行上述方法實(shí)施例,其實(shí)現(xiàn)原理和技術(shù)效果類似,在此不再贅述。
進(jìn)一步地,在上述實(shí)施例的基礎(chǔ)上,所述右向規(guī)約包括:
在所述命令解析樹有符號OR代表的第三節(jié)點(diǎn)中,若所述第三節(jié)點(diǎn)的左子樹和右子樹的命令格式有部分相同,則將所述符號OR代表的第三節(jié)點(diǎn)替換成符號SEQUENCE代表的第四節(jié)點(diǎn),其中,將部分相同的命令格式提取 出放置在所述第四節(jié)點(diǎn)的右子樹,若所述第三節(jié)點(diǎn)的左子樹和右子樹的命令格式全部相同,則將所述符號OR代表的第三節(jié)點(diǎn)替換成全部相同的命令格式。
本發(fā)明實(shí)施例提供的裝置,可以執(zhí)行上述方法實(shí)施例,其實(shí)現(xiàn)原理和技術(shù)效果類似,在此不再贅述。
進(jìn)一步地,在上述實(shí)施例的基礎(chǔ)上,所述位圖特征碼為命令解析樹中各節(jié)點(diǎn)的有序位圖映射。
本發(fā)明實(shí)施例提供的裝置,可以執(zhí)行上述方法實(shí)施例,其實(shí)現(xiàn)原理和技術(shù)效果類似,在此不再贅述。
雖然本發(fā)明所揭露的實(shí)施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的實(shí)施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實(shí)施的形式及細(xì)節(jié)上進(jìn)行任何的修改與變化,但本發(fā)明的專利保護(hù)范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)。