词汇分析

时间:2011-03-20 09:22:52

标签: c++ c regex visual-c++ compiler-construction

我的目标是制作一个非常简单的基本C语法检查程序。 (不是一个完整的编译器,而只是一个基本程序,它将源代码作为输入,并打印出显示错误的代码)。我想用C ++作为语言。

任何人都可以指导我用'c ++'语言编写正则表达式:

  1. 分配
  2. 对于
  3. 开关
  4. 进一步的任何细节/建议/指导将非常感激。

5 个答案:

答案 0 :(得分:6)

我认为你不能单独用正则表达式解析C。你需要开始研究词法分析器,解析器,语法等......

一个很好的起点可能是:Quick Starter on Parser Grammars - No Past Experience Required

您可以在线查找C / yacc的{​​{1}}语法。

答案 1 :(得分:3)

检查C代码的语法需要的不仅仅是正则表达式。您需要一个支持解析代数伽玛的工具,我建议查看http://www.gnu.org/software/bison/,它将在C ++中生成解析器的“骨架”,以便您可以编辑它并添加语法检查代码。 / p>

答案 2 :(得分:2)

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

答案 3 :(得分:1)

尝试boost spirit

答案 4 :(得分:0)

要识别C语句,词法分析是不够的,因为词法分析器在角色级别工作。除了C词法分析器之外,你需要的是一个C语法分析器,它将对源代码进行语法分析。 LRSTAR Parser Generator提供了一个C项目,可以让您启动并运行。

相关问题