The tokenizer didn't handle $$, but relied on token pasting of two $ tokens. This broke after the improvements in 9bb46df4.
Using hidden files are rather antisocial, and rather pointless in this particular context. Change .stdout and .stderr to simply stdout and stderr. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Using multiple %else clauses or mixing %else and %elif caused strange results. Warn about it and produce sensible results.