Skip to content
This repository has been archived by the owner on Dec 19, 2023. It is now read-only.

Commit

Permalink
Interpreter v.1: Remove Maybe Tree
Browse files Browse the repository at this point in the history
  • Loading branch information
guillaumeAbel authored and Saverio976 committed Dec 7, 2023
1 parent 27420bd commit a3bfe70
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 13 deletions.
2 changes: 1 addition & 1 deletion src/AST.hs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import Data.Int (Int64)

type Symbol = String

data Tree = Number Int64 | Symbol Symbol | Boolean Bool | List [Maybe Tree]
data Tree = Number Int64 | Symbol Symbol | Boolean Bool | List [Tree]

showMaybeTree :: Maybe Tree -> String
showMaybeTree Nothing = "Nothing"
Expand Down
24 changes: 12 additions & 12 deletions test/Spec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ unitTestsASTEqual :: TestTree
unitTestsASTEqual = testGroup "AST Equal Tests"
[ testCase "Basic AST creation 0" $
assertEqual "define x 42"
(List [Just (Symbol "define"), Just (Symbol "x"), Just (Number 42)])
(List [Just (Symbol "define"), Just (Symbol "x"), Just (Number 42)])
(List [Symbol "define", Symbol "x", Number 42])
(List [Symbol "define", Symbol "x", Number 42])
, testCase "Basic AST creation 1" $
assertEqual "foo"
(Symbol "foo")
Expand Down Expand Up @@ -106,42 +106,42 @@ unitTestsASTEqual = testGroup "AST Equal Tests"
-- [ testCase "test1" $
-- assertEqual "number 21 + number 21 = 42"
-- [Number 42]
-- computeAllAST (Env []) [(List [Just (Symbol "+"), Just (Number 21), Just (Number 21)])]
-- computeAllAST (Env []) [(List [Symbol "+", Number 21, Number 21])]
-- , testCase "test2" $
-- assertEqual "define foo 42 and tree with Symbol foo"
-- [Number 42]
-- computeAllAST (Env []) [(List [Just (Symbol "define"), Just (Symbol "foo"), Just (Number 42)]), (Symbol "foo")]
-- computeAllAST (Env []) [(List [Symbol "define", Symbol "foo", Number 42]), (Symbol "foo")]
-- , testCase "test3" $
-- assertEqual "define foo 42 and do foo + 42"
-- [Number 84]
-- computeAllAST (Env []) [(List [Just (Symbol "define"), Just (Symbol "foo"), Just (Number 42)]), (List [Just (Symbol "+"), Just (Symbol "foo"), Just (Number 42)])]
-- computeAllAST (Env []) [(List [Symbol "define", Symbol "foo", Number 42]), (List [Symbol "+", Symbol "foo", Number 42])]
-- , testCase "test3" $
-- assertEqual "define foo 42 and do 42 + foo"
-- [Number 84]
-- computeAllAST (Env []) [(List [Just (Symbol "define"), Just (Symbol "foo"), Just (Number 42)]), (List [Just (Symbol "+"), Just (Number 42), Just (Symbol "foo")])]
-- computeAllAST (Env []) [(List [Symbol "define", Symbol "foo", Number 42]), (List [Symbol "+", Number 42, Symbol "foo")])]
-- , testCase "test5" $
-- assertEqual "define foo 42 and do foo + foo"
-- [Number 84]
-- computeAllAST (Env []) [(List [Just (Symbol "define"), Just (Symbol "foo"), Just (Number 42)]), (List [Symbol, "+", Symbol "foo", Symbol "foo"])]
-- computeAllAST (Env []) [(List [Symbol "define", Symbol "foo", Number 42]), (List [Symbol "+", Symbol "foo", Symbol "foo"])]
-- , testCase "test6" $
-- assertEqual "define foo 42 and bar 21 and do foo + bar"
-- [Number 63]
-- computeAllAST (Env []) [(List [Just (Symbol "define"), Just (Symbol "foo"), Just (Number 42)]), (List [Just (Symbol "define"), Just (Symbol "bar"), Just (Number 21)]), (List [Just (Symbol "+"), Just (Symbol "foo"), Just (Symbol "bar")])]
-- computeAllAST (Env []) [(List [Symbol "define", Symbol "foo", Number 42]), (List [Symbol "define", Symbol "bar", Number 21]), (List [Symbol "+", Symbol "foo", Symbol "bar"])]
-- , testCase "test7" $
-- assertEqual "2 + (5 * 2) (result = 12)"
-- [Number 12]
-- computeAllAST (Env []) [(List [Just (Symbol "+"), Just (Number 2), Just (List [Just (Symbol "*"), Just (Number 5), Just (Number 2)])])]
-- computeAllAST (Env []) [(List [Symbol "+", Number 2, List [Symbol "*", Number 5, Number 2])])]
-- , testCase "test8" $
-- assertEqual "define foo 42 and (2 * 5) + (foo / 2) (result = 10 + 21 = 31)"
-- [Number 31]
-- computeAllAST (Env []) [(List [Just (Symbol "define"), Just (Symbol "foo"), Just (Number 42)]), (List [Just (Symbol "+"), Just (List [Just (Symbol "*"), Just (Number 2), Just (Number 5)]), Just (List [Just (Symbol "/"), Just (Symbol "foo"), Just (Number 2)])])]
-- computeAllAST (Env []) [(List [Symbol "define", Symbol "foo", Number 42]), (List [Symbol "+", List [Symbol "*", Number 2, Number 5]), List [Symbol "/", Symbol "foo", Number 2])])]
-- , testCase "test9" $
-- assertEqual "2 + 2 + (5 * 2) (result = 14)"
-- [Number 14]
-- computeAllAST (Env []) [(List [Just (Symbol "+"), Just (List [Just (Symbol "+"), Just (Number 2), Just (Number 2)]), Just (List [Just (Symbol "*"), Just (Number 5), Just (Number 2)])])]
-- computeAllAST (Env []) [(List [Symbol "+", List [Symbol "+", Number 2, Number 2]), List [Symbol "*", Number 5, Number 2])])]
-- , testCase "test10" $
-- assertEqual "14 mod 5 (result = 4)"
-- [Number 4]
-- computeAllAST (Env []) [(List [Just (Symbol "mod"), Just (Number 14), Just (Number 5)])]
-- computeAllAST (Env []) [(List [Symbol "mod", Number 14, Number 5])]
-- ]
--

0 comments on commit a3bfe70

Please sign in to comment.