The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

B.6 Нумерация строк

B.6 Нумерация строк

Предыдущая  Содержание  Следующая V*D*V

Препроцессор должен вывести штампы #line так, чтобы компилятор C мог связать свои сообщения об ошибках с оригинальными исходными файлами. К сожалению, ooc обрабатывает несколько входных файлов, чтобы создать некоторые выходные строки, то есть всё выглядит так, что нет явной связи между файлами описаний классов, исходными файлами и выходной строкой. Кроме того, если файлы отчёта отформатированы, чтобы быть понятными, они имеют тенденцию генерировать много пустых строк, которые в свою очередь могли бы привести к большому числу штампов #line.

Мы идём на компромисс и генерируем штамп #line только тогда, когда отчёт запрашивает его. Штамп может основываться на классе, методе или имени компонента структуры, или он может записать текущее имя входного файла и номер строки. Текущая позиция входного файла доступна как FILENAME и FNR из модуля io.awk. Другие позиции были записаны parse.awk. Функция genLineStamp() в report.awk собирает требуемую информацию и создаёт штамп #line.

Возможна оптимизация через подсчёт выходных строк — вся информация доступна в report.awk. Однако опыт показывает, что это значительно замедляет ooc. Несколько дополнительных штампов #line или переводов строк не сильно удлиняют компиляцию.

Полностью эта опция доступна только если установить глобальную переменную lines в ненулевое значение. Это находится под контролем опции -l, передаваемой командному скрипту ooc.

 

Предыдущая  Содержание  Следующая