Skip to main content

Explorar a estrutura do seu código-fonte

Você pode usar o visualizador da AST para exibir a árvore de sintaxe abstrata de um banco de dados do CodeQL.

Sobre a árvore de sintaxe abstrata

A árvore de sintaxe abstrata (AST) de um programa representa a estrutura sintática do programa. Os nós na AST representam elementos como instruções e expressões. Um banco de dados do CodeQL codifica esses elementos de programa e as relações entre eles por meio de um esquema de banco de dados. Para obter mais informações sobre esquemas de bancos de dados, confira o glossário do CodeQL na documentação do CodeQL.

O CodeQL para Visual Studio Code contém um visualizador da AST. O visualizador consiste em um modo de exibição de visualização gráfica que permite explorar a AST de um arquivo em um banco de dados do CodeQL. Isso ajuda a ver quais classes do CodeQL correspondem a quais partes dos arquivos de origem.

Exibir a árvore de sintaxe abstrata de um arquivo de origem

Note

Se você não tiver uma consulta apropriada (geralmente, printAST.ql) em seu espaço de trabalho, o comando CodeQL: View AST nas etapas a seguir não funcionará. Para corrigir esse problema, você pode atualizar sua cópia do repositório github/codeql do branch main. Se você fizer isso, os caches de consulta poderão ser descartados, dessa forma, a próxima execução da consulta poderá ser mais lenta.

  1. Abra o modo de exibição "Bancos de Dados" na extensão e clique com o botão direito do mouse no banco de dados que você deseja explorar. Clique em Adicionar Origem do Banco de Dados ao Espaço de Trabalho.

  2. Navegue até um arquivo de origem do banco de dados do CodeQL no Explorador de Arquivos.

  3. Execute CodeQL: View AST no VS Code Command Palette. Isso executa uma consulta do CodeQL (geralmente denominada printAST.ql) no arquivo ativo, o que pode levar alguns segundos. Quando a consulta estiver concluída, o visualizador da AST exibirá a estrutura do arquivo de origem.

  4. Para ver a estrutura aninhada do arquivo de origem, clique nas setas e expanda os nós.

Você pode clicar em um nó no visualizador da AST para ir até ele no código-fonte. Por outro lado, se você clicar em uma seção do código-fonte, o visualizador da AST exibirá o nó correspondente.