Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

izo0x90/Adding-GOTO-statement-to-Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

12 Commits

Repository files navigation

Adding GOTO statement into Python

GOTO Considered harmful by Edgar Dijkstra

"Your scientists were so preoccupied with whether or not they could, they didn't stop to think if they should." - That JURASSIC PARK guy

You guys remember basic.

Just what it sounds like, a decorator that patches the bytecode of a decorated function to allow variable assignments to specific string constants to be treated as GOTO/JUMP statements and LABELS to jump to.

Just in case it needs to be said, yes this is a joke and has no actual uses, nor should anyone use it for anything real other than having fun.

All relevant code in main.py.

Use:

@goto_mutator # << Decorate func you want to patch GOTOs into with mutator
some_func():
pass # << Do regular stuff
pass
pass
x = "#GOTO_mylabel" # << This is the goto statement, var name does not matter,
# statement has to be a string const,
# starting with keyword #GOTO_ after that label name
pass
pass
pass # << Do more regular stuff, of course after patching
# the goto statemet will skip right over this secion

x = "#GOTOLABEL_mylabel" # << This is the LABEL we will that will be jumped to
pass
pass # << Keep doing stuff

You should be able to define as many jumps and labels as desired, mutator will build a map and patch in jumps.

Live REPL demo here: https://replit.com/@HristoGueorguie/Adding-GOTO-statement-to-Python-cue-eveil-laughter.


Links to refs:

https://rushter.com/blog/python-bytecode-patch/ - Patching bytecode article by Artem Golubin

https://www.aosabook.org/en/500L/a-python-interpreter-written-in-python.html - Python Interpreter in Python article by Allison Kaptur

About

Just what it sounds like, decorator that patches function bytecode to allow GOTO's *ROFL* As part of what I call the "How it's made - Software edition"

Topics

Resources

Readme

License

GPL-3.0 license

Stars

Watchers

Forks

Contributors

Languages