Metadata-Version: 2.4
Name: SpBFUltraProMaxAirNeoEx
Version: 0.2.0
Summary: Super BrainF**k Ultra Professional Max Air Neo Ex
Author: EMO_123
License: MIT
Keywords: emo123,joke,BrainFuck,BF
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Dynamic: license-file

# Super BrainF\*\*k Ultra Professional Max Air Neo Ex
** Tip: I am not the original author of BrainF\*\*k. **

** Warning: The following content contains some profanity. Please ensure you are over 3 million years old. **

# install
```bash
pip install SpBFUltraProMaxAirNeoEx
```
# Run BF in your Python code.
```python
import bf
bf.fuck("""
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.
""")
```
I also added debug.
```python
import bf
bf.fuck("""
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.
""",debug=True)
```
There is also the classic mode.
```python
import bf
bf.fuck("""
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.
""",classic=True)
```
# Run BF in your console
```bash
bf -c "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>."
bf helloworld.bf
bf debug helloworld.bf
bf hellowirld.bf classic
bf debug helloworld.bf classic
bf -c "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>." classic
```
# Install the library

I've got  [the website](https://emocez.github.io/SpBFUltraProMaxAirNeoEx/)  up! You can now install the library via the web:
```bash
bf install copy
bf install math
bf install set
#Currently, I have only made these.
```

Install the local library

```bash
cd #(The directory where your library is located)
bf install -f #(Your library name)
```

# uninstall
```bash
bf uninstall #(Your library name)
```
# Modify URL
If you have also built a similar website, you can replace the URL with yours:
```bash
bf url "https://emocez.github.io/SpBFUltraProMaxAirNeoEx/"
```

# Show what symbols are in a library
```bash
bf show mylib
```

# List all libraries
```bash
bf list
```

# Search local library (not useful (maybe?))
```bash
bf search my #Keyword
```

# Check library updates
```bash
bf check #Just checking.
bf check -au -YES #Automatic update
```

# BrainFuck Article
Generate bf based on the text file
```bash
bf ae mytext.txt #The default output is mytext.txt.bf
bf ae mytext.txt output=otherfile.bf #Modify the output target file name
```

# How to create a library?
This is the tutorial for creating the first version of the library, which I call "a-pack."

This library is essentially a JSON file.

You can create a JSON file, with the file name being your library name, for example...
```bash
touch more.json
```

Then, you need to edit this file.

You need to think about it yourself; I usually use nano.
```bash
nano more.json
```

Then, write a pair of square brackets, like: []
```json
[
]
```
Write a pair of curly braces inside, like: {}
```json
[
    {
    }
]
```
Write the symbol.
```json
[
    {
        "name":"#"
    }
]
```
Add execution logic

This counts as a DSL (if I may), it's called BFEX (BrainFuck Expression).

I'll just write an addition.
```json
[
    {
        "name":"#",
        "expre":[
            "r",
            "get",
            "l",
            {"add":"get"}
        ]
    }
]
```
Currently, I have prepared these available execution logics:

"r": Move to the right

"l": Move to the left

"get": Obtain the value of the current cell

"give": Set the value of the current cell to the value obtained last time.

{"set":number}: Set the current cell to a number

{"add":number}: Increase the number in the current cell

{"sub":number}: Reduce the number in the current cell.

{"output":string}: Output content to help you debug.

{"if":\[value,condition,value\],"expre":BFEX}: 

　　value:

　　　　If it is a string, it can be "now" or "val" or "get".

　　　　He can also be a list (when he is in the second position) or a number

　　condition:

　　　　It can be "&gt;", "&lt;", "=", or "in".

{"cyc":BFEX}: Loop, maximum loop count 15000, the method to exit the loop is as follows:

"out": Get out of this damn loop, it's recommended to use it with if.

Tip: In the content above, the number for add or sub can be the string "get," which allows you to add the number obtained in the previous operation.

{"func":funcname}: Call a function (the function needs to be created in b-pack)

After exiting the editor, you can proceed with the installation!
```bash
bf install -f more
```

After installation, you can use the symbols you defined:
```BrainFuck
>+++
<+++
#
```

# Wait, did you just mention b-pack?
# How do I make a b-pack?
First, you need to create a folder.
```bash
mkdir mybpack/
```
Next, create an index\.json and edit it.
```bash
touch index.json
nano index.json #I really like using nano!
```
Write it like this:
```json
{
    "name":"mydpack",
    "func":[
        //List your functions as follows:
        "myfunc"
        //When reading, it will automatically point to "myfunc.bf".
    ],
    "mod":[
        //List your Module as follows:
        "mymod"
        //When reading, it will automatically point to "mymod.json".
    ]
}
```
**Tip: The JSON module built into Python is used in SBF, which does not support comments in JSON!**

I just listed the functions and modules I need in the JSON.

So I must write them down!

You can customize the function name or module name.

The module is very simple, just like a symbol in a-pack (not a-pack).
```json
{
    "name":"/",
    "expre":[
        {"func":"myfunc"}
    ]
}
```
A function is a .bf file, and when it runs, it has its own independent runtime. I don't know how to make it share the same runtime as the main program...
```BrainFuck
>++++++++++[<++++++++++>-]<++.+++++++++++++++.------------------.++++++++.++++++++++++++.----------.++++++.[-]++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.----------.++++++.[-]++++++++++++++++++++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.------------.---.[-]++++++++++++++++++++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++.------------------.++++++++.--.+++++.-------.[-]++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.-----------.+.+++++++++++.[-]++++++++++.
```
Then, you will need to use a magical command—bf build
```bash
bf build
```
Alright, it's not that magical.

He will package the set of things you wrote into a JSON.

emm

Yes, this is the b-pack itself.

If you think you can do it, you can challenge yourself to write a b-pack directly.

But I don't have any documentation about this.

After you have packaged it, you can directly install it.

Like a-pack

```bash
bf install -f mydpack
```

# What are the differences between b-pack and a-pack? Why should I write b-pack?
My answer is: I don't know either! But b-pack is much more intuitive than a-pack! (If I think about it)

## BF REPL
This is a temporarily added section.
```bash
bf -i
```
There are hints inside, and I believe you can understand English.

Because you can understand this sentence.

# Disclaimer (Fake)
I can never be sure that my website won't be hacked.

~~Although I think no one would come to persecute me if I wanted to.~~

~~What are they trying to do by hacking this website?~~

~~Just to check my open-source file?~~

# Compilation
This is an experimental feature and is very unstable!

You can play with it, but try not to use it for formal projects!

More languages will be added to this compilation feature in the future; currently, it only supports Python and JavaScript.

```python
# Using in Python
import bf
data = bf.fuck("Your bf code",CO="py")
data_js = bf.fuck("Your bf code",CO="js")
```

```bash
# Using in bash
bf co mybf.bf py
bf co mybf.bf js
# You can also customize the name.
bf co mybf.bf py output=mybf.py
bf co mybf.bf js output=mybf.js
```
I even learned JavaScript for this feature, BRO😭😭😭😭😭😭
