2011-03-20 79 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项目。