Fix 'Not enough argument definitions' exception when parsing less usual constructs
Fixes #173 (closed).
Of course, (regexp ...) (dstr ...) and (yield) are actually pretty common. The virtual machine has ignored these constructs but it has worked in most cases because child nodes provided the value.
puts // # (regexp (regopt))
/foo/i # (regexp (str "foo") (regopt :i))
puts <<EOS # (dstr)
EOS
puts "foo#{bar}" # (dstr (str "foo") (begin (send nil :bar)))