# I've tried making a programming language
# It wasn't to great, But it was nice
# 1st find the file to run and read the lines
text = ""
consts = []
import sys
try:
file = open(sys.argv[1])
lines = file.readlines()
except Exception:
print("Error: No file to run")
# 2nd I will create all the variables and functions I will be using
def Bin(Integer):
return bin(Integer).replace("0b", "")
class Symbol:
def __init__(self, name=''):
self.name = f"Symbol({name})"
def __repr__(self):
return self.name
lines = text
def mySplit(string):
text = string
string = string
string = string.replace("(", "œ", 1)
string = string[::-1].replace(")"[::-1], "œ"[::-1], 1)[::-1]
text = string.split("œ")
return text
def mySplit2(string):
text = string
string = string
string = string.replace("=", "œ=œ")
text = string.split("œ")
return text
sep = lambda String,sep: sep.join(list(String))
builtins = {"int": int, "str": str, "float": float, "bool": bool, "unique": Symbol, "hex": hex, "bin": Bin, "list": list, "sep": sep }
count = 0
# 3rd loop through the lines
for i in lines:
# next write the instructions
count+=1
code = mySplit(i.strip().replace("
", ""))
code2 = mySplit2(i.strip().replace("
", ""))
x = 0
while True:
x+=2
try:
if code[x - 2].strip() == "Console.println":
try:
print(eval(code[x - 1], { "__builtins__" : builtins}))
except Exception as e:
print(str(e))
elif code[x - 2].strip() == "Console.print":
try:
print(eval(code[x - 1], { "__builtins__" : builtins}), end="")
except Exception as e:
print(str(e))
elif code[x - 2].strip() == "Console.input":
try:
input(eval(code[x - 1], { "__builtins__" : builtins}))
except Exception as e:
print(str(e))
elif code[x - 2].strip() == "Console.waite":
try:
import time
time.sleep(eval(code[x - 1], { "__builtins__" : builtins}))
except Exception as e:
print(str(e))
elif list(i.strip().replace("
", ""))[0:2] == list("//"):
pass
elif i.strip().replace("
", "") != "":
print("invalid syntax at line " + str(count))
except IndexError:
pass
try:
code[x + 2]
except Exception:
break