A full rewrite was necessary to keep this project compatible with the PHP's new features, such as attributes, enums, read-only properties, named parameters, anonymous classes, and so on. This wasn't ...