chiark / gitweb /
Syntax: Provide &$VARIABLE
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 9 Dec 2019 16:31:59 +0000 (16:31 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 28 Dec 2019 22:19:08 +0000 (22:19 +0000)
Testing is done by the doctests.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
README
generate

diff --git a/README b/README
index 4da40911ce83909e880874de657b6d4db797992b..6bc8e82d8611f4a31525e9c0f22590446d170a1a 100644 (file)
--- a/README
+++ b/README
@@ -251,6 +251,9 @@ So pathname syntax is a subset of:
 &\&            =>      &               general escaping mechanism
 &\$            =>      $
 
+&$VARIABLE     =>      $(sub_dir_VARIABLE)     or $(TOP_VARIABLE)
+       VARIABLE is ASCII starting with a letter and matching \w+
+
 & thing thing... &
 &^ thing thing... &
 &~ thing thing... &
index dd6df29451ba1327f63055f57945c007a73aa566..e7da43542b3b45f309313dca470122d0a2d26b6c 100755 (executable)
--- a/generate
+++ b/generate
@@ -162,6 +162,7 @@ sub process_input_mk ($$$$$$$$$) {
                $targets->{$t} //= [ ];
            }
            elsif (m{^(?=$caps_re)}) { o $var_prefix }
+           elsif (s{^\$([A-Za-z]\w+)}{}) { o "\$(${var_prefix}$1)" }
            elsif (s{^([~^]?)(?=$lc_re)}{}) { o $pfxmap{$1} }
            elsif (s{^_}{}) { o $var_prefix }
            elsif (s{^=}{}) { o $var_prefix_name }