&{..$..} => ${eval ${call ..$$..}}
(matches { } pairs to find the end)
content is $-doubled (unless it contains &$- to turn that off)
+ cf &(...), see "Convenience syntax for eval", below.
Together &:macro and &${...} provide a more reasonable macro facility
than raw make. They solve the problem that make expansions cannot
or places where this might imply $-quadrupling. (There is no way to
get $-quadrupling.)
+Convenience syntax for eval
+- - - - - - - - - - - - - -
+
+&(thing => $(call thing
+&( thing => $(call thing
+ and specially:
+&(&lc => $(call sub_dir_lc or $(call TOP_lc
+&( &lc => $(call sub_dir_lc or $(call TOP_lc
+ even though lc would normally be thought a filename
+
+Unlike &{...}, this does not involve any dollar-doubling.
+
Invocation, "recursive" per-directory targets
---------------------------------------------
$note_varref->($2,!!$1) if m{^($esc)?([^()\$]+\))};
}
elsif (s{^\$(\d+)}{}) { ddbl_only($&); oud "\${$1}"; }
+ elsif (s{^\(\s*$esc(?=$lc_re)}{}) { od "\$(call ${var_prefix}" }
+ elsif (s{^\(\s*(?=\S)}{} ) { od "\$(call " }
elsif (s{^\{}{}) {
err 'macro invocation cannot be re-$-doubled' if $ddbl;
od '${eval ${call ';