Проверка типов для текстовых моделейPython

Программы на Python
Anonymous
Проверка типов для текстовых моделей

Сообщение Anonymous »

Я тестирую прототип языка, используя модуль textx для Python, который может интерпретировать грамматики.
Я создаю такую ​​модель:

Код: Выделить всё

from textx import metamodel_from_str

funl_grammar = """
Model: statement *= Statement;

Statement: FunctionDefinition | Function;

FunctionDefinition: name=ID '=' function=Function;
Function: name=ID '(' params*=Param (',' params*=Param)* ')';

Param: Function | INT | ID | STRING;
Comment: /#.*$/;
ID: /[a-zA-Z_][a-zA-Z0-9_]*/;
INT: /[0-9]+/;
STRING: /".*"/;
"""

mm = metamodel_from_str(funl_grammar)
Теперь мой вопрос: как я могу проверить тип с помощью mypy?
Если я создам подобную функцию, где я хочу быть уверен, что параметр является частью моей грамматики, и textx считает его параметром:

Код: Выделить всё

def my_func(param: mm["Param"]):
...
Я получаю сообщение об ошибке mypy: имя «Param» не определено [имя определено].
Знаете ли вы, как Я мог бы это исправить? Поиск в Google и ChatGPT пока не помог.

Подробнее здесь: https://stackoverflow.com/questions/788 ... xtx-models

Вернуться в «Python»