是否有任何可用的库可以标记用不同编程语言(java/C/C++)编写的源代码?(可以识别其中的一部分,例如函数的开始和结束,它们是标识符)。我不想解析源代码,这可能过于复杂。此外,源代码可能不是没有错误的。提前致谢。
问问题
3452 次
2 回答
3
您可以使用flex(在 C 下)或 JLex(在 Java 下)之类的词法分析器(或简称词法分析器)对源代码进行标记。获取语法以标记 Java、C 和 C++ 的最简单方法可能是使用(根据许可条款)来自开源编译器的代码,使用您最喜欢的词法分析器。即使您发现许可条件过于繁琐,它们也应该具有教育意义...
但是,如果不进行解析,您仍然无法识别函数的开头和结尾。
于 2012-04-26T00:27:55.437 回答
2
并非在所有情况下。例如,考虑在存在typedef
;的情况下解析 C 或 C++ 代码是如何变化的。最初是标识符的标记随后必须被识别为类型名,如果不这样做,那么您将无法正确识别使用typedef
. 某些语言允许您定义任意运算符(新标记)。有些只是病态的(尝试设计一个 Perl 解析器,或带有损坏的大括号插入规则的 Haskell '98)。
于 2012-04-26T00:25:08.737 回答