我正在使用token_get_all()对php项目进行一些静态分析。
如何找到以下内容的范围级别:
我应该保留“{”和“}”字符的数量吗?这是一种安全的方法吗?
答案 0 :(得分:2)
token_get_all()
正是包裹所说的:它是一个标记器。
这意味着您必须通过跟踪开合括号来自己跟踪范围;我能想到的最简单的方法是建立一个recursive descent parser。
顺便说一句,解析错误已经由此函数处理。
答案 1 :(得分:1)
您可能最好使用解析器来构建语法树,否则边缘情况将变得非常复杂(PHP是一种非常棘手的语言,可以嵌入其他语言)。
快速谷歌提出:PHP-Parser
使用语法树,您可以更轻松地识别函数或变量的范围,但仍需要进行一些分析。