2011-03-20 77 views
3

我的目標是製作一個非常簡單和基本的C語法檢查器。 (不是一個完整的編譯器,而只是一個基本程序,它將源代碼作爲輸入並打印出顯示錯誤的代碼)。我想用C++作爲它的語言。詞法分析

任何人都可以指導我寫的 'C++' 語言正則表達式如下:

  1. 分配
  2. 對於
  3. 開關

任何細節/建議/指導進一步將非常感謝。

+2

^^對不起。那是什麼? – Sadique 2011-03-20 09:25:23

+1

請注意,詞法和句法分析是非常不同的事情。詞法分析(掃描)將輸入劃分爲標記,句法分析(解析)使這些標記之外的語法樹成爲可能。 – ninjalj 2011-03-20 12:21:11

回答

3

檢查的C代碼的語法要求比正則表達式多了不少。你需要一個工具,它支持解析代數gammars相反,我建議在看http://www.gnu.org/software/bison/這將產生一個解析器的「骨架」,在C++這樣你就可以編輯和添加你的語法檢查代碼。

2

使用clang庫。教程可以在GitHub找到。

0

要承認C語句,詞法分析是不夠的,因爲在詞法分析器人物等級工作。除C語法分析器外,您還需要一個C語法分析器,它將對源代碼進行語法分析。 LRSTAR Parser Generator提供了一個C項目,它可以啓動並運行,但不會處理預處理器代碼(#include,#ifdef等)。 LRSTAR使用C++生成詞法分析器和解析器,它是免費且開源的;如果使用GCC進行編譯,則可以在Windows,Linux,Mac OS X和其他平臺上運行。包括一個用於C語言處理的MS Visual Studio項目。