Ну вообще-то, то что вы перечислили это генераторы парсеров и лексеров.
Т.о. это не компиляция. А куда вы вообще собрались компилировать ?
Лучше использовать что-то очень стандартное и распространенное. Т.о. вы сделав один раз грамматику, можете нагенерировать много кода под разные платформы и языки программирования.
С другой стороны такие грамматики неизбежно будут включать вставки вашего кода, и это будет уменьшать портируемость грамматики.
Т.о. а что вы вообще задумали сделать ?