4 from mal_types
import MalExpression
, MalSyntaxException
7 def READ(x
: str) -> MalExpression
:
11 def EVAL(x
: MalExpression
) -> MalExpression
:
15 def PRINT(x
: MalExpression
) -> str:
19 def rep(x
: str) -> str:
21 return PRINT(EVAL(READ(x
)))
23 return "Expression is invalid or unbalanced: " + x
26 if __name__
== "__main__":
31 line
= input("user> ")
32 readline
.add_history(line
)
35 except MalSyntaxException
as e
:
36 print("ERROR: invalid syntax: " + str(e
))