Acerca del árbol de sintaxis abstracta
El árbol de sintaxis abstracta (AST) de un programa representa la estructura sintáctica del programa. Los nodos del AST representan elementos como instrucciones y expresiones. Una base de datos de CodeQL codifica estos elementos de programa y las relaciones entre ellos a través de un esquema de base de datos. Para obtener más información sobre los esquemas de bases de datos, consulte el glosario de CodeQL en la documentación de CodeQL.
CodeQL para Visual Studio Code contiene un visor de AST. El visor consta de una vista de visualización de gráficos que le permite explorar el AST de un archivo en una base de datos de CodeQL. Esto le ayuda a ver qué clases de CodeQL corresponden a las partes de los archivos de origen.
Visualización del árbol de sintaxis abstracta de un archivo de origen
Nota: Si no tiene una consulta adecuada (normalmente printAST.ql
) en el área de trabajo, el comando CodeQL: Ver AST en los pasos siguientes no funcionará. Para corregirlo, puede actualizar la copia del repositorio github/codeql
desde la rama main
. Si lo hace, es posible que se descarten las memorias caché de consultas, por lo que las siguientes ejecuciones de consulta pueden ser más lentas.
-
Abra la vista “Bases de datos” en la extensión y haga clic con el botón derecho en la base de datos que desea explorar. Haga clic en Agregar origen de base de datos al área de trabajo.
-
Vaya al archivo de origen de una base de datos de CodeQL en el Explorador de archivos.
-
Ejecute CodeQL: Ver AST desde VS Code Command Palette. Esto ejecuta una consulta de CodeQL (normalmente denominada
printAST.ql
) en el archivo activo, lo que puede tardar unos segundos. Una vez completada la consulta, el visor de AST mostrará la estructura del archivo de origen. -
Para ver la estructura anidada del archivo de origen, haga clic en las flechas y expanda los nodos.
Puede hacer clic en un nodo en el visor de AST para ir a él en el código fuente. Por el contrario, si hace clic en una sección del código fuente, el visor de AST muestra el nodo correspondiente.