Язык программирования с [препроцессорными директивами][1] сложен для обработки, поскольку в этом случае необходимо вычислять значения директив, вырезать ненужные фрагменты некомпилируемого кода, а затем производить парсинг очищенного кода. Обработка директив может осуществляться также во время парсинга обычного кода. Данная статья подробно описывает оба подхода применительно к языку Objective-C, а также раскрывает их достоинства и недостатки. Эти подходы существуют не только в теории, но уже реализованы и используются на практике в таких веб-сервисах, как Swiftify и Codebeat.
[![][2]][3]
**Swiftify** — веб-сервис для преобразования исходников на Objective-C в Swift. На данный момент сервис поддерживает обработку как одиночных файлов, так и целых проектов. Таким образом, он может сэкономить время разработчикам, желающим освоить новый язык от Apple.
[![][4]][5]
**Codebeat** — автоматизированная система для подсчета метрик кода и проведения анализа для различных языков программирования, в том числе и Objective-C.
[Читать дальше →][6]
[1]:
https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%B8%D0%B2%D0%B0_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
[2]:
https://habrastorage.org/files/d3c/d53/8db/d3cd538db7604fe3ad10f759a9042d76.jpg
[3]:
https://habrahabr.ru/post/318954/
[4]:
https://habrastorage.org/files/f81/032/e83/f81032e83f4d45cba5a529fad9df9834.png
[5]:
https://habrahabr.ru/post/318954/
[6]:
https://habrahabr.ru/post/318954/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut