import sys
if len(sys.argv) < 2:
    exit(1)
fileName = sys.argv[1]
thefile = open(fileName).readlines()
def isnumber(num):
    try:
        float(num)
        return True
    except ValueError:
        return False
allstr = ""
color = ""
keywords = ["if", "jump", "end", "stdin", "stdout", "stdlnout", "set", "gettype", "exists", "setlist", "setlistat", "getlistat", "getlistsize", "listappend", "getstrsize", "getstrcharat", "add", "subtract", "multiply", "divide", "equal", "inequal", "not", "greater", "lesser", "stoi", "stod", "tostring", "fun", "return", "endfun", "pusharg", "call", "use", "extern", "error"]
for line in thefile:
    allstr += line + " 
 "
lines = len(allstr.split("
"))-1
a = allstr.split()
for i in range(lines):
    instr = False
    incom = False
    words = len(allstr.split("
")[i].split())
    for j in range(words):
        tempword = allstr.split("
")[i].split()[j]
        if allstr.split("
")[i].split()[0][0] == "#":
            color = "\033[37m"
        elif allstr.split("
")[i].split()[0][0] == "@":
            color = "\033[32m"
        elif tempword in keywords:
            color = "\033[95m"
        elif isnumber(tempword) or tempword == "true" or tempword == "false":
            color = "\033[96m"
        elif tempword[0] == "#":
            incom = True
            color = "\033[37m"
        elif tempword[0] == "&":
            color = "\033[93m"
        elif tempword[0] == "$":
            color = "\033[33m"
        elif tempword[0] == "%":
            color = "\033[32m"
        elif tempword[0] == "-":
            color = "\033[34m"
        elif tempword[0] == "!":
            color = "\033[94m"
        elif tempword[0] == "*":
            color = "\033[93m"
        elif tempword[0] == "\"":
            color = "\033[92m"
            instr = not instr
        elif tempword[0] == "\'" and tempword[len(tempword)-1] == "\'":
            color = "\033[92m"
        elif instr:
            color = "\033[92m"
        elif incom:
            color = "\033[37m"
        else:
            color = "\033[91m"
        
        print(f'{color}{tempword}', end=" ")
    print()
    
print("\033[00m", end="")