Regex,用于从C++代码中提取函数
Regex for extracting functions from C++ code
我有示例C++代码(http://pastebin.com/6q7zs7tc)我必须从中提取函数名称以及函数所需的参数数量。到目前为止,我已经写了这个正则表达式,但它对我来说并不完美
(?![a-z])[^:,>,.]([a-z,A-Z]+[_]*[a-z,A-Z]*)+[(]
使用正则表达式无法可靠地解析C++。
事实上,您不能用弱解析技术来解析它(请参阅为什么不能用LR(1)解析器来解析C++?)。如果您希望从源文件中可靠地提取这些信息,则需要经过时间测试的C++解析器;看见https://stackoverflow.com/a/28825789/120163
如果你不在乎你的提取过程是不稳定的,那么你可以使用正则表达式,也许还可以使用一些额外的技巧。启发式提取的关键问题是匹配各种括号,例如,[…],<…>(这对轮班操作员来说不太管用)和{…}。括号匹配要求您保留一堆可见的括号。在存在宏和预处理器条件的情况下,括号匹配可能会失败。
相关文章:
- C++(.cpp文件和.h文件)拆分代码并添加一个函数,提取 - 这很容易吗?
- 如何创建一个函数来提取向量内部字符串中的字段?
- 如何在将原始指针移动到基类构造函数之前从unique_ptr中提取原始指针
- 是否可以将多个结构作为一个数据包存储在一个函数中,然后传递给其他函数并在那里提取?
- 从.o目标文件中提取函数的原始机器代码?
- 使用C++元编程提取 C 函数的参数("Practical C++ Metaprogramming" 中的示例)
- 如何安全地从粗糙的C++代码中提取函数
- 使用 clang 从 C/C++ 头文件中提取函数声明
- 尝试在 eclipse CDT 中提取函数时"Too many declarations in selection"错误消息
- 制作解析器以提取函数名称、参数、返回类型
- Regex,用于从C++代码中提取函数
- 提取函数指针参数和返回类型
- 带有变量参数的提取函数
- 从 Java 中的 c/c++ 源代码中提取函数名称
- 如何从C++dll中提取函数信息
- R内部:从一个SEXP对象中提取函数指针
- 为什么这个std::map键提取函数需要——std=c++
- Qt Creator重构:提取函数
- 用于 C++ 标头的解析器,用于使用标准 Linux 工具提取函数
- 如何使用 Haskell 从 C++ 头文件中提取函数