-
Notifications
You must be signed in to change notification settings - Fork 0
/
bjornlang_example.py
51 lines (37 loc) · 1.06 KB
/
bjornlang_example.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import argparse
from sys import argv
from cmdline import parse_cmdline
from lang.interpret import BjornlangInterpreter
from util import import_unicorn
args = parse_cmdline(
argv,
repl={"action": "store_true", "default": False},
file={"action": "store", "default": None},
)
if args.repl:
class FakeUnicorn:
def __init__(self):
self.log("initialized!")
def log(self, message):
print(f"[FAKE_UNICORN] {message}")
def set_pixel(self, x, y, r, g, b):
self.log(f"set_pixel({x}, {y}, {r}, {g}, {b})")
def show(self):
self.log("show()")
def clear(self):
self.log("clear()")
def off(self):
self.log("off()")
pass
interpreter = BjornlangInterpreter(FakeUnicorn())
interpreter.repl()
if args.file != None:
file = open(args.file)
else:
file = open("lang/example.bjl")
code = file.read()
file.close()
unicorn = import_unicorn(args.sim)
interpreter = BjornlangInterpreter(unicorn)
while True:
interpreter.interpret(code)