我正在嘗試編寫應用程序以從專有IDE設計文件中提取屬性和代碼。文件格式看起來像這樣:簡單代碼解析器的設計策略
HEADING
{
SUBHEADING1
{
PropName1 = PropVal1;
PropName2 = PropVal2;
}
SUBHEADING2
{
{ 1 ; PropVal1 ; PropValue2 }
{ 2 ; PropVal1 ; PropValue2 ; OnEvent1=BEGIN
MESSAGE('Hello, World!');
{ block comments are between braces }
//inline comments are after double-slashes
END;
PropVal3 }
{ 1 ; PropVal1 ; PropVal2; PropVal3 }
}
}
我想要做的是提取子標題塊下的內容。在SUBHEADING2的情況下,我還會將每個令牌分隔爲由分號分隔的分隔符。我在統計括號並跟蹤目前所處的子標題方面取得了相當不錯的成績。我遇到的主要問題包括處理代碼註釋。
該語言正好使用塊註釋,這會干擾文件格式中的括號。爲了使它更有趣,它還需要考慮雙斜槓內聯評論,並忽略直到行尾的所有內容。
解決此問題的最佳方法是什麼?我查看了另一篇文章(ANTLR,Doxygen等)中討論的一些編譯器庫,但它們似乎對解決這個特定的解析問題來說是過度的。
爲什麼不使用基於XML的語法? – xport 2010-12-09 02:35:44