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.38.tar.gz
(17.5 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.38.tar.gz.
File metadata
- Download URL: parser_ci_ap-0.1.38.tar.gz
- Upload date:
- Size: 17.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1b75894a2a4bc80f3c82aa2ff89aa1b85d1706c8229323f027cb7cb74d35bfe
|
|
| MD5 |
df2b1208590065eb6bd328a69c46a63a
|
|
| BLAKE2b-256 |
6faa43d46b68364fea24002e676015a76e2881a510766cb04ec6040f2a4f0fa4
|
File details
Details for the file parser_ci_ap-0.1.38-py3-none-any.whl.
File metadata
- Download URL: parser_ci_ap-0.1.38-py3-none-any.whl
- Upload date:
- Size: 22.2 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 |
96a9ef4ec20b3324b33173b3ea2bac976b478c384b9c881cc60b1cdedf79a5db
|
|
| MD5 |
c4655df396fe082866b328e5bf903f51
|
|
| BLAKE2b-256 |
bde7a763dc925ec27ceab2c0e3ad673b058526b946c69c419adec4f1d344cbd4
|