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