> 
> But works nicely when used the middle of the new multiline string assignment
>

(BTW, multi-line strings can be used in any statement, not just assignments).

local x = "end"
local y = ???end
alpha
&(x)
more
end

Works.  This is because ??? processing happens as part of the initial reading 
of the statement.  It is in fact implemented as a form of line continuation 
(similar to ;;+), and the ??? is translated into a standard ?x...x where x is a 
control character <0x20.

But
local x ="*"
local y = ?*one&(x)two*
fails with error message.  If you understand why, then you have a good handle 
on &().

The order is
1. assemble statement and continuations, treating ???delim as a continuation 
which is translated to a  ?..? which \rs inserted (you cannot do this yourself 
with normall ?x..x -- a trick is used internally).

2.  Process all &().  

3.  Now process the resulting statement using expression syntax.






Reply via email to