0
我想在我正在做的一個格式化程序的C++解析器。如何解決一個C++解析器
你很明顯可以打開一個文件並使用getline(..)或get(),這是合理的方式來啓動事物,然後使用向量數組來創建一個系統,從而創建數組的負載並以某種方式構造出從那裏處理你正在做的事情。例如,假設我想在一個源文件中找到函數,所有函數都有相同的語法,「(){」一旦刪除了空格,那麼您只需查找常用的定界符來將這些部分解析爲數組。我想我會隨着學習而學習。
或者我還假設有這樣做的嘗試和測試方法,我想可能就像他們說的那樣重新發明輪子。
雖然C是一種簡單的語言來解析,但它的後代C++是一個完全不同的故事。以符合標準的方式正確解析C++代碼非常困難。如果你沒有解析和編譯器理論/實踐方面的經驗,那將非常困難。 –
而不是自己編寫一個C++解析器(這可能是一個非常艱鉅的任務),我建議使用一個已有的解析器(例如Clang/LLVM),它允許您提供插件。 –
這是一個非常複雜的任務。如果你想了解它是如何完成的,你應該看看叮噹聲。 Clang的架構由小型庫組成,如果你想解析一些C++,你可以使用它。 –