Anyone not familiar with the current state of v2 should read v2-changes before discussing v2-thoughts, to avoid confusion and time wasted on redundant suggestions.
i thought i remembered discussion about whether or not all command parameters in v2 would be expressions by default.
"Command args are never expressions by default, except with control flow statements such as Return." (Under "Uncategorized" in v2-changes.)
curious why you say that %%%var would rarely be used though?
I thought it was obvious. How often do you need a triple/quadruple-deref?
%x%y%z% is ambiguous (can be %x%, y, %z% or x%y%z deref'd)
Currently % begins a var deref and the next % ends it. Hypothetically, it would be the same with an expression except that any % enclosed in parentheses would be ignored (since to do otherwise would make the expression invalid). If there is ambiguity, it is only imaginary.
%x%(y)%z% is not ambiguous but doesn't do a double-deref
It's no more or less ambiguous than the example above. Since x%(y)%y
could be a valid double-deref, it could be misinterpreted in the same way that you suggested for the example without parentheses.
I think it would be pretty natural to write a double-deref as %x%y%z% and forget the parentheses.
That error has already been made by at least one user, and may be made again regardless of whether a double-deref is actually possible in that context.