{ "info": { "author": "Awes Mubarak", "author_email": "contact@awesmubarak.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development" ], "description": "==========\nBrainfoose\n==========\n\nA brainfuck REPL.\n\nInstallation\n------------\n\nPypi (recommended):\n\n``sudo pip3 install brainfoose``\n\nManual installation using git master:\n\n``git clone https://github.com/abactel/brainfoose``\n\n``cd brainfoose``\n\n``pip install -r requirements.txt``\n\n``sudo setup.py install``\n\nUsage\n-----\n\nUsage:\n ``brainfoose [--run_command=]``\n\n ``brainfoose [--tape_size=]``\n\n ``brainfoose [--verify_program=]``\n\n ``brainfoose (-h | --help)``\n\n ``brainfoose --version``\n\nOptions:\n -h, --help Show this message\n --version Show version information\n --run Run a command without starting a REPL\n --tape_size= Set size of tape [default: 3000]\n\nThe syntax of the language is as follows:\n\n+--------+----------------------------------------------------------------------+\n| Token | Meaning |\n+========+======================================================================+\n| ``?`` | Print a help screen |\n+--------+----------------------------------------------------------------------+\n| ``>`` | Increment the data pointer by 1. |\n+--------+----------------------------------------------------------------------+\n| ``<`` | Decrement the data pointer by 1. |\n+--------+----------------------------------------------------------------------+\n| ``+`` | Increment the value at the data pointer by 1. |\n+--------+----------------------------------------------------------------------+\n| ``-`` | Decrement the value at the data pointer by 1. |\n+--------+----------------------------------------------------------------------+\n| ``.`` | Output the byte at the data pointer. The byte is formatted to the |\n| | character it represents. |\n+--------+----------------------------------------------------------------------+\n| ``,`` | Store a value at the data pointer\u2019s position. The character is |\n| | as a decimal byte representing the character. The character is |\n| | accepted form a standard input prompt. |\n+--------+----------------------------------------------------------------------+\n| ``[`` | If the value at the data pointer is 0, move to matching ``]``. |\n+--------+----------------------------------------------------------------------+\n| ``]`` | If the value at the data pointer is not 0, move to matching ``[``. |\n+--------+----------------------------------------------------------------------+\n| ``$`` | Display tape up to last non-zero cell. |\n+--------+----------------------------------------------------------------------+\n| ``&`` | Reset tape. |\n+--------+----------------------------------------------------------------------+\n| ``%`` | Load program from file, syntax: ``%[filename]``. |\n+--------+----------------------------------------------------------------------+\n\nThe wikipedia page on brainfuck includes the following tutorial:\n::\n\n [ This program prints \"Hello World!\" and a newline to the screen, its\n length is 106 active command characters. [It is not the shortest.]\n\n This loop is an \"initial comment loop\", a simple way of adding a comment\n to a BF program such that you don't have to worry about any command\n characters. Any \".\", \",\", \"+\", \"-\", \"<\" and \">\" characters are simply\n ignored, the \"[\" and \"]\" characters just have to be balanced. This\n loop and the commands it contains are ignored because the current cell\n defaults to a value of 0; the 0 value causes this loop to be skipped.\n ]\n ++++++++ Set Cell #0 to 8\n [\n >++++ Add 4 to Cell #1; this will always set Cell #1 to 4\n [ as the cell will be cleared by the loop\n >++ Add 2 to Cell #2\n >+++ Add 3 to Cell #3\n >+++ Add 3 to Cell #4\n >+ Add 1 to Cell #5\n <<<<- Decrement the loop counter in Cell #1\n ] Loop till Cell #1 is zero; number of iterations is 4\n >+ Add 1 to Cell #2\n >+ Add 1 to Cell #3\n >- Subtract 1 from Cell #4\n >>+ Add 1 to Cell #6\n [<] Move back to the first zero cell you find; this will\n be Cell #1 which was cleared by the previous loop\n <- Decrement the loop Counter in Cell #0\n ] Loop till Cell #0 is zero; number of iterations is 8\n\n The result of this is:\n Cell No : 0 1 2 3 4s\n\n\nFurther reading\n---------------\n\n- https://learnxinyminutes.com/docs/brainfuck/\n- https://en.wikipedia.org/wiki/Brainfuck\n- http://blog.klipse.tech/brainfuck/2016/12/17/brainfuck.html\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/awesmubarak/brainfoose", "keywords": "brainfuck esoteric programming language repl", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "brainfoose", "package_url": "https://pypi.org/project/brainfoose/", "platform": "", "project_url": "https://pypi.org/project/brainfoose/", "project_urls": { "Homepage": "https://github.com/awesmubarak/brainfoose" }, "release_url": "https://pypi.org/project/brainfoose/2.0.3/", "requires_dist": [ "docopt", "termcolor" ], "requires_python": "", "summary": "A brainfuck REPL.", "version": "2.0.3" }, "last_serial": 5856731, "releases": { "2.0.1": [ { "comment_text": "", "digests": { "md5": "99bb7c96a17182db3e328eabcb214297", "sha256": "593b30ba064aea1f807f0a165e5554d80a7ecc96f0d8cfbf700e5714e5c58105" }, "downloads": -1, "filename": "brainfoose-2.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "99bb7c96a17182db3e328eabcb214297", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7416, "upload_time": "2017-11-12T09:36:53", "url": "https://files.pythonhosted.org/packages/62/74/5588e8970d22c959332a434bc081529e64385d453b6da374234b0a8e2033/brainfoose-2.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66f9b92ef9fe098c2a879cb630119dd3", "sha256": "6335e0f23cb020f08d61c5e740cbeeca11891e9aaa1d88e4e31dfa3ef93dac4a" }, "downloads": -1, "filename": "brainfoose-2.0.1.tar.gz", "has_sig": true, "md5_digest": "66f9b92ef9fe098c2a879cb630119dd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5501, "upload_time": "2017-11-12T09:36:55", "url": "https://files.pythonhosted.org/packages/a6/f0/f32fac6c36c9e0f4111079767cedcf62bd21800b7808ee64d2fe2d723a33/brainfoose-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "49d9dd2c8843f68322661d3a409ee5dd", "sha256": "0dd783764c01149a2801f52e2ed4ef30b391cd538d4213ee6c65432e442b3547" }, "downloads": -1, "filename": "brainfoose-2.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "49d9dd2c8843f68322661d3a409ee5dd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7451, "upload_time": "2018-09-15T19:49:34", "url": "https://files.pythonhosted.org/packages/4a/3a/9210e0db8fe311f1085620bca6082dd389d21f03551a4bda8b0831886649/brainfoose-2.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fd5a15380385b7cbb6f94c38c61cf490", "sha256": "a5719337aa3094379a56003ecfd34d393993a66b3364414d3058c3f68b5762c0" }, "downloads": -1, "filename": "brainfoose-2.0.2.tar.gz", "has_sig": true, "md5_digest": "fd5a15380385b7cbb6f94c38c61cf490", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5498, "upload_time": "2018-09-15T19:49:35", "url": "https://files.pythonhosted.org/packages/3f/7f/cf4126bf89e2bf9157fa3efff3f7a0322b59e2912966e0f425ae55e272ca/brainfoose-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "53bb9fae8f6c632d53b7452fa1a13bc0", "sha256": "0114322ce03dd97a4aab38e97208dc612ffa06d960320f0898a0590506411283" }, "downloads": -1, "filename": "brainfoose-2.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "53bb9fae8f6c632d53b7452fa1a13bc0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5815, "upload_time": "2019-09-19T14:19:37", "url": "https://files.pythonhosted.org/packages/00/79/2d786a973c1cb3d9473c7310148bb9f73d07ec3ce6b624b257efa2431df0/brainfoose-2.0.3-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "53bb9fae8f6c632d53b7452fa1a13bc0", "sha256": "0114322ce03dd97a4aab38e97208dc612ffa06d960320f0898a0590506411283" }, "downloads": -1, "filename": "brainfoose-2.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "53bb9fae8f6c632d53b7452fa1a13bc0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5815, "upload_time": "2019-09-19T14:19:37", "url": "https://files.pythonhosted.org/packages/00/79/2d786a973c1cb3d9473c7310148bb9f73d07ec3ce6b624b257efa2431df0/brainfoose-2.0.3-py2.py3-none-any.whl" } ] }