Mnah, I’m thinking further ahead, not just if-then-else: going full Lisp / lambda. A string that can be passed to eval is a lambda expression. Except you can’t return values from def, so you have to pass continuations (i.e. other strings to be eval’d).
(because %arg{1} will contain the continuation, telling the lambda where to pass the processed %arg{2}; this continuation is a string containing multiple commands, see the cps-angle-quote-str example above).
So one argument needs to be evaled, the other not. Thus, presumably, use eval (non-verbatim) and pass %arg{1} but escape the processed %arg{2}.
But once this is done, there will be few limits to what can be expressed in kakscript (unnaturally as CPS is). I’m working on getting a command to reverse the arglist as a first milestone, for example. Anything the basic data-types support should be expressible (i.e. I’m not sure if kakscript has int addition, and if no hack for that can be found, no amount of continuation-style passing will change it)
The problem with anything but "" is that it’s impossible to interpolate into them; so for building up commands to be eval’d, only "" can be used. For example: