Я должен использовать goto в Python. Я нашел entrians goto, но моя реализация Python (CPython 2.7.1 на Mac) не имеет этого модуля, поэтому не кажется быть переносимым. Он должен, по крайней мере, работать во всех реализациях Python, которые поддерживают байт-код CPython (особенно, я забочусь о CPython и PyPy). Тогда есть этот связанный вопрос, и cdjc goto. И те, которые приведены ниже.
Я мог бы запустить и создать байт-код вручную (т.е. написать свой собственный компилятор Python), потому что есть такая инструкция (JUMP_ABSOLUTE и друзья). Но мне интересно, есть ли более простой способ. Возможно ли через inspect вызывать одну инструкцию по байт-коду? Я также подумал о компиляции через Python, а затем автоматически исправил сгенерированный байт-код Python.
Конечно, люди будут спрашивать, почему и не дадут мне полезного ответа, если я не объясню, почему мне действительно это нужно. Короче говоря, мой вариант использования: я переводил C AST в Python AST и компилировал это. Я могу сопоставить каждый логический поток (все циклы и другие вещи) каким-то образом с эквивалентным кодом Python. Все, кроме goto. Связанные проекты: PyCParser (см. interpreter.py), PyCPython, PyLua.
