关于抽象语法树
程序的抽象语法树 (AST) 表示程序的语法结构。 AST 上的节点表示元素,例如语句和表达式。 CodeQL 数据库通过数据库架构对这些程序元素以及它们之间的关系进行编码。 有关数据库架构的详细信息,请参阅 CodeQL 文档中的“CodeQL 术语表”。
适用于 Visual Studio Code 的 CodeQL 包含 AST 查看器。 查看器包含一个图形可视化视图,可用于浏览 CodeQL 数据库中文件的 AST。 这有助于查看哪些 CodeQL 类对应于源文件的哪些部分。
查看源文件的抽象语法树
注意: 如果你的工作区中没有相应的查询(通常为 printAST.ql
),则以下步骤中的 CodeQL: View AST 命令将不起作用。 若要解决此问题,可以从 main
分支更新存储库 github/codeql
的副本。 如果执行此操作,查询缓存可能被丢弃,因此下一个查询的运行速度可能会变慢。
-
在扩展中打开“数据库”视图,然后右键单击要浏览的数据库。 单击“将数据库源添加到工作区”。
-
在文件资源管理器中导航到 CodeQL 数据库的源文件。
-
从 VS Code Command Palette 运行 CodeQL: View AST。 这会对活动文件运行 CodeQL 查询(通常称为
printAST.ql
),这可能需要几秒钟时间。 查询完成后,AST 查看器将显示源文件的结构。 -
若要查看源文件的嵌套结构,请单击箭头并展开节点。
可以单击 AST 查看器中的节点,在源代码中跳转到该节点。 相反,如果单击源代码的某个部分,AST 查看器将显示对应的节点。