About the abstract syntax tree
The abstract syntax tree (AST) of a program represents the program's syntactic structure. Nodes on the AST represent elements such as statements and expressions. A CodeQL database encodes these program elements and the relationships between them through a database schema. For more information about database schemas, see CodeQL glossary in the CodeQL documentation.
CodeQL for Visual Studio Code contains an AST viewer. The viewer consists of a graph visualization view that lets you explore the AST of a file in a CodeQL database. This helps you see which CodeQL classes correspond to which parts of your source files.
Viewing the abstract syntax tree of a source file
Note: If you don't have an appropriate query (usually printAST.ql
) in your workspace, the CodeQL: View AST command in the following steps won't work. To fix this, you can update your copy of the github/codeql
repository from the main
branch. If you do this, query caches may be discarded, so your next query runs may be slower.
-
Open the "Databases" view in the extension, and right-click the database that you want to explore. Click Add Database Source to Workspace.
-
Navigate to a CodeQL database's source file in the File Explorer.
-
Run CodeQL: View AST from the VS Code Command Palette. This runs a CodeQL query (usually called
printAST.ql
) over the active file, which may take a few seconds. Once the query is complete, the AST viewer will display the structure of the source file. -
To see the nested structure of the source file, click the arrows and expand the nodes.
You can click a node in the AST viewer to jump to it in the source code. Conversely, if you click a section of the source code, the AST viewer displays the corresponding node.