I've implemented the CALL statement in my templating language and it can call out to BASIC programs. I was on the fence on adding this function as it seems far too powerful. I currently have it working with just 1 parameter with the idea being that you can use it to do any transformations on data that you can't do directly in the template or prememptively in the calling routine.
This is probably in the realm of bad ideas. I also thought about implementing the WRITE statement. It would be quite easy as I already have the READ statement but I'm going to nip that in the bud now. Writing from a templating language would be a pretty big sin.
I fixed up my template language so that you can assign to a multivalue variable and you can use subtrings during assignment. You can't use them both but I don't think that is a realistic situation. The only thing is that it tells me that I don't have the correct structure of code still.