Skip to main content

Изучение структуры исходного кода

Средство просмотра AST можно использовать для отображения абстрактного дерева синтаксиса базы данных CodeQL .

О дереве абстрактного синтаксиса

Абстрактное дерево синтаксиса (AST) программы представляет синтаксическую структуру программы. Узлы в AST представляют такие элементы, как операторы и выражения. База данных CodeQL кодирует эти элементы программы и связи между ними с помощью схемы базы данных. Дополнительные сведения о схемах баз данных см . в глоссарии CodeQL в документации по CodeQL.

CodeQL для Visual Studio Code содержит средство просмотра AST. Средство просмотра состоит из представления визуализации графа, позволяющего просматривать AST файла в базе данных CodeQL . Это помогает увидеть, какие классы CodeQL соответствуют тем, какие части исходных файлов соответствуют.

Просмотр абстрактного дерева синтаксиса исходного файла

Примечание. Если у вас нет соответствующего запроса (обычно printAST.ql) в рабочей области, CodeQL: просмотр команды AST в следующих шагах не будет работать. Чтобы устранить эту проблему, можно обновить копию репозитория github/codeql из main ветви. При этом кэши запросов могут быть отключены карта поэтому выполнение следующего запроса может быть медленнее.

  1. Откройте представление "Базы данных" в расширении и щелкните правой кнопкой мыши базу данных, которую вы хотите изучить. Нажмите кнопку "Добавить источник базы данных" в рабочую область.

  2. Перейдите к исходному файлу базы данных CodeQL в проводник.

  3. Запустите CodeQL: просмотрите AST из VS Code Command Palette. При этом выполняется запрос CodeQL (обычно называемый printAST.ql) по активному файлу, который может занять несколько секунд. После зав��ршения запроса средство просмотра AST отобразит структуру исходного файла.

  4. Чтобы просмотреть вложенную структуру исходного файла, щелкните стрелки и разверните узлы.

Вы можете щелкнуть узел в средстве просмотра AST, чтобы перейти к нему в исходном коде. И наоборот, если щелкнуть раздел исходного кода, средство просмотра AST отображает соответствующий узел.