我想用C++編寫一個XML掃描器。我最好喜歡使用正則表達式庫,因爲它會容易得多。使用正則表達式庫在C++中創建詞法分析器?
不過,我有點難倒就如何做到這一點。所以,首先我需要爲語言中的每個標記創建正則表達式。除了令牌的名稱之外,我可以使用映射來存儲這些正則表達式的對。
接下來,我會打開一個輸入文件,並想用一個迭代器通過我的文件中的字符串進行迭代,並將它們匹配到正則表達式。但是,在XML中,您沒有間隔來分隔字符串。
所以我的問題是這種方法甚至可以工作嗎?另外,正則表達式庫會如何滿足我的需求? regex_match足以以一種萬無一失的方式滿足我的需求,使我的掃描儀不被欺騙?
我只是想在我的頭上,以創建進程的框架,這樣我就可以開始這方面的工作。我想從別人那裏得到一些意見,看看我是否正確思考問題。
我會很感激這方面的任何想法。非常感謝!
爲什麼要重新發明輪子? lex/flex已經存在了幾十年,並且已經解決了所有的問題。 –
我正在學習如何做詞法分析。只是爲我生成的代碼不會有所幫助。 –
我同意這樣的工具是有用的,但我想學習如何自己做。 –