对C语言的反思?

Eas*_*onk 5 c reflection verification parsing abstract-syntax-tree

在脱离背景阅读时,问题标题可能会产生误导.让我先解释一下我想要建立什么.

我正在构建一个脚本,它将需要我的学生编写的100个非常简单的C程序,并检查一些非常基本的属性,如.

  1. 他们是否声明了一个名为'x'的变量,它的类型是'int',依此类推.
  2. 变量'z'的值是多少?

如果这是某种脚本编程语言,那可能会容易得多.我可以简单地使用include或eval然后完成检查.

但是当谈到C编程时,我会说这很难.我该怎么做 ?

Kei*_*las 2

您可以使用 ANTLR 来执行此操作。已经有一个可以与 ANTLR 一起使用的 C 语法,因此您所要做的主要是将代码传递到 antlr,然后遍历语法树寻找各种属性......

您可以使用多种语言的 ANTLR。虽然一开始可能看起来令人畏惧。它实际上非常容易使用。