Я люблю статический анализ и проверки во время компиляции, почти до отказа, но большая часть моей повседневной работы связана с Objective-C. Чтобы устранить это противоречие, я хотел бы иметь возможность писать свои собственные инструменты анализа, которые я мог бы запускать в своих проектах на Objective-C.
Но гугление в Интернете показывает, что людям трудно составить полную грамматику Objective-C. Один сайт обычно рекомендует сдаться.
Я нашел грамматику на веб-сайте ANTLR, но когда я запустил ее, я не смог заставить его анализировать что-либо вообще. Например, он ответил на строку:
void x();
с src/main/resources/somecode.m line 1:0 no viable alternative at input 'void'
:(
Я внимательно изучил грамматику и обнаружил следующее обескураживающее предупреждение:
it's a work in progress, most of the .h file can be parsed
Но мне нужно что-то, что может анализировать как интерфейс, так и реализацию.
Есть ли где-нибудь полная грамматика Objective-C 2.0? Я бы предпочел что-то, что может работать со Scala (поэтому все, что совместимо с Java, например, ANTLR, было бы идеально), но на данный момент я был бы готов адаптировать что-то, разработанное для другого инструментария парсера.