Fix bug where Array was returned, not Expression

Hi, I'm playing around with accelerators and noticed that an expression like the following becomes an array by accident:

    expression = a.str('\\') >> a.any |
      a.str("''") |
      a.str("'").absent? >> a.any

`expression` is an array (the value of @args) when it should be an Expression.