В настоящее время я работаю над экспериментом, в котором я использую интерпретатор для старого языка сценариев в игре. Это четвертый язык, поэтому я полагаю, что было бы просто просто иметь инструкции (после проверки и сантирования) в большой список.Как вызвать функцию, основанную на записи списка?
Как только у меня есть код в списке, я пытаюсь выполнить итерацию всей программы в цикле for, которая обрабатывает инструкции по одному. Некоторые элементы, такие как строки, могут быть помещены в переменную, которая содержит текущий стек, что достаточно просто. Но там, где я застрял, происходит выполнение команд.
У меня есть большой список функций, которые являются действительными, и я хотел бы, чтобы он был там, где если какая-либо команда соответствует им, он вызывает связанную функцию.
Так, например, если бы я был:
"Hello, world!" notify
... код будет проверять уведомит в списке, а затем выполнить функцию уведомления. Суть в следующем: как преобразовать строку в имя функции?
Итак, вы хотите «Привет, мир!». notify' вести себя как 'notify (« Hello, world! »)'? –
Ну, это на самом деле вызовет функцию уведомления, которая возьмет переменную стека и вытащит необходимые элементы для уведомления, но более или менее да. – Kelketek
Я не знаком с использованием регулярных выражений в Python, но похоже, что вам нужно будет сопоставить строку со всем в кавычках (исключительно) и убедитесь, что вы проверяете экранированные кавычки. Затем вы будете использовать группу захвата, чтобы определить, какую функцию вызывать. Анализ всегда может быть громоздким. –