2012-08-12 21 views
0

我正要解析許多文件,其中XML文件的精確層次結構和其他文件的精確語法。我想抽象這些文件在「令牌級別」來簡化我的代碼和邏輯。我也需要UTF-8支持。庫在C++中抽象文本解析

有沒有一個庫,或者只是由幾個頭形成的庫,可以在C++中做到這一點?

編輯:

假設我的文件是類似的東西

COLOR=red Language=en 
COLOR=blue Language=se 
COLOR=green Language=fr 

與令牌級別我的意思是,我可以這樣解析後訪問該值:

Object.getValue(color, 1) 

和這應該返回red

+0

你是什麼意思*令牌級別*? – 2012-08-12 18:54:14

+0

@DougRamsey我在第一篇文章中添加了更多信息。 – user827992 2012-08-12 19:00:25

+0

這看起來非常自定義。除非這些文件採用某些已知的標準格式,而這些格式通常會針對應用程序進行解析,否則我無法想象現有的庫已經可以執行此操作。我想你將不得不自己編寫解析代碼。 – 2012-08-12 19:09:48

回答

2

那麼,有boost::spirit,我想可能是你在找什麼。您可以使用它來創建解析輸入的規則。我個人從未使用過它,但聽過好評。希望能幫助到你。

+1

Boost.Spirit是最好的解析器生成器框架。沒有比賽。 – 2012-08-12 19:39:45