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