【发布时间】:2013-02-22 00:02:50
【问题描述】:
我正在寻找最简单的方法,如何从 C99 下编写的 c 头文件中确定返回类型、参数和函数名。
这是我的学校项目,必须用 Perl 编写,没有任何库。所以我有几个选择,我可以使用正则表达式,但它不适用于最难的函数,如以下:
int * (* func(int * arg[]))();
返回类型应为“int * (*)()”,参数为“int * []”。
第二种方法是使用语法并对其进行解析,但我认为这不是正确的方法。
我的朋友告诉我一个现有的算法可以做到这一点。但他不记得名字,也不记得在哪里见过他。该算法非常简单。类似的东西:找到第一个结束括号,这个结束括号和第一个匹配的前一个开始括号之间的所有内容都是参数......
有人知道我在找什么吗?
【问题讨论】:
-
这是一个解析问题。为什么你觉得解析不是正确的做法?
-
@JonPrudy:这个头解析器的基本部分可以用正则表达式写得到10/10分。进阶部分可获得1分奖励。所以我认为我不必编写复杂的解析器来获得 1 分。但我可能是错的:D Cong Xu 感谢我正在寻找的算法,但正如我所见,这并不是我所需要的。