Если вы проверяете, что ваша семантика ведет себя так же, как в Zend-реализации PHP, я бы порекомендовал создать автоматизированный инструмент для генерации грамматики из BNF самого PHP. Таким образом, вы получите множество файлов .php, выражающих большую часть семантики. Не забудьте включить много кода трассировки в сгенерированные файлы.
Затем запустите его через реализацию Zend и вашу, чтобы убедиться, что вы получите такую же проверку. Используйте генерацию неработающего кода, чтобы убедиться, что вы тоже его поймаете. Только когда вы знаете, что ваша реализация верна (со странностями), вы можете двигаться дальше.
http://llvm.org/devmtg/2008-08/Lopes_PHP-JIT-InTwoDays.pdf может помочь. Посмотрите на людей, создающих PHP JIT для LLVM. Может предоставить некоторую информацию о том, как они проверяют правильность синтаксиса и семантики языка в сравнении с существующей реализацией.