aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'interpreter.py')
-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)