Моя цель не состоит в том, чтобы писать компилятор C, однако мне требуется полный синтаксис языка программирования C. Это позволит мне писать программы для более удобного форматирования, управления и анализа программ и библиотек на Си. Для этого у меня нет другого выбора, кроме как получить полный синтаксис языка.
Синтаксис должен четко указывать, что является действительным, а что нет. Рассмотрим следующую строку кода:
int (x) = 0;
Программист переменного тока, взглянув на это утверждение, может сомневаться в его достоверности, и пока он не попытается скомпилировать его, он может не знать, что это действительно допустимый C. Конечно, легко сказать, что оно эквивалентно int x = 0;
и что заключенные в скобки вокруг x
являются избыточными, но для программиста, который впервые его видит, неясно, разрешено это или нет.
Это уровень детализации, который мне требуется в отношении полного синтаксиса языка. Разработчику должно быть достаточно использовать его для написания компилятора, который может скомпилировать любой код на Си, даже если я не собираюсь писать компилятор, но для моего проекта требуются полные синтаксические сведения.