A simple test follows:
${message}
${dummy}
Now get into variable nesting:
${hash.output}
${hash["output"]}
${hash. output}
${hash .output}
${hash .output}
${hash . output}
${hash ["output"]}
${hash [ "output" ]}
More deep nesting...
${hash2.value.output}
${hash2.value.key[0]}
${hash2["value"]["key"][0]}
Nesting inside nesting...
${hash2.value[ items.mykey ][ 1 ]}
${hash2.value[ items[ "mykey" ]][ 1 ]}
${hash2.value[ items[ "my" + items.mykey ]][ 1 ]}
${hash2.value[ items[ "my" + items["mykey"] ]][ 1 ]}
Test underscores...
${items[ "_test" ]}
${items._test}
Test literals in a variable expression:
1 + 2 = ${ 1 + 2 }
${ items._test + 3}
${ items._test eq "out" }
Test #empty
"hello" + #empty = ${"hello" + #empty}
#empty + "hello" = ${#empty + "hello"}
3 + #empty = ${3 + #empty}
#empty + 4 = ${#empty + 4}
3 + 4 + #empty = ${3 + 4 + #empty}
3 + #empty + 4 = ${3 + #empty + 4}
#empty + 3 + 4 = ${#empty + 3 + 4}