Задача: препроцессор
Описание
Требуется разработать программу «по мотивам» стадартного препроцессора языка C.
Функциональные требования
- Программа должна принимать имена входного и выходного файлов в качестве параметров коммандной строки.
- В процессе работы, программа должна осуществлять препроцессинг входного файла:
- Осуществлять сцепление строк, разделенных программистом посредством "\".
- Встраивать включаемые файлы (рекурсивно).
- Заменять комментарии пустыми строками.
- Осуществлять макроподстановки.
- Осуществлять подготовку текста для условной компиляции.
- Программа должна поддерживать следующие комманды препроцессора:
- #include
- #define
- #undef
- #ifdef | #ifndef / #else / #endif
- #if / #else / #endif
- При поиске включаемых файлов, файлы, указанные в угловых скобках, должны искаться в первую очередь в системных каталогах с заголовочными файлами.
- Программа должна поддерживать следующие опции коммандной строки:
Требования к проекту
Тестирование
Препроцессированные исходные тексты на
C, не содержащие неподдерживаемых директив препроцессора, должны безошибочно компилироваться.
Дополнительная информация