PythBrSc

From Esolang
Jump to navigation Jump to search

PythBrSc (Python with Brackets and Semicolons) is a esolang by Mihai Popa.

After seeing that Python is a little hard to program and not being C-like enough, he made this!

Syntax

It's Python, but with brackets instead of indentation and semicolons at the end of the lines, just like in C, JavaScript, Java, etc... It's also for golfing.

Examples

Hello, world!

print("Hello, world!");

FizzBuzz

for num in range(1,101) {
    string = "";
    if num % 3 == 0 {
        string = string + "Fizz";
    }
    if num % 5 == 0 {
        string = string + "Buzz";
    }
    if num % 5 != 0 and num % 3 != 0 {
        string = string + str(num);
    }
    print(string);
}

Golfed

for n in range(1,101){if n%3{print(n if n%5 else"Buzz")}else{print("Fizz"+(""if n%5 else"Buzz"))}}

Transpiler

def PythBrSc2Py(text):
	new = ""
	lvindent = 0
	instr = 0
	for i in list(text):
		if i == "'":
			if instr == 0: instr = 1
			if instr == 1: instr = 0
		if i == '"':
			if instr == 0: instr = 2
			if instr == 2: instr = 0
		if instr:
			new += i
			continue
		if i == "{":
			lvindent += 1
			new += ":\n" + lvindent * "\t"
		elif i == "}":
			lvindent -= 1
			new += "\n" + lvindent * "\t"
		elif i == ";": new += "\n" + lvindent * "\t"
		elif i in " \r\n\t":
			try:
				n = new.split("\n")[-1]
				flag = True
				for j in list(n):
					if j not in " \r\n\t": flag = False
				if not flag: new += i
			except: pass
		else: new += i
	return new
print(PythBrSc2Py('for n in range(1,101){if n%3{print(n if n%5 else"Buzz")}else{print("Fizz"+(""if n%5 else"Buzz"))}}'))

Replace print with exec to make it an interpreter! Made by islptng.