aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormryouse2022-05-21 03:37:15 +0000
committermryouse2022-05-21 03:37:15 +0000
commit310a53dc06a166c5ab448fa16461b110329d1c1c (patch)
tree15d3513e3db68f77af9517521d3e1049bca6bb78
parent4393c6a9a138df2e50130f0310e07c1cae887534 (diff)
implement concat
-rw-r--r--interpreter.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/interpreter.py b/interpreter.py
index 4677432..841f5cf 100644
--- a/interpreter.py
+++ b/interpreter.py
@@ -263,6 +263,20 @@ def interpretToString(expr, env):
GLOBALS.register("->string", Builtin(interpretToString, 1))
+def interpretConcat(expr, env):
+ # concat str1 str2...strN
+ if len(expr.args) < 2:
+ raise Exception("'concat' takes at least two arguments")
+ out = ""
+ for arg in expr.args:
+ tmp = evaluate(arg, env)
+ if not isinstance(tmp, str):
+ raise Exception("'concat' arguments must be strings")
+ out += tmp
+ return out
+
+GLOBALS.register("concat", Builtin(interpretConcat))
+
def interpretForCount(expr, env):
# for-count int exprs
num = evaluate(expr.args[0], env)