In some cases function visibility is changed by pretty printing
bug #274 In some cases function visibility is changed by pretty printing (chrismcmacken)

This PR was squashed before being merged into the 0.4.x-dev branch (closes #274).

Discussion
----------

In some cases function visibility is changed by pretty printing

The statement below is converted improperly and the visibility is changed from __protected__ to __public__, which is obviously not intended.

```
protected
abstract function blah();
```

Results in the following
```
abstract public function blah();
```

this fixes issue #272

Commits
-------

c96a30d In some cases function visibility is changed by pretty printing