From 310a53dc06a166c5ab448fa16461b110329d1c1c Mon Sep 17 00:00:00 2001 From: mryouse Date: Sat, 21 May 2022 03:37:15 +0000 Subject: implement concat --- interpreter.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'interpreter.py') 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) -- cgit v1.2.3