Currently variables are parsed in a more liberal way than what php allows. For example: isset($a->f()); is parserd by phply, but not by php.
Splitting the definition of a variable into something closer to rvalue/lvalue (can/cannot be assigned) could make things simpler. But not necessarily - experiment.