This will be more orthogonal with $( which will come in a moment.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
&:endm .. endef
NAME is processed for &
-&${..$..} => ${eval ${call ..$$..}}
+&{..$..} => ${eval ${call ..$$..}}
(matches { } pairs to find the end)
content is $-doubled (unless it contains &$- to turn that off)
$note_varref->($2,!!$1) if m{^($esc)?([^()\$]+\))};
}
elsif (s{^\$(\d+)}{}) { ddbl_only($&); oud "\${$1}"; }
- elsif (s{^\$\{}{}) {
+ elsif (s{^\{}{}) {
err 'macro invocation cannot be re-$-doubled' if $ddbl;
od '${eval ${call ';
$evalcall_brackets = 1;
- $push_nest->('eval',1, '&${...}');
+ $push_nest->('eval',1, '&{...}');
$note_varref->($2,!!$1) if m{^\s*($esc)?([^,{}\$]+)};
} elsif (s{^([~^]?)(?=[ \t])}{}) {
my $prefix = $pfxmap{$1} // die "internal error ($1?)";
# &$NOWARN1 $(NOWARN1)
# &$NOWARN2 $(NOWARN2)
-&${ some-macro, 42, $x, { &$- $(foreach something) } }
+&{ some-macro, 42, $x, { &$- $(foreach something) } }
$&FBAR
# adhoc: skip &:macro in already-doubling part
return 0 if $e->{In} =~ m{^\&\:macro};
# adhoc: skip &${ ie eval in already-doubling part
- return 0 if $e->{In} =~ m{^\&\$\{};
+ return 0 if $e->{In} =~ m{^\&\{};
return 0 if $e->{CQ};
return $e->{DD} || !grep {
# If there are two entries with the same In,