Skip to main content

Super BrainF**k Ultra Professional Max Air Neo Ex

Project description

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

pip install SpBFUltraProMaxAirNeoEx

Run BF in your Python code.

import bf
bf.fuck("""
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.
""")

I also added debug.

import bf
bf.fuck("""
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.
""",debug=True)

There is also the classic mode.

import bf
bf.fuck("""
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.
""",classic=True)

Run BF in your console

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 up! You can now install the library via the web:

bf install copy
bf install math
bf install set
#Currently, I have only made these.

Install the local library

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

uninstall

bf uninstall #(Your library name)

Modify URL

If you have also built a similar website, you can replace the URL with yours:

bf url "https://emocez.github.io/SpBFUltraProMaxAirNeoEx/"

Show what symbols are in a library

bf show mylib

List all libraries

bf list

Search local library (not useful (maybe?))

bf search my #Keyword

Check library updates

bf check #Just checking.
bf check -au -YES #Automatic update

BrainFuck Article

Generate bf based on the text file

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...

touch more.json

Then, you need to edit this file.

You need to think about it yourself; I usually use nano.

nano more.json

Then, write a pair of square brackets, like: []

[
]

Write a pair of curly braces inside, like: {}

[
    {
    }
]

Write the symbol.

[
    {
        "name":"#"
    }
]

Add execution logic

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

I'll just write an addition.

[
    {
        "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 ">", "<", "=", 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!

bf install -f more

After installation, you can use the symbols you defined:

>+++
<+++
#

Wait, did you just mention b-pack?

How do I make a b-pack?

First, you need to create a folder.

mkdir mybpack/

Next, create an index.json and edit it.

touch index.json
nano index.json #I really like using nano!

Write it like this:

{
    "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).

{
    "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...

>++++++++++[<++++++++++>-]<++.+++++++++++++++.------------------.++++++++.++++++++++++++.----------.++++++.[-]++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.----------.++++++.[-]++++++++++++++++++++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.------------.---.[-]++++++++++++++++++++++++++++++++.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++.------------------.++++++++.--.+++++.-------.[-]++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.-----------.+.+++++++++++.[-]++++++++++.

Then, you will need to use a magical command—bf build

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

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.

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.

# Using in Python
import bf
data = bf.fuck("Your bf code",CO="py")
data_js = bf.fuck("Your bf code",CO="js")
# 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😭😭😭😭😭😭

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spbfultrapromaxairneoex-0.2.0.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spbfultrapromaxairneoex-0.2.0-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file spbfultrapromaxairneoex-0.2.0.tar.gz.

File metadata

  • Download URL: spbfultrapromaxairneoex-0.2.0.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for spbfultrapromaxairneoex-0.2.0.tar.gz
Algorithm Hash digest
SHA256 1ebb26c73be5d001f2b33c1b6a00b1cc7a36c11af2b686606fe9068ede6a192d
MD5 f2941f1b9d11b9a54203ba81a3f1b61c
BLAKE2b-256 3c6e904d4c07e624de04f01805754782e7396e04f76e6f8546cd9e22c9f2080f

See more details on using hashes here.

File details

Details for the file spbfultrapromaxairneoex-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for spbfultrapromaxairneoex-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5157c8e94e3ccd50f1fa86c17f8ec8d07c3bd2ae1b40cd1eef077678884c051b
MD5 fe559d76a0b2a6844ef4dd6d4143df26
BLAKE2b-256 37d2a2009067d09ce5e219cbd65d8b856acfbcfb755aa3d3264f298eae1faa9d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page