diff options
Diffstat (limited to 'interpreter.py')
| -rw-r--r-- | interpreter.py | 14 |
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) |
