О дереве абстрактного синтаксиса
Абстрактное дерево синтаксиса (AST) программы представляет синтаксическую структуру программы. Узлы в AST представляют такие элементы, как операторы и выражения. База данных CodeQL кодирует эти элементы программы и связи между ними с помощью схемы базы данных. Дополнительные сведения о схемах баз данных см . в глоссарии CodeQL в документации по CodeQL.
CodeQL для Visual Studio Code содержит средство просмотра AST. Средство просмотра состоит из представления визуализации графа, позволяющего просматривать AST файла в базе данных CodeQL . Это помогает увидеть, какие классы CodeQL соответствуют тем, какие части исходных файлов соответствуют.
Просмотр абстрактного дерева синтаксиса исходного файла
Note
Если у вас нет соответствующего запроса (обычно printAST.ql
) в рабочей области, CodeQL: просмотр команды AST в следующих шагах не будет работать. Чтобы устранить эту проблему, можно обновить копию репозитория github/codeql
из main
ветви. Если это сделать, кэши запросов могут быть удалены, поэтому следующий запрос может быть медленнее.
-
Откройте представление "Базы данных" в расширении и щелкните правой кнопкой мыши базу данных, которую вы хотите изучить. Нажмите кнопку "Добавить источник базы данных" в рабочую область.
-
Перейдите к исходному файлу базы данных CodeQL в проводник.
-
Запустите CodeQL: просмотрите AST из VS Code Command Palette. При этом выполняется запрос CodeQL (обычно называемый
printAST.ql
) по активному файлу, который может занять несколько секунд. После завершения запроса средство просмотра AST отобразит структуру исходного файла. -
Чтобы просмотреть вложенную структуру исходного файла, щелкните стрелки и разверните узлы.
Вы можете щелкнуть узел в средстве просмотра AST, чтобы перейти к нему в исходном коде. И наоборот, если щелкнуть раздел исходного кода, средство просмотра AST отображает соответствующий узел.