Ада-эквивалент метода Python dir () - PullRequest
0 голосов
/ 08 июня 2018

Есть ли способ увидеть атрибуты типа в Аде?Я пока не смог ничего найти.Я хотел бы иметь возможность передавать тип в обобщенную функцию с некоторым соответствующим XML и анализировать один другой без написания специальной функции для каждой записи.Очевидно, мне нужно будет сказать парсеру, как делать базовые типы, но я хочу, чтобы композиты обрабатывались автоматически.* * * * * Метод Python dir() - это то, что я бы использовал в Python, если бы делал это с нуля, так есть ли лучший способ сделать это полностью или в Ada есть эквивалент dir()?

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Ада не имеет средств метапрограммирования и не имеет отражения (как это делается в Java / C #).Поскольку система типов в основном существует только во время компиляции, вы не можете запрашивать много информации во время выполнения и, конечно, не ту информацию, которая вам нужна.Вы не можете просто сделать это с помощью универсальной функции.

Лучше всего, вероятно, сгенерировать код Ada из схемы XML или (если типы Ada определяют структуру XML) использовать ASIS или libadalang для генерации кода синтаксического анализаиз Ада типов "АСТ.Обратите внимание, что это довольно сложно, и я бы не советовал, если вы не знакомы с обработкой AST.Если возможно написать схему XML, я бы лучше использовал эту схему для генерации типов Ada и соответствующего кода загрузки.

0 голосов
/ 08 июня 2018
...