From 1f94ae183cecae4fc495883d1927bee55299dbec Mon Sep 17 00:00:00 2001 From: Simen Sandhaug Date: Fri, 2 Dec 2022 16:41:34 +0100 Subject: [PATCH 1/8] add prime function to stl --- stl/haellae.haellae | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/stl/haellae.haellae b/stl/haellae.haellae index f6cc472..bbf7923 100644 --- a/stl/haellae.haellae +++ b/stl/haellae.haellae @@ -15,3 +15,16 @@ 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 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. From a0ff7c8d6e27e95dcc90152523acbc1969069dbd Mon Sep 17 00:00:00 2001 From: Simen Sandhaug Date: Fri, 2 Dec 2022 16:49:39 +0100 Subject: [PATCH 2/8] add absolute value function to stl --- stl/haellae.haellae | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/stl/haellae.haellae b/stl/haellae.haellae index bbf7923..c1e0b2e 100644 --- a/stl/haellae.haellae +++ b/stl/haellae.haellae @@ -28,3 +28,11 @@ slå_sammen_bråtæne ære-samma-som en-fungsjon såm-brukær bråtæ_1 å bråt å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. From 0163cb5116ddc854e9ca1e75a04bf550b512f59a Mon Sep 17 00:00:00 2001 From: Simen Sandhaug Date: Fri, 2 Dec 2022 16:52:21 +0100 Subject: [PATCH 3/8] add power function to stl --- stl/haellae.haellae | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/stl/haellae.haellae b/stl/haellae.haellae index c1e0b2e..dd5aa1f 100644 --- a/stl/haellae.haellae +++ b/stl/haellae.haellae @@ -36,3 +36,12 @@ absolutt_værrdi ære-samma-som en-fungsjon såm-brukær n såm-gjør 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. + imens i småære-enn povver ta-åsså-gjør + n ære-samma-som n gangær n. + i ære-samma-som i plussær 1. + åsså-gjøru-det-igjen. + gi-tilbake n. +åså-varn-færi. From ca07766947b6166a9b62d2e5218ae7bf156c3d98 Mon Sep 17 00:00:00 2001 From: Simen Sandhaug Date: Fri, 2 Dec 2022 16:53:51 +0100 Subject: [PATCH 4/8] fix stl syntax issue --- stl/haellae.haellae | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stl/haellae.haellae b/stl/haellae.haellae index dd5aa1f..2ccee46 100644 --- a/stl/haellae.haellae +++ b/stl/haellae.haellae @@ -18,7 +18,7 @@ slå_sammen_bråtæne ære-samma-som en-fungsjon såm-brukær bråtæ_1 å bråt æ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 ta-åsså-gjør + imens i småære-enn n delær 2 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å From 30711fb513df1ce5785186e88bf00980d73a145d Mon Sep 17 00:00:00 2001 From: Halvor Linder Date: Sat, 3 Dec 2022 18:08:06 +0100 Subject: [PATCH 5/8] add standard library to repl --- haellae.py | 2 +- repl.py | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/haellae.py b/haellae.py index edf5a15..9feaa91 100644 --- a/haellae.py +++ b/haellae.py @@ -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") diff --git a/repl.py b/repl.py index 95570a9..aa1d501 100644 --- a/repl.py +++ b/repl.py @@ -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) @@ -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 @@ -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() From 71de86bbe32a6e74c7e5f86c0ef8efeecc7eb350 Mon Sep 17 00:00:00 2001 From: Halvor Linder Date: Sat, 3 Dec 2022 18:08:21 +0100 Subject: [PATCH 6/8] add map function to stl --- stl/haellae.haellae | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/stl/haellae.haellae b/stl/haellae.haellae index 2ccee46..dc085cc 100644 --- a/stl/haellae.haellae +++ b/stl/haellae.haellae @@ -45,3 +45,15 @@ opphøyd-i ære-samma-som en-fungsjon såm-brukær n å povver såm-gjør åsså-gjøru-det-igjen. gi-tilbake n. å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. From 248e100f8f430bce57e49baaefc2e10364c5e47d Mon Sep 17 00:00:00 2001 From: Halvor Linder Date: Sat, 3 Dec 2022 18:29:08 +0100 Subject: [PATCH 7/8] fix false bug --- interpreter/interpreter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interpreter/interpreter.py b/interpreter/interpreter.py index 366b928..d682adb 100644 --- a/interpreter/interpreter.py +++ b/interpreter/interpreter.py @@ -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] From c618b96d151a120efdcabbe3604ec5d10a7b3770 Mon Sep 17 00:00:00 2001 From: Halvor Linder Date: Sat, 3 Dec 2022 18:41:25 +0100 Subject: [PATCH 8/8] fix stl functions and add tests --- stl/haellae.haellae | 11 ++++++----- .../test_files/standard_library_test.haellae | 17 ++++++++++++++++- .../test_solutions/standard_library_test_c.txt | 7 +++++++ 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/stl/haellae.haellae b/stl/haellae.haellae index dc085cc..d07a391 100644 --- a/stl/haellae.haellae +++ b/stl/haellae.haellae @@ -18,13 +18,13 @@ slå_sammen_bråtæne ære-samma-som en-fungsjon såm-brukær bråtæ_1 å bråt æ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 ta-åsså-gjør + 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. + i ære-samma-som i plussær 1. åsså-gjøru-det-igjen. gi-tilbake klart-det. åså-varn-færi. @@ -37,13 +37,14 @@ absolutt_værrdi ære-samma-som en-fungsjon såm-brukær n såm-gjør å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 +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 - n ære-samma-som n gangær n. + m ære-samma-som m gangær n. i ære-samma-som i plussær 1. åsså-gjøru-det-igjen. - gi-tilbake n. + gi-tilbake m. åså-varn-færi. kartlegg ære-samma-som en-fungsjon såm-brukær f å bråtæ såm-gjør diff --git a/tests/test_data/test_files/standard_library_test.haellae b/tests/test_data/test_files/standard_library_test.haellae index a2d4f78..8241d91 100644 --- a/tests/test_data/test_files/standard_library_test.haellae +++ b/tests/test_data/test_files/standard_library_test.haellae @@ -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. \ No newline at end of file +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. \ No newline at end of file diff --git a/tests/test_data/test_solutions/standard_library_test_c.txt b/tests/test_data/test_solutions/standard_library_test_c.txt index 12bae17..7dd1a5f 100644 --- a/tests/test_data/test_solutions/standard_library_test_c.txt +++ b/tests/test_data/test_solutions/standard_library_test_c.txt @@ -1 +1,8 @@ [1, 2, 3, 4] +True +False +False +2 +2 +256 +[2, 3]