Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion haellae.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def execute(filename):

def main(args):
if(len(args) == 0):
repl()
repl(standard_library)
filename = args[0]
if(not os.path.exists(filename)):
raise FileNotFoundError("Invalid path or file does not exist")
Expand Down
2 changes: 1 addition & 1 deletion interpreter/interpreter.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def interpret_internal(ast, assignment_store : dict, execution_state: ExecutionS
if execution_state.signal != Signal.NONE:
return val1
val2 = interpret_internal(ast[2], assignment_store, execution_state)
return val2 if val2 else val1
return val2 if val2!=None else val1

case 'assign-statement':
execution_state.assignment = ast[1]
Expand Down
10 changes: 5 additions & 5 deletions repl.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ class Prompt(Cmd):
prompt = '>>> '
# intro = "Welcome to the haellang repl!"

def init(self):
self.assignment_store = dict()
def init(self, standard_library):
_, self.assignment_store = interpret(parse(standard_library))

def do_exit(self, _):
exit(0)
Expand All @@ -19,7 +19,7 @@ def default(self, statement):
try:
self.assignment_store = execute_statement(statement, self.assignment_store)
except Exception as e:
print(e)
print(e.__traceback__)


do_EOF = do_exit
Expand All @@ -31,9 +31,9 @@ def execute_statement(statement:str, assignment_store:dict):
return new_assignment_store


def repl():
def repl(standard_library):
prompt = Prompt()
prompt.init()
prompt.init(standard_library)
while True:
try:
prompt.cmdloop()
Expand Down
43 changes: 43 additions & 0 deletions stl/haellae.haellae
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,46 @@ slå_sammen_bråtæne ære-samma-som en-fungsjon såm-brukær bråtæ_1 å bråt

gi-tilbake slått_sammen_bråtæ.
åså-varn-færi.

ær_primtall ære-samma-som en-fungsjon såm-brukær n såm-gjør
i ære-samma-som 2.
imens i småære-enn n delær 2 plussær 1 ta-åsså-gjør
dersom-atter hællæ n mådda-med i prekæs er-prikk-lik 0 så
gi-tilbake ente-rekti.
ellers så
ente-gjør-no.
åsså-æru-ferdig.
i ære-samma-som i plussær 1.
åsså-gjøru-det-igjen.
gi-tilbake klart-det.
åså-varn-færi.

absolutt_værrdi ære-samma-som en-fungsjon såm-brukær n såm-gjør
dersom-atter n småære-enn 0 så
gi-tilbake n gangær hællæ 0 minusær 1 prekæs.
ellers så
gi-tilbake n.
åsså-æru-ferdig.
åså-varn-færi.

opphøyd_i ære-samma-som en-fungsjon såm-brukær n å povver såm-gjør
i ære-samma-som 0.
m ære-samma-som 1.
imens i småære-enn povver ta-åsså-gjør
m ære-samma-som m gangær n.
i ære-samma-som i plussær 1.
åsså-gjøru-det-igjen.
gi-tilbake m.
åså-varn-færi.

kartlegg ære-samma-som en-fungsjon såm-brukær f å bråtæ såm-gjør
ressultat ære-samma-som en-bråtæ-beståænes-av å-det-var-det.
i ære-samma-som 0.
imens
i småære-enn hællæ størlsen-a bråtæ å-det-var-det prekæs
ta-åsså-gjør
legg-te kjør f med plass-nummer i plussær 1 i-bråtæn bråtæ å-det-var-det å-det-var-det i-bråtæn ressultat å-det-var-det.
i ære-samma-som i plussær 1.
åsså-gjøru-det-igjen.
gi-tilbake ressultat.
åså-varn-færi.
17 changes: 16 additions & 1 deletion tests/test_data/test_files/standard_library_test.haellae
Original file line number Diff line number Diff line change
@@ -1,4 +1,19 @@
x ære-samma-som en-bråtæ-beståænes-av 1 å 2 å-det-var-det.
y ære-samma-som en-bråtæ-beståænes-av 3 å 4 å-det-var-det.

spøtt-ut kjør slå_sammen_bråtæne med x å y å-det-var-det.
spøtt-ut kjør slå_sammen_bråtæne med x å y å-det-var-det.

spøtt-ut kjør ær_primtall med 2 å-det-var-det.
spøtt-ut kjør ær_primtall med 4 å-det-var-det.
spøtt-ut kjør ær_primtall med 25 å-det-var-det.

spøtt-ut kjør absolutt_værrdi med 2 minusær 4 å-det-var-det.
spøtt-ut kjør absolutt_værrdi med 4 minusær 2 å-det-var-det.

spøtt-ut kjør opphøyd_i med 2 å 8 å-det-var-det.

spøtt-ut kjør kartlegg med
en-fungsjon såm-brukær n såm-gjør gi-tilbake n plussær 1.åså-varn-færi
å
en-bråtæ-beståænes-av 1 å 2 å-det-var-det
å-det-var-det.
7 changes: 7 additions & 0 deletions tests/test_data/test_solutions/standard_library_test_c.txt
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
[1, 2, 3, 4]
True
False
False
2
2
256
[2, 3]