# NeoBrainFuckInterpreter
NeoBrainFuckInterpreter is a Python interpreter for the Brainfuck programming language with additional commands for extended functionality.
## Overview
This interpreter supports the basic Brainfuck commands (`+`, `-`, `<`, `>`, `[`, `]`, `.`, `,`) and introduces three additional commands:
- `$`: Switches IO mode to ASCII.
- `%`: Switches IO mode to integers.
- `^`: Jumps to memory cell with address which equals the value of current memory cell.
- `&`: Jumps to the instruction with address which equals the value of current memory cell.
- `0`: NOP (No operation)
The interpreter manages memory using a dynamic stack (`MemoryStack`), allowing for negative indices and dynamic memory expansion.
## Usage
### Installation
Clone the repository:
```bash
git clone https://github.com/kusrabyzarc/NeoBrainF--k.git
cd NeoBrainF--k
```
### Interpreter args
```text
code: [str] BrainFuck code
do_debug: [bool] print debug info (default: False)
vanilla_cell_behaviour: [bool] clamp the values in memory to the range 0-255 (default: False)
vanilla_memory_stack: [bool] use static 30k-sized memory stack instead of dynamic one (default: False)
```
### Examples
~~You can find examples [here](https://github.com/kusrabyzarc/NeoBrainF--k/tree/main/examples).~~\
In progress.
### License
This project is licensed under the MIT License - see the LICENSE file for details.
Raw data
{
"_id": null,
"home_page": "https://github.com/kusrabyzarc/NeoBrainF--k",
"name": "neobrainfuck",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "BrainFuck interpreter extended programming language esolang development python library brainfuck-interpreter esoteric extended-brainfuck",
"author": "kusrabyzarc",
"author_email": "crazybarsuk@mail.ru",
"download_url": "https://files.pythonhosted.org/packages/85/12/7d4eec8386928e64635346269da6e161e2d4f98280144c992a8d9eb4f342/neobrainfuck-1.1.0.tar.gz",
"platform": null,
"description": "# NeoBrainFuckInterpreter\r\n\r\nNeoBrainFuckInterpreter is a Python interpreter for the Brainfuck programming language with additional commands for extended functionality.\r\n\r\n## Overview\r\n\r\nThis interpreter supports the basic Brainfuck commands (`+`, `-`, `<`, `>`, `[`, `]`, `.`, `,`) and introduces three additional commands:\r\n\r\n- `$`: Switches IO mode to ASCII.\r\n- `%`: Switches IO mode to integers.\r\n- `^`: Jumps to memory cell with address which equals the value of current memory cell.\r\n- `&`: Jumps to the instruction with address which equals the value of current memory cell.\r\n- `0`: NOP (No operation)\r\n\r\nThe interpreter manages memory using a dynamic stack (`MemoryStack`), allowing for negative indices and dynamic memory expansion.\r\n\r\n## Usage\r\n\r\n### Installation\r\n\r\nClone the repository:\r\n```bash\r\ngit clone https://github.com/kusrabyzarc/NeoBrainF--k.git\r\ncd NeoBrainF--k\r\n```\r\n\r\n### Interpreter args\r\n```text\r\ncode: [str] BrainFuck code\r\ndo_debug: [bool] print debug info (default: False)\r\nvanilla_cell_behaviour: [bool] clamp the values in memory to the range 0-255 (default: False)\r\nvanilla_memory_stack: [bool] use static 30k-sized memory stack instead of dynamic one (default: False)\r\n```\r\n### Examples\r\n~~You can find examples [here](https://github.com/kusrabyzarc/NeoBrainF--k/tree/main/examples).~~\\\r\nIn progress.\r\n\r\n### License\r\nThis project is licensed under the MIT License - see the LICENSE file for details.\r\n",
"bugtrack_url": null,
"license": null,
"summary": "Just another rethink of the BrainFuck language",
"version": "1.1.0",
"project_urls": {
"Homepage": "https://github.com/kusrabyzarc/NeoBrainF--k"
},
"split_keywords": [
"brainfuck",
"interpreter",
"extended",
"programming",
"language",
"esolang",
"development",
"python",
"library",
"brainfuck-interpreter",
"esoteric",
"extended-brainfuck"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9934b08ec8629a4507d965a872df9027fd0835f6a4c85e4d3cc9885983740625",
"md5": "380186df0a5e1e35ff4149aaf106edd2",
"sha256": "801157532617d2bff378724abe72d9db92dad24b5b3fe6fa84d431266cfddc43"
},
"downloads": -1,
"filename": "neobrainfuck-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "380186df0a5e1e35ff4149aaf106edd2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 5274,
"upload_time": "2024-07-02T05:49:47",
"upload_time_iso_8601": "2024-07-02T05:49:47.185737Z",
"url": "https://files.pythonhosted.org/packages/99/34/b08ec8629a4507d965a872df9027fd0835f6a4c85e4d3cc9885983740625/neobrainfuck-1.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "85127d4eec8386928e64635346269da6e161e2d4f98280144c992a8d9eb4f342",
"md5": "ccea461e864ce4a9e459b328ce6c37d3",
"sha256": "8af4f68472e80577465a1b3be49acd35fb6c7dbd2f5c853eaa91e23ded8b9a72"
},
"downloads": -1,
"filename": "neobrainfuck-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "ccea461e864ce4a9e459b328ce6c37d3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 4825,
"upload_time": "2024-07-02T05:49:48",
"upload_time_iso_8601": "2024-07-02T05:49:48.560498Z",
"url": "https://files.pythonhosted.org/packages/85/12/7d4eec8386928e64635346269da6e161e2d4f98280144c992a8d9eb4f342/neobrainfuck-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-02 05:49:48",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "kusrabyzarc",
"github_project": "NeoBrainF--k",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "neobrainfuck"
}