pypawn-annotations
Project description
pypawn-annotation
Python библиотека, реализует автоматическую аннотацию для функций из языка программирования pawn.
- Установка последней версии модуля
pip install pypawn-annotations
- Пример использования модуля. Аннотация к native функции:
import pypawn_annotations
function = pypawn_annotations.PawnFunction(
string="native bool: function(const iUser, const str: szLogin[32], const str: szPassword[32]);"
)
annotation = pypawn_annotations.Annotation(
function=function, description=f'Description: this function authorizes the user'
)
print(annotation.show())
- Результат выполнения кода
/*
* Description: function
*
* @param const int:iUser iUser
* @param const str:szLogin[32] szLogin[32]
* @param const str:szPassword[32] szPassword[32]
* @return bool:
*/
Структура объекта PawnFunction
- Модуль использует регулярные выражения для поиска групп.
-
Title: string - ключевое слово, обозначающее что строка является функцией (native, forward, func)
-
General tag: tuple - основной тэг функции, который содержит в себе два элемента:
-
enum объект класса AnnotationTags
-
название тэга
-
-
Name: string - имя функции
-
Args: list[dict] - массив словарей каждый из которых содержит в себе четыре ключа:
-
qualifier: tuple - квалификатор, enum объект класса AnnotationQualifier
-
tag: tuple - работает по принципу general tag
-
name: string - имя аргумента
-
- Вывод в консоль. Cтруктура объекта PawnFunction:
[0] string: native bool: function(const iUser, const str: szLogin[32], const str: szPassword[32]);
[1] title: native
[2] general_tag: (<AnnotationTags.TAG_CUSTOM: 4>, 'bool:')
[3] name: function
[4] args: [{'qualifier': <AnnotationQualifier.QUALIFIER_CONST: 1>, 'tag': (<AnnotationTags.TAG_INT: 0>, 'int'), 'name': 'iUser', 'description': 'iUser'}, {'qualifier': <AnnotationQualifier.QUALIFIER_CONST: 1>, 'tag': (<AnnotationTags.TAG_STR: 2>, 'str'), 'name': 'szLogin[32]', 'description': 'szLogin[32]'}, {'qualifier': <AnnotationQualifier.QUALIFIER_CONST: 1>, 'tag': (<AnnotationTags.TAG_STR: 2>, 'str'), 'name': 'szPassword[32]', 'description': 'szPassword[32]'}]
[5] is_title_tag_function: False
[6] is_title_tag_forward: False
[7] is_title_tag_native: True
[8] flags: 15
- Базовые параметры функций:
functions: tuple = (
"native global_tag: function_name(tag: name = value)",
"forward global_tag: function_name(tag: name = value)",
"func global_tag: function_name(tag: name = value)"
"native global_tag: function_name(const tag: name = value)",
"forward global_tag: function_name(const tag: name = value)",
"func global_tag: function_name(const tag: name = value)"
)
- Поддержка Венгерской нотации об именовании переменных, для автоматического определения тегов
functions: tuple = (
"func global_tag: function_name(iHungarianNotation = value)",
"func global_tag: function_name(flHungarianNotation = value)",
"func global_tag: function_name(szHungarianNotation = value)",
"func global_tag: function_name(bHungarianNotation = value)"
)
Больше примеров здесь:
https://github.com/bonkibon-education/pypawn-annotations-examples
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
File details
Details for the file pypawn_annotations-1.0.0.2.tar.gz
.
File metadata
- Download URL: pypawn_annotations-1.0.0.2.tar.gz
- Upload date:
- Size: 19.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13d37c5ef3a63f2e04b847747d3be43f16ea46a6b4f4d80c303dae26fbc6dfc7 |
|
MD5 | 3487b50894069753ef9b69293ee4a965 |
|
BLAKE2b-256 | 66df69866d9edb2ffd0d0ed5eab7d3f0a681c15ab14e088e1985b3ebba1b3d3c |