From 694e9efc16bd0cc1c202d047afa1ed1688046e9e Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 11 Jan 2020 13:26:26 +0000 Subject: [PATCH] Syntax: Incompatible change: Use &{ not &${ for macros This will be more orthogonal with $( which will come in a moment. Signed-off-by: Ian Jackson --- README | 2 +- generate | 4 ++-- tests/filter/Dir.sd.mk | 2 +- tests/filter/extract-doctests | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README b/README index 4493a0d..b42356d 100644 --- a/README +++ b/README @@ -219,7 +219,7 @@ STUFF $ THINGS .. STUFF $$ THINGS &: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) diff --git a/generate b/generate index bcbbf79..c2dc42d 100755 --- a/generate +++ b/generate @@ -371,11 +371,11 @@ sub process_input_mk ($$$$) { $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?)"; diff --git a/tests/filter/Dir.sd.mk b/tests/filter/Dir.sd.mk index a9da21f..f5e2868 100644 --- a/tests/filter/Dir.sd.mk +++ b/tests/filter/Dir.sd.mk @@ -14,7 +14,7 @@ WARN += 3 # &$NOWARN1 $(NOWARN1) # &$NOWARN2 $(NOWARN2) -&${ some-macro, 42, $x, { &$- $(foreach something) } } +&{ some-macro, 42, $x, { &$- $(foreach something) } } $&FBAR diff --git a/tests/filter/extract-doctests b/tests/filter/extract-doctests index 130c237..e4141e6 100755 --- a/tests/filter/extract-doctests +++ b/tests/filter/extract-doctests @@ -147,7 +147,7 @@ sub writeout ($) { # 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, -- 2.30.2