Initial Commit
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
message.md
|
||||||
57
main.py
Normal file
57
main.py
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
def split_by_space(line):
|
||||||
|
token: str = ""
|
||||||
|
tokens: list[str] = []
|
||||||
|
isString = False
|
||||||
|
for char in line:
|
||||||
|
if isString:
|
||||||
|
if char == "\"":
|
||||||
|
isString = False
|
||||||
|
continue
|
||||||
|
token += char
|
||||||
|
continue
|
||||||
|
match char:
|
||||||
|
case "\"" | "\'":
|
||||||
|
token = "?"
|
||||||
|
isString = True
|
||||||
|
case " ":
|
||||||
|
if token == "":
|
||||||
|
if tokens == []:
|
||||||
|
token += " "
|
||||||
|
continue
|
||||||
|
tokens.append(token)
|
||||||
|
token = ""
|
||||||
|
case _:
|
||||||
|
token += char
|
||||||
|
|
||||||
|
if tokens != "":
|
||||||
|
tokens.append(token)
|
||||||
|
return tokens
|
||||||
|
|
||||||
|
def get_color(arg: str):
|
||||||
|
match arg[0]:
|
||||||
|
# ? preceds a string
|
||||||
|
case '?':
|
||||||
|
return f"\033[32m\"{arg[1:]}\"\033[0m"
|
||||||
|
case '$' | '&' | '!' | '-':
|
||||||
|
return f"\033[34m{arg[0]}\033[0m{arg[1:]}"
|
||||||
|
case '%':
|
||||||
|
return f"\033[33m{arg[0]}\033[0m{arg[1:]}"
|
||||||
|
case '@':
|
||||||
|
return f"\033[33m{arg}\033[0m"
|
||||||
|
case _:
|
||||||
|
return f"\033[35m{arg}\033[0m"
|
||||||
|
|
||||||
|
def highlight_text(code: str):
|
||||||
|
print("```ansi")
|
||||||
|
lines = code.split("\n")
|
||||||
|
for line in lines:
|
||||||
|
args = split_by_space(line)
|
||||||
|
if args == ['']:
|
||||||
|
print()
|
||||||
|
continue
|
||||||
|
for arg in args:
|
||||||
|
print(get_color(arg), end=" ")
|
||||||
|
print()
|
||||||
|
print("```")
|
||||||
|
|
||||||
|
highlight_text("@label\n\n set &str \"Hello, world!\"\n println $str\n jump %label")
|
||||||
Reference in New Issue
Block a user