Bruh@
Bruh@ is a language created by User:Sanya. It's Brainfuck derivative.
| Designed by | User:Sanya |
|---|---|
| Appeared in | 2023 |
| Memory system | cell-based |
| Computational class | Turing-complete |
| Reference implementation | Unimplemented |
| Influenced by | Brainfuck |
| File extension(s) | .bh@ |
Commands
In the Bruh@ there're 11 commands. They are separating by '@'.
| Brainfuck | Bruh@ | Description |
|---|---|---|
| < | bRuh | Move to the left cell |
| > | Bruh | Move to the right cell |
| + | BRuh | Increment current memory block value by 1. |
| - | brUH | Decrement current memory block value by 1. |
| . | bRUH | Print current cell value as an ASCII char. |
| , | BRUh | Read charachter and write its ASCII-code into current cell. |
| [ | BruH | Start loop |
| ] | BrUh | Go to BruH if current cell value isn't 0 |
| NONE | bruH | Go to the left or right cell or stay at the current cell |
| NONE | BRUH | Make enabled true |
| NONE | bruh | Make enabled false |
Enabled
Some commands work only if enabled(boolean) is true, other work only if enabled is false. Enabled toogle after every command. For example:
BRUH@make enabled true, but after this command enabled will be toogled, so enabled=false @ bruH@go to the random (left, right or this) cell, enabled=true@ bruh@enabled=true@ Bruh@enabled=false@ bruh@enabled=true@ Bruh@enabled=false@
| Bruh | True |
| bRuh | True |
| BruH | True |
| bRUH | True |
| BRUh | True |
| bruH | False |
| BRuh | False |
| brUH | False |
| BrUh | False |
Comments
Comments write as usuall commands, because interpreter ignore all symbols, expect of command. So after any comment you have to write @. Otherwise interpreter will ignore next command.
This is a comment @ BRUH@BRUH@BRUH@ code@
BRUH@This is a comment Bruh@<--This command is a part of comment@
BRUH!!!
BRUH!!! at ... is a error, which mean that you try to execute command with invalid enabled (see Enabled).
TOTAL BRUH!!! is a error, which mean that you use to many BRUH or bruh
Examples
Hello, World!
BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@
BruH@
bruh@Bruh@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@
Bruh@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@
Bruh@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@
Bruh@BRuh@BRUH@BRuh@BRUH@BRuh@
bRuh@bruh@bRuh@bruh@bRuh@bruh@bRuh@BRUH@brUH@
BRUH@BrUh@
Bruh@BRUH@BRuh@BRUH@BRuh@bRUH@
bruh@Bruh@BRUH@BRuh@bRUH@
BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@bRUH@bruh@bRUH@
BRuh@BRUH@BRuh@BRUH@BRuh@bRUH@
bruh@Bruh@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@bruh@bRUH@
bruh@Bruh@BRuh@BRUH@BRuh@bruh@bRUH@
bruh@bRuh@bruh@bRuh@bruh@bRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@bRUH@
bruh@Bruh@bruh@bRUH@
BRuh@BRUH@BRuh@BRUH@BRuh@bRUH@
brUH@BRUH@brUH@BRUH@brUH@BRUH@brUH@BRUH@brUH@BRUH@brUH@bRUH@
brUH@BRUH@brUH@BRUH@brUH@BRUH@brUH@BRUH@brUH@BRUH@brUH@BRUH@brUH@BRUH@brUH@bRUH@
bruh@Bruh@bruh@Bruh@BRUH@BRuh@bRUH
This is the same programm:
BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BruH@bruh@Bruh@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@Bruh@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@Bruh@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@Bruh@BRuh@BRUH@BRuh@BRUH@BRuh@bRuh@bruh@bRuh@bruh@bRuh@bruh@bRuh@BRUH@brUH@BRUH@BrUh@Bruh@BRUH@BRuh@BRUH@BRuh@bRUH@bruh@Bruh@BRUH@BRuh@bRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@bRUH@bruh@bRUH@BRuh@BRUH@BRuh@BRUH@BRuh@bRUH@bruh@Bruh@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@bruh@bRUH@bruh@Bruh@BRuh@BRUH@BRuh@bruh@bRUH@bruh@bRuh@bruh@bRuh@bruh@bRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@BRUH@BRuh@bRUH@bruh@Bruh@bruh@bRUH@BRuh@BRUH@BRuh@BRUH@BRuh@bRUH@brUH@BRUH@brUH@BRUH@brUH@BRUH@brUH@BRUH@brUH@BRUH@brUH@bRUH@brUH@BRUH@brUH@BRUH@brUH@BRUH@brUH@BRUH@brUH@BRUH@brUH@BRUH@brUH@BRUH@brUH@bRUH@bruh@Bruh@bruh@Bruh@BRUH@BRuh@bRUH
Interpreter
Java
import java.io.*;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
import java.util.Stack;
public class Bruh {
static List<Byte> stack= new Stack<Byte>();
static List<Integer> loop = new Stack<Integer>();
static Scanner scanner = new Scanner(System.in);
static String input="",file;
static boolean enabled = true;
static int pos;
public static void main(String[] args) {
file = scanner.nextLine();
try(FileReader reader = new FileReader(file))
{
int c;
while((c=reader.read())!=-1){
input+=(char)c;
}
}
catch(IOException ex){
System.out.println(ex.getMessage());
}
Interpret();
}
public static void Interpret() {
String[] arr = input.replace("\r\n","")
.replace(" ","")
.split("@");
for (var i=0;i<30000;i++){
stack.add((byte) 0);
}
int j=0;
for (var i=0;i<arr.length;i++)
switch (arr[i]){ case "BRUH", "bruh" -> j++;}
if (j>=arr.length/2){
System.out.println("TOTAL BRUH!!!");
System.out.print("BR");while(true)System.out.print("U");
}
for (var i=0;i<arr.length;i++){
switch (arr[i]) {
case "BRUH" ->enabled=true;
case "bruh" ->enabled=false;
case "Bruh" -> {
if(enabled){if(pos<30000)pos++;}
else System.out.println("BRUH!!! at "+i);
}
case "bRuh" -> {
if(enabled){if(pos>=0)pos--;}
else System.out.println("BRUH!!! at "+i);
}
case "bruH" -> {
if(!enabled)pos += new Random().nextInt(2) - 1;
else System.out.println("BRUH!!! at "+i);
}
case "BRuh" -> {
if(!enabled)stack.set(pos, (byte) (stack.get(pos) + 1));
else System.out.println("BRUH!!! at "+i);
}
case "brUH" -> {
if(!enabled)stack.set(pos, (byte) (stack.get(pos) - 1));
else System.out.println("BRUH!!! at "+i);
}
case "BruH" -> {
if(enabled)loop.add(i);
else System.out.println("BRUH!!! at "+i);
}
case "BrUh" -> {
if(!enabled) {
if (stack.get(pos) != 0) {
i = loop.get(loop.size() - 1) - 1;
loop.remove(loop.size() - 1);
}
}
else System.out.println("BRUH!!! at "+i);
}
case "bRUH" -> {
if(enabled)System.out.print(Character.toString(stack.get(pos)));
else System.out.println("BRUH!!! at "+i);
}
case "BRUh" -> {
if(enabled)stack.set(pos, (byte) scanner.next().charAt(0));
else System.out.println("BRUH!!! at "+i);
}
default -> {
continue;
}
}
enabled=!enabled;
}
}
}