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.40.tar.gz
(17.9 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.40.tar.gz.
File metadata
- Download URL: parser_ci_ap-0.1.40.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cb00b1416ddbe01347bba7a057de1cef36235b6b8f6882d34246e21bfbfb6da
|
|
| MD5 |
ffbbf71c74274dd71b83bda9b3076e74
|
|
| BLAKE2b-256 |
9ed7c0d00a5b2a7988ab32addb48afbf65f228ed21490b414ae449278c0f1ef8
|
File details
Details for the file parser_ci_ap-0.1.40-py3-none-any.whl.
File metadata
- Download URL: parser_ci_ap-0.1.40-py3-none-any.whl
- Upload date:
- Size: 22.9 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 |
5c797b53bf1f44cb0023262a880c79c5588239776222679dd325f870b158cec6
|
|
| MD5 |
621449cfaa21b28cb1d9ab299f373ced
|
|
| BLAKE2b-256 |
e51388fc8596a46e74751c6900efb3dab5043f1462e90860c0051cb3185d340e
|