Я должен использовать 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.