我想用flex和bison編寫解析器,但是我對它的工作原理感到困惑。我試圖採取下列方式格式化的文本文件:在野牛上處理羣體
Version Header Version 1.00 <--- File always starts with a header
Key : Value <--- Each section includes these but these after the version header are in the "Root" section
==Section Name <--- A section
$Key : Value <--- These are properties
Key : Value <--- Same thing as in the "Root" section
樣本格式:
NasuTek Licensing Version 1.00
Vendor : NASUTEKENTERPRISES
Notice : NasuTek Enterprises
License Group : NasuTek Asheila
License Name : NasuTek Asheila
Vendor Notice : NasuTek Asheila Internal Build License
Serial : ASHEL-87267-4987-3737-37821:32742
Start Date : Wed July 04 00:00:00 2012
End Date : Sat July 20 00:00:00 2013
Trial : Yes
Count : 0
Components : EXPORT
Host : Any
==Software Configuration
$Signed Section : Yes
Export Configuration : {
Supports Export to XML : Yes
Supports Export to Text : Yes
}
==Signature
vpUsQJ+Qo4OS+RQg0vuLW0mXjAj/o6v[trunicated]
我怎樣才能做到這一點是我在分組困惑。我可以得到它看到密鑰對,因爲這很簡單,但我不知道如何處理分裂使用==和{}對?
你在解析? – iammilind 2012-07-15 04:49:29
你真的需要使用完整的解析器嗎?它看起來像你的輸入格式非常簡單,你可以逐行閱讀並根據需要生成輸出。 – 2012-07-15 04:51:45
它是我正在編寫的應用程序的一種配置文件。 「==」是部分拆分,任何不在部分中的版本頭部將進入根部分。 – DrHouse 2012-07-15 04:52:35