Да, эти хорошие подходы начинаются с ограничения формализма, а не с маниловщины "хочу парсить вообще всё".
И я примерно описал, что хочется подсвечивать (а не парсить, кстати — к примеру, в C макрос может раскрываться в тонны кода (и ими будет заниматься компилятор) — но к подсветке они вообще не имеют отношения).
Т.е. формально — это контекстно-зависимые грамматики, по идее, не более (если это кому-то на самом деле интересно ;) ).