C code parser based on Clang
Project description
Parser CI — C Parser на базе Clang
Инструмент для анализа C-проектов. Работает на базе libclang. Извлекает полезную информацию из исходников: функции, переменные, типы, макросы и контекст.
Возможности
🔧 На уровне проекта:
- Перечислить все пользовательские типы данных (структуры, перечисления, typedef и т.д.)
- Перечислить все файлы проекта
- Подсчитать количество строк (всего / без комментариев / только функциональных)
- Перечислить все define-ы (макросы)
- Перечислить все глобальные, static и extern переменные
- Перечислить все функции (глобальные и static отдельно)
- Разделить define-ы на системные и пользовательские
📄 На уровне файла:
- Перечислить все функции в файле
- Перечислить все зависимости (#include)
- Все переменные (глобальные, static, extern)
- Все define-ы
- Все пользовательские типы
- Подсчёт строк (всего / только функциональных)
- Диагностика кода (clang diagnostics)
🔁 На уровне функции:
- Аргументы и локальные переменные
- Имя, шапка, возвращаемый тип и значение
- Используемые глобальные переменные
- Вызовы других функций
- Кол-во строк кода
- Извлечение контекста для изолированной компиляции
Установка
pip install parser-ci-AP
Пример использования
from parser_ci import Project
project = Project(Path(r"\path\to\c\project"))
for f in pr.global_functions:
print(f.name)
Структура проекта
parser-ci/
├── parser_ci_AP/
│ ├── __init__.py
│ ├── define_info.py
│ ├── errors_info.py
│ ├── function_info.py
│ ├── logger.py
│ ├── project.py
│ ├── project_file.py
│ ├── type_info.py
│ └── variable_info.py
├── README.md
├── setup.py
├── LICENSE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
parser_ci_ap-0.1.27.tar.gz
(17.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file parser_ci_ap-0.1.27.tar.gz.
File metadata
- Download URL: parser_ci_ap-0.1.27.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8a3657f52e0af343548e91b506bee9a2801617962cd7d8cd8f38ce578de1eba
|
|
| MD5 |
7694e3a00eac1da072608fb78ea60061
|
|
| BLAKE2b-256 |
a1dabdbcd04b0690496814977515b12f20904afc4ee5c9eca0761ce9815ff464
|
File details
Details for the file parser_ci_ap-0.1.27-py3-none-any.whl.
File metadata
- Download URL: parser_ci_ap-0.1.27-py3-none-any.whl
- Upload date:
- Size: 21.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
025f6121f9713b81688329237ab898f7c33f55cdd3af7b1aef95c5a23d81b532
|
|
| MD5 |
0a3757f0a718e87938b6c0f04e49e429
|
|
| BLAKE2b-256 |
9f8cc13d6c8180a2535d4f9fc62b7c354b629fa21ce87e0b38df809d70262792
|