版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
6.4.2HCS配置語法通過本節(jié)學(xué)習(xí),您可以:了解HCS配置語法HCS配置語法1.關(guān)鍵字HCS配置語法的部分關(guān)鍵字,如表所示。關(guān)鍵字用途說明root配置根節(jié)點(diǎn)-include引用其他HCS配置文件-delete刪除節(jié)點(diǎn)或?qū)傩灾荒苡糜诓僮鱥nclude導(dǎo)入的配置樹template定義模板節(jié)點(diǎn)-match_attr用于標(biāo)記節(jié)點(diǎn)的匹配查找屬性解析配置時(shí)可以使用該屬性的值查找到對(duì)應(yīng)節(jié)點(diǎn)HCS配置語法2.基本組成結(jié)構(gòu)HCS配置文件主要由屬性(Attribute)和節(jié)點(diǎn)(Node)兩部分組成。(1)屬性屬性是最小的配置單元,是一個(gè)獨(dú)立的配置項(xiàng)。語法如下:attribute_name=value;attribute_name是字母、數(shù)字、下劃線的組合且必須以字母或下劃線開頭,字母區(qū)分大小寫。value的可用格式如下:數(shù)字常量,支持二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制數(shù)。字符串,內(nèi)容使用雙引號(hào)(“”)引用。節(jié)點(diǎn)引用。attribute必須以分號(hào)(;)結(jié)束且必須屬于一個(gè)node。HCS配置語法(2)節(jié)點(diǎn)節(jié)點(diǎn)是一組屬性的集合,語法如下:
node_name{
module="test";
...}node_name是字母、數(shù)字、下劃線的組合且必須以字母或下劃線開頭,字母區(qū)分大小寫。大括號(hào)后無需添加結(jié)束符分號(hào)“;”。root為保留關(guān)鍵字,用于聲明配置表的根節(jié)點(diǎn)。每個(gè)配置表必須以root節(jié)點(diǎn)開始。root節(jié)點(diǎn)中必須包含module屬性,其值應(yīng)該為一個(gè)字符串,用于表征該配置所屬模塊。節(jié)點(diǎn)中可以增加match_attr屬性,其值為一個(gè)全局唯一的字符串。當(dāng)驅(qū)動(dòng)程序在解析配置時(shí)可以以該屬性的值為參數(shù)調(diào)用查找接口查找到包含該屬性的節(jié)點(diǎn)。HCS配置語法3.數(shù)據(jù)類型在屬性定義中使用自動(dòng)數(shù)據(jù)類型,不顯式指定類型,屬性支持的數(shù)據(jù)類型有整型、字符串、數(shù)組、布爾類型。整型:整型長度自動(dòng)推斷,根據(jù)實(shí)際數(shù)據(jù)長度給與最小空間占用的類型。二進(jìn)制,0b前綴,示例:0b1010。八進(jìn)制,0前綴,示例:0664。十進(jìn)制,無前綴,且支持有符號(hào)與無符號(hào),示例:1024,+1024均合法。驅(qū)動(dòng)程序在讀取負(fù)值時(shí)注意使用有符號(hào)數(shù)讀取接口。十六進(jìn)制,0x前綴,示例:0xff00、0xFF。HCS配置語法字符串:字符串使用雙引號(hào)(“”)表示。布爾類型:布爾類型中true表示真,false表示假。數(shù)組:數(shù)組元素支持整型、字符串,不支持混合類型。整型數(shù)組中uint32_t、uint64_t混用會(huì)向上轉(zhuǎn)型為uint64_t數(shù)組。整型數(shù)組與字符串?dāng)?shù)組示例如下:
attr_foo=[0x01,0x02,0x03,0x04];
attr_bar=["hello","world"];4.預(yù)處理include用于導(dǎo)入其他HCS文件。語法示例如下:其中,文件名必須使用雙引號(hào)(“”),不在同一目錄下需要使用相對(duì)路徑引用。被include文件也必須是合法的HCS文件。若是多個(gè)include,如果存在相同的節(jié)點(diǎn),后者覆蓋前者,其余的節(jié)點(diǎn)依次展開。#include"foo.hcs"
#include"../bar.hcs"HCS配置語法5.注釋注釋支持兩種風(fēng)格:單行注釋和多行注釋。
//comment單行注釋
/*
comment多行注釋
*/6.引用修改引用修改可以實(shí)現(xiàn)修改另外任意一個(gè)節(jié)點(diǎn)的內(nèi)容,語法為:node:&source_nodeHCS配置語法上述語句表示node中的內(nèi)容是對(duì)source_node節(jié)點(diǎn)內(nèi)容的修改。示例如下:
root{
module="test";
foo{
foo_:&root.bar{
attr="foo";
}
foo1:&foo2{
attr=0x2;
}
foo2{
attr=0x1;
}
}
bar{
attr="bar";
}}
root{
module="test";
foo{
foo2{
attr=0x2;
}
}
bar{
attr="foo";
}}最終生成配置樹為:可以看到foo.foo_節(jié)點(diǎn)通過引用將bar.attr屬性的值修改為了"foo",foo.foo1節(jié)點(diǎn)通過引用將foo.foo2.attr屬性的值修改為了0x2。foo.foo_以及foo.foo1節(jié)點(diǎn)表示對(duì)目標(biāo)節(jié)點(diǎn)內(nèi)容的修改,其自身并不會(huì)存在最終生成的配置樹中。HCS配置語法7.節(jié)點(diǎn)復(fù)制節(jié)點(diǎn)復(fù)制可以實(shí)現(xiàn)在節(jié)點(diǎn)定義時(shí)從另一個(gè)節(jié)點(diǎn)先復(fù)制內(nèi)容,用于定義內(nèi)容相似的節(jié)點(diǎn)。語法為:在上述示例中,編譯后bar節(jié)點(diǎn)即包含attr_0屬性也包含attr_1屬性,在bar中對(duì)attr_0的修改不會(huì)影響到foo。在foo和bar在同級(jí)node中可不指定foo的路徑,否則需要使用絕對(duì)路徑引用。上述代碼的最終生成配置樹為:上述語句表示在定義"node"節(jié)點(diǎn)時(shí)將另一個(gè)節(jié)點(diǎn)"source_node"的屬性復(fù)制過來。示例如下:node:source_node
root{
module="test";
foo{
attr_0=0x0;
}
bar:foo{
attr_1=0x1;
}}
root{
module="test";
foo{
attr_0=0x0;
}
bar{
attr_1=0x1;
attr_0=0x0;
}}HCS配置語法8.刪除要對(duì)include導(dǎo)入的base配置樹中不需要的節(jié)點(diǎn)或?qū)傩赃M(jìn)行刪除,可以使用delete關(guān)鍵字。下面的示例中test1.hcs通過include導(dǎo)入了test2.hcs中的配置內(nèi)容,并使用delete刪除了test2.hcs中的attribute2屬性和foo_2節(jié)點(diǎn),示例如下:上述代碼在生成過程中將會(huì)刪除root.foo_2節(jié)點(diǎn)與attr_2,最終生成配置樹為:
//test2.hcs
root{
attr_1=0x1;
attr_2=0x2;
foo_2{
t=0x1;
}
}
//test1.hcs
#include"test2.hcs"
root{
attr_2=delete;
foo_2:delete{
}}
root{
attr_1=0x1;}HCS配置語法9.屬性引用為了在解析配置時(shí)快速定位到關(guān)聯(lián)的節(jié)點(diǎn),可以把節(jié)點(diǎn)作為屬性的右值,通過讀取屬性查找到對(duì)應(yīng)節(jié)點(diǎn)。語法為:示例2如下:上述語句表示attribute的值是一個(gè)節(jié)點(diǎn)node的引用,在解析時(shí)可以用這個(gè)attribute快速定位到node,便于關(guān)聯(lián)和查詢其他node。attribute=&node;
node1{
attributes;
}
node2{
attr_1=&root.node1;}
node2{
node1{
attributes;
}
attr_1=&node1;}示例1如下:HCS配置語法10.模板模板的用途在于生成嚴(yán)格一致的node結(jié)構(gòu),以便對(duì)同類型node進(jìn)行遍歷和管理。使用template關(guān)鍵字定義模板node,子node通過雙冒號(hào)“::”聲明繼承關(guān)系。子節(jié)點(diǎn)可以改寫或新增但不能刪除template中的屬性,子節(jié)點(diǎn)中沒有定義的屬性將使用template中的定義作為默認(rèn)值。
root{
module="test";
templatefoo{
attr_1=0x1;
attr_2=0x2;
}
bar::foo{
}
bar_1::foo{
attr_1=0x2;
}}
root{
module="test";
bar{
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鋼筋工程鋼筋班組勞務(wù)分包
- 國內(nèi)個(gè)人房屋買賣合同范本模板
- 簽證申請(qǐng)英文保證信模板
- 個(gè)人有擔(dān)保貸款抵押合同樣本
- 住宅改商業(yè)的保證
- 購銷合同修改策略
- 志愿者權(quán)利與義務(wù)
- 土豆購銷合同范本
- 中文版和英文版采購合同全文翻譯
- 土木修建勞務(wù)分包協(xié)議
- 四川省綿陽市2024年七年級(jí)上學(xué)期數(shù)學(xué)期末考試試卷【附答案】
- 【公開課】Unit+7+Section+B+project課件-人教版英語七年級(jí)上冊(cè)
- 配位化學(xué)-本科生版知到智慧樹章節(jié)測試課后答案2024年秋蘭州大學(xué)
- 《學(xué)科建設(shè)》課件
- 精神科患者首次風(fēng)險(xiǎn)評(píng)估單
- 2024年度房產(chǎn)交易合同解除及退款條款的詳細(xì)規(guī)定3篇
- 2024年中國高職院校升本分析報(bào)告-軟科職教
- 2024年下半年安徽文都控股集團(tuán)限公司公開招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 二零二四年碼頭岸線使用權(quán)轉(zhuǎn)讓合同
- 臨床輸血技術(shù)規(guī)范培訓(xùn)課件
- 2024年度供應(yīng)商管理培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論