Man pages на русском



              

M4(1)


НАЗВАНИЕ

m4 - макропроцессор

СИНТАКСИС

m4 [-e] [-s] [-Bцелое] [-Hцелое] [-Sцелое] [-Tцелое] [-Dимя[=значение] [-Uимя] [файл ...]

ОПИСАНИЕ

Макропроцессор m4 предназначен для макрогенерации на предварительном проходе в языках RATFOR, C и других. Все файлы-аргументы обрабатываются по очереди. Если файлы не указаны, или в качестве имени файла задан -, то читается стандартный ввод. Обработанный текст записывается на стандартный вывод.

Допустимы следующие опции:

-e Работать интерактивно. Прерывания игнорируются и вывод не буферизуется.

-s Разрешить вывод операторов #line для C-препроцессора.

-Bцелое Сменить размеры буфера повторного сканирования и буфера, в котором накапливаются аргументы. По умолчанию размер равен 4096.

-Hцелое Сменить размер хэш-таблицы имен с 199 по умолчанию. Размер должен быть простым числом.

-Sцелое Сменить размер стека вызовов со 100 элементов по умолчанию. Макрос занимает 3 ячейки в стеке вызовов; аргумент занимает одну ячейку.

-Tцелое Изменить размер буфера лексем с 512 байт по умолчанию.

Чтобы эти опции действовали, они должны располагаться перед всеми именами файлов и перед опциями -D и -U:

-Dимя[=значение] Эта опция определяет имя равным значению или пустой цепочке, если значение отсутствует.

-Uимя Делает имя неопределенным.

Макровызовы имеют следующий вид:

имя(арг1,арг2, ...аргn)

Левая скобка должна следовать непосредственно за именем макроса. Если за именем определенного макроса не следует (, то полагается, что макрос вызван без аргументов. Имя макроса может состоять из букв, цифр и символов подчеркивания, причем первым символом не может быть цифра.

В процессе сбора аргументов m4 игнорирует не заключенные в кавычки начальные пробелы, табуляции и символы перевода строки. Для того, чтобы запретить интерпретацию цепочки символов, их заключают между правой и левой одинарными кавычками:

`эта цепочка не интерпретируется'

Значение цепочки символов, заключенной в кавычки, равно самой этой цепочке без внешних кавычек.

Когда имя макроса распознано, его аргументы собираются путем поиска парной правой скобки. Если аргументов оказалось меньше, чем используется в определении макроса, то последним аргументам будут даны пустые значения. В процессе сбора аргументов продолжается макрообработка и все не взятые в кавычки запятые и правые скобки, которые образовались в результате вложенных макровызовов, действуют так же, как будто они встретились в исходном тексте. После сбора аргументов значение макроса сканируется повторно, так как если бы оно было в исходном тексте.

M4 предоставляет следующие встроенные макросы, которые могут быть переопределены, но в этом случае их первоначальный смысл теряется. Значения встроенных макросов, если не оговорено противное, равны пустой цепочке.




Содержание    Вперед