Я генерирую код C на основе информации, предоставленной другим файлом (файлом XML). Некоторые фрагменты C включены в этот XML-файл и должны быть дословно включены в мой сгенерированный C-файл. Я хочу использовать директиву #line, чтобы, если эти чанки содержали ошибку, пользователь увидел номер строки в файле XML, из которого получен чанк. Например, я хочу сгенерировать код вроде:
int main() {
#line 35 "file.xml"
....
#line
}
Я хочу как-то "закрыть" раздел #line, я имею в виду, что, если есть ошибка, например с закрытием} и сгенерированным моей программой, пользователь должен не видеть "ошибку в строке 36 файла file.xml", которая для них будет бессмысленной и запутать их.
Например, я мог бы представить, что сама по себе директива #line (как в моем примере) будет делать что-то подобное. Но это не работает, и в gcc docs на # line .
нет упоминаний о подобных объектах.
Есть ли какое-то такое средство, которое я пропускаю? Или я просто прошу чего-то, чего не существует? Как бы вы пошли о такой проблеме?