ANTLRv3 - это LL (k), и его можно настроить как LL (*). Последний, в частности, смехотворно прост в написании синтаксических анализаторов, так как вы можете по существу использовать EBNF как есть.
Кроме того, ANTLR генерирует код, который во многом похож на анализатор рекурсивного спуска, который вы пишете с нуля. Его можно легко прочитать и отладить, чтобы понять, почему анализ не работает или работает неправильно.
Преимущество Flex / Bison (или любого другого парсера LALR) в том, что он быстрее.