From: Ian Jackson Date: Sat, 11 Jan 2020 13:26:26 +0000 (+0000) Subject: Syntax: Incompatible change: Use &{ not &${ for macros X-Git-Tag: v0.6.1~24^2~9 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=694e9efc16bd0cc1c202d047afa1ed1688046e9e;p=secnet.git Syntax: Incompatible change: Use &{ not &${ for macros This will be more orthogonal with $( which will come in a moment. Signed-off-by: Ian Jackson --- 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,