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/variable/expansion/buildfile | 26 ++++++++++++++++++++++++++ tests/variable/expansion/test.out | 6 ++++++ tests/variable/expansion/test.sh | 3 +++ 3 files changed, 35 insertions(+) create mode 100644 tests/variable/expansion/buildfile create mode 100644 tests/variable/expansion/test.out create mode 100755 tests/variable/expansion/test.sh (limited to 'tests/variable/expansion') diff --git a/tests/variable/expansion/buildfile b/tests/variable/expansion/buildfile new file mode 100644 index 0000000..3f28372 --- /dev/null +++ b/tests/variable/expansion/buildfile @@ -0,0 +1,26 @@ +foo = FOO + +print $foo +print $(foo) + +# Invalid. +# +#print $ +#print $() +#print $(foo bar) +#print $(foo{bar}) + +# Indirect. +# +FOO = foo +print $($FOO) +print $($(FOO)) +print $($($FOO)) + +# Quoted name. +# +"b a r" = BAR +print $("b a r") +#print $"b a r" + +./: diff --git a/tests/variable/expansion/test.out b/tests/variable/expansion/test.out new file mode 100644 index 0000000..5056f04 --- /dev/null +++ b/tests/variable/expansion/test.out @@ -0,0 +1,6 @@ +FOO +FOO +FOO +FOO +foo +BAR diff --git a/tests/variable/expansion/test.sh b/tests/variable/expansion/test.sh new file mode 100755 index 0000000..b898b3c --- /dev/null +++ b/tests/variable/expansion/test.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +valgrind -q b -q | diff -u test.out - -- cgit v1.1