From 7a2f5753a12a68e87f8556f6e833710f147533b2 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 9 Sep 2015 14:10:24 +0200 Subject: Add support for evaluation context For now it acts as just the value mode that can be enabled anywhere variable expansion is supported, for example: (foo=bar): And the primary use currently is to enable/test quoted and indirect variable expansion: "foo bar" = FOO BAR print $"foo bar" # Invalid. print $("foo bar") # Yeah, baby. foo = FOO FOO = foo print $($foo) Not that you should do something like this... --- tests/quote/buildfile | 10 ++++++++++ tests/quote/test.out | 6 ++++++ 2 files changed, 16 insertions(+) (limited to 'tests/quote') diff --git a/tests/quote/buildfile b/tests/quote/buildfile index 6dd22b4..19c2bfc 100644 --- a/tests/quote/buildfile +++ b/tests/quote/buildfile @@ -19,4 +19,14 @@ print $foo'bar' print $foo"$bar" print "$foo"bar +# Quoting and evaluation context. +# +print ("x{foo bar}") +#print "(x{foo bar})" # multiple values in concatenating context expansion +print "({foo})" +print "('foo bar')" +print "("foo bar")" +print "("$foo bar")" +print "("$foo ($bar)")" + ./: diff --git a/tests/quote/test.out b/tests/quote/test.out index 216b1c8..f5d7a71 100644 --- a/tests/quote/test.out +++ b/tests/quote/test.out @@ -12,3 +12,9 @@ fo o bar fo obar fo o bar fo obar +x{foo bar} +foo +foo bar +foo bar +fo o bar +fo o bar -- cgit v1.1