diff options
| author | kx <kx@radix-linux.su> | 2026-10-01 12:02:28 +0300 |
|---|---|---|
| committer | kx <kx@radix-linux.su> | 2026-10-01 12:02:28 +0300 |
| commit | ba1b04d64bdfaf377915b22f77520216ebe47674 (patch) | |
| tree | 044343035c28b2b04ca9725f26e9b7c39342d19c /man | |
| parent | 124b140798456778e2a96851cc7268aa9a726698 (diff) | |
| download | mcpu-cpp-1.0.2.tar.xz | |
Version 1.0.21.0.2
Diffstat (limited to 'man')
| -rw-r--r-- | man/Makefile.am | 6 | ||||
| -rw-r--r-- | man/mcpu-cpp.1 | 432 | ||||
| -rw-r--r-- | man/ru/Makefile.am | 8 | ||||
| -rw-r--r-- | man/ru/mcpu-cpp.1 | 428 |
4 files changed, 874 insertions, 0 deletions
diff --git a/man/Makefile.am b/man/Makefile.am new file mode 100644 index 0000000..19d0e63 --- /dev/null +++ b/man/Makefile.am @@ -0,0 +1,6 @@ + +SUBDIRS = ru + +MAN1 = mcpu-cpp.1 + +dist_man_MANS = $(MAN1) diff --git a/man/mcpu-cpp.1 b/man/mcpu-cpp.1 new file mode 100644 index 0000000..489de41 --- /dev/null +++ b/man/mcpu-cpp.1 @@ -0,0 +1,432 @@ +.TH MCPU-CPP 1 "October 2026" "MCPU-CPP 1.0.2" "User Commands" +.SH NAME +mcpu-cpp \- preprocessor for MCPU languages +.SH SYNOPSIS +.B mcpu-cpp +.RI [ options ] +.RI [ input +.RI [ output ]] +.SH DESCRIPTION +.B mcpu-cpp +is the preprocessor for the MCPU toolchain. It processes source text before +language-specific frontends, expands macros, evaluates conditional compilation, +resolves include files, maintains source-location information, and can generate +Make dependencies. +.PP +External text is UTF-8. Text is represented internally as strict UCS-2 through +LibMPUIO. Preprocessing identifiers are Unicode-aware: the first character +must be underscore or have the Unicode XID_Start property; following characters +may also be dollar sign or have XID_Continue. The dollar sign cannot start an +identifier. +.PP +Preprocessor directives use canonical English names only. Unicode remains +available in identifiers, strings, comments, diagnostics, and ordinary source +text. +.PP +If +.I input +is omitted or is +.BR - , +standard input is read. If +.I output +is omitted or is +.BR - , +normal preprocessing output is written to standard output. +.SH TEXT PROCESSING +Backslash-newline splicing is performed before directive parsing. C block +comments and C++-style line comments are removed by the preprocessing phase. +Long invisible source regions are represented compactly while preserving source +coordinates: short forward gaps are emitted as newlines, while larger gaps use +corrective GNU-style line markers. +.SH DIRECTIVES +The principal supported directives are: +.TP +.B #define +Define an object-like or function-like macro. +.TP +.B #undef +Remove a macro definition. +.TP +.BR #if , " #ifdef" , " #ifndef" , " #elif" , " #else" , " #endif" +Control conditional compilation. The +.B defined +operator is supported in +.B #if +expressions. +.TP +.B #include +Include a quoted or angle-bracket header. The operand may be produced by macro +expansion. +.TP +.B #include_next +Continue header lookup after the search-chain element that found the current +header. It is intended primarily for wrapper headers. +.TP +.B #pragma once +Process a physical header only once. Physical file identity is used rather +than source spelling. +.TP +.B #line +Set the logical source line and, optionally, logical source file name. Its +arguments undergo macro expansion; output uses GNU-style line markers. +.TP +.B #error +Emit an error diagnostic and terminate preprocessing unsuccessfully. +.TP +.B #warning +Emit a warning diagnostic and continue unless warning policy promotes it to an +error. +.TP +.B #lang +Push an MCPU language state. The argument is one quoted language name. +.TP +.B #endlang +Restore the previous MCPU language state. +.PP +.B #lang +and +.B #endlang +remain in the output stream for the later frontend dispatcher. The supported +language names are +.BR diff , +.BR dift , +.BR alg , +.BR as , +.BR avm , +and +.BR ACS . +Language matching is case-insensitive in ASCII, while the quoted spelling is +preserved in normalized +.B #lang +output. +.SH MACROS +Object-like and function-like macros are supported, including recursive rescan, +stringification with +.BR # , +token concatenation with +.BR ## , +variadic macros using +.B ... +and +.BR __VA_ARGS__ , +and standard +.BR __VA_OPT__ . +.PP +Ordinary macro arguments are expanded before substitution except where raw +arguments are required by stringification or token concatenation. Replacement +list horizontal whitespace is normalized without changing whitespace inside +quoted tokens or actual arguments. +.SH CONDITIONAL EXPRESSIONS +.B #if +expressions support integer and character constants, the +.B defined +operator, unary, arithmetic, shift, relational, equality, bitwise, logical, +conditional +.BR ?: , +and comma operators, with short-circuit evaluation for +.BR && , +.BR || , +and +.BR ?: . +.PP +Expression evaluation uses one 64-bit model. MCPU also supports the +.B zNNN +and +.B zNNNU +width suffixes for source integer literals with widths not exceeding 64 bits. +A negative shift count reverses shift direction according to the MCPU +preprocessing contract. +.SH INCLUDE SEARCH +For +.BR "#include \"file\"" , +the physical directory containing the current source file is searched first. +This step is omitted for +.BR "#include <file>" . +The remaining effective search order is: +.PP +.nf +explicit -I +explicit -isystem +MCPU_CPP_<LANG>_INCLUDE_PATH +MCPU_CPP_INCLUDE_PATH +MCPU_CPP_SYSTEM_INCLUDE_PATH/<lang> +MCPU_CPP_SYSTEM_INCLUDE_PATH +explicit -idirafter +MCPU_CPP_AFTER_INCLUDE_PATH +.fi +.PP +Within one search class, insertion order is preserved. The logical file name +set by +.B #line +does not alter quoted-header lookup. +.SH OPTIONS +.TP +.BI -o " FILE" +Write normal preprocessing output to +.IR FILE . +.TP +.BI -D " NAME[=VALUE]" +Define a command-line macro. If no value is given, the replacement is +.BR 1 . +.TP +.BI -U " NAME" +Undefine a command-line macro. +.TP +.BI -imacros " FILE" +Preprocess +.I FILE +for its macro and preprocessing state, but discard its ordinary output. All +.B -imacros +files are processed before all +.B -include +files. +.TP +.BI -include " FILE" +Preprocess +.I FILE +before the primary input. +.TP +.BR "-I DIR" ", " "-IDIR" +Add a user include directory. +.TP +.BI -isystem " DIR" +Add an explicit system include directory. +.TP +.BI -idirafter " DIR" +Add an include directory searched after the configured system tree. +.TP +.B -nostdinc +Suppress the effective standard-system include tree. Explicit +.B -isystem +directories remain active. +.TP +.B -dM +After preprocessing, dump non-predefined macro definitions. +.TP +.B -dMP +Dump predefined macros first, followed by the other macro definitions. +.TP +.B -dD +Preserve +.B #define +directives in normal preprocessing output. +.TP +.B -dconfig +Print the effective MCPU-CPP configuration and exit. +.TP +.B -dsearch-dirs +Print the effective include search directories and exit. +.TP +.B -M +Write one Make dependency rule including system headers and suppress normal +preprocessing output. +.TP +.B -MM +Like +.BR -M , +but omit system dependencies. +.TP +.B -MG +With dependency-only +.B -M +or +.BR -MM , +treat missing headers and missing forced files as generated dependencies rather +than errors. It is not valid with +.B -MD +or +.BR -MMD . +.TP +.B -MD +Generate dependencies including system headers while retaining normal +preprocessing output. +.TP +.B -MMD +Like +.BR -MD , +but omit system dependencies. +.TP +.BI -MF " FILE" +Write dependencies to +.IR FILE . +A file name of +.B - +means standard output. This option requires dependency generation. +.TP +.BI -MT " TARGET" +Set an explicit Make dependency target without Make quoting. The option may be +repeated. +.TP +.BI -MQ " TARGET" +Set an explicit Make dependency target with Make quoting. The option may be +repeated. +.TP +.BI --object-suffix " SFX" +Set the suffix used for the automatically derived dependency target. The +default is +.BR .o . +.TP +.B -w +Suppress all warnings. +.TP +.BR -Wcomment , " -Wcomments" +Enable warnings for nested +.B /* +inside a block comment and for backslash-newline inside a +.B // +comment. +.TP +.BR -Wno-comment , " -Wno-comments" +Disable comment warnings, including when +.B -Wall +is present. +.TP +.B -Wall +Enable all optional MCPU-CPP warning classes. +.TP +.B -Werror +Promote every warning that would be emitted to an error. This does not enable +new warning classes. +.TP +.B -Wno-error +Keep emitted warnings as warnings. +.TP +.BI --config-file " FILE" +Read only +.I FILE +as the explicit configuration layer on top of runtime-derived defaults. +.TP +.B --no-config +Do not read configuration files. Runtime-derived defaults remain active. +.TP +.BR -v , " --verbose" +Print configuration and include activity. +.TP +.B --help +Print command-line help and exit successfully. +.TP +.B --version +Print the program version and exit successfully. +.TP +.B -E +Accepted and ignored for compiler-driver compatibility. It is intentionally +not listed by +.BR --help . +.SH DEPENDENCIES +Dependency generation uses the same include traversal as ordinary +preprocessing, including conditional compilation, computed includes, +.BR #include_next , +and +.BR "#pragma once" . +Physical dependencies are deduplicated by physical file identity. +.PP +With +.B -M +or +.BR -MM , +normal preprocessing output is suppressed. With +.B -MD +or +.BR -MMD , +normal preprocessing output is retained and a side-effect dependency file is +written. If +.B -MF +is not specified, the dependency file name is derived from the input or +ordinary +.B -o +output name and receives a +.B .d +suffix. +.SH CONFIGURATION +Before reading configuration files, MCPU-CPP derives +.B MCPU_CPP_SYSTEM_INCLUDE_PATH +as +.IR <runtime-root>/include . +The runtime root is determined from the actual executable location, normally +through Linux +.IR /proc/self/exe . +.PP +Configuration layers are applied in increasing priority: +.PP +.nf +<runtime-root>/etc/mcpu-cpp.conf +/etc/mcpu/mcpu-cpp.conf +$HOME/.mcpu/mcpu-cpp.conf +.fi +.PP +The user configuration path variables are +.BR MCPU_CPP_INCLUDE_PATH , +.BR MCPU_CPP_AFTER_INCLUDE_PATH , +.BR MCPU_CPP_DIFF_INCLUDE_PATH , +.BR MCPU_CPP_DIFT_INCLUDE_PATH , +.BR MCPU_CPP_ALG_INCLUDE_PATH , +.BR MCPU_CPP_AS_INCLUDE_PATH , +.BR MCPU_CPP_AVM_INCLUDE_PATH , +and +.BR MCPU_CPP_ACS_INCLUDE_PATH . +The effective system root is controlled by +.BR MCPU_CPP_SYSTEM_INCLUDE_PATH . +A later definition replaces an earlier one, including an empty value. +.SH SOURCE LOCATIONS +MCPU-CPP emits GNU-style line markers of the form: +.PP +.nf +# line "file" [flags] +.fi +.PP +Flag 1 denotes entry into an included file and flag 2 denotes return to the +including file. Input +.B #line +directives change the logical values observed by +.B __LINE__ +and +.BR __FILE__ . +The predefined source macros also include +.B __BASE_FILE__ +and +.BR __INCLUDE_LEVEL__ . +.SH GNU-COMPATIBLE FEATURES +MCPU-CPP is an independent MCPU preprocessor, but intentionally follows GNU CPP +behavior for documented operations including object-like and function-like +macros, rescan, +.BR # , +.BR ## , +variadic macros, +.BR __VA_OPT__ , +conditional directives, +.BR #include , +.BR #include_next , +.BR "#pragma once" , +.BR #line , +GNU line markers, forced files, Make dependency options, and supported warning +controls. +.PP +MCPU-specific facilities such as +.BR "#lang / #endlang" , +the +.B zNNN +integer-literal suffix, and MCPU ABI predefined macros are native extensions. +.SH FILES +.TP +.I <runtime-root>/etc/mcpu-cpp.conf +Configuration installed with the relocatable MCPU runtime tree. +.TP +.I /etc/mcpu/mcpu-cpp.conf +Optional machine-wide configuration override. +.TP +.I $HOME/.mcpu/mcpu-cpp.conf +Optional per-user configuration override with the highest normal configuration +priority. +.SH EXIT STATUS +.B mcpu-cpp +returns zero after successful preprocessing or after successful informational +operations such as +.B --help +and +.BR --version . +It returns nonzero when command-line processing, configuration, preprocessing, +diagnostics promoted to errors, or output generation fails. +.SH SEE ALSO +.BR libmpu (7), +.BR libmpuio (7), +.BR zubr (1) diff --git a/man/ru/Makefile.am b/man/ru/Makefile.am new file mode 100644 index 0000000..cf13dfc --- /dev/null +++ b/man/ru/Makefile.am @@ -0,0 +1,8 @@ + +LANG = ru + +mandir = @mandir@/$(LANG) + +MAN1 = mcpu-cpp.1 + +dist_man_MANS = $(MAN1) diff --git a/man/ru/mcpu-cpp.1 b/man/ru/mcpu-cpp.1 new file mode 100644 index 0000000..c1bf7e3 --- /dev/null +++ b/man/ru/mcpu-cpp.1 @@ -0,0 +1,428 @@ +.TH MCPU-CPP 1 "Октябрь 2026" "MCPU-CPP 1.0.2" "Команды пользователя" +.SH ИМЯ +mcpu-cpp \- препроцессор языков MCPU +.SH СИНТАКСИС +.B mcpu-cpp +.RI [ параметры ] +.RI [ входной-файл +.RI [ выходной-файл ]] +.SH ОПИСАНИЕ +.B mcpu-cpp +\- препроцессор инструментария MCPU. Он обрабатывает исходный текст до передачи +языковым frontend, раскрывает макро, вычисляет условия условной компиляции, +выполняет поиск include-файлов, поддерживает информацию о позиции в исходном +тексте и может формировать зависимости Make. +.PP +Внешний текст имеет кодировку UTF-8. Внутри текст представлен строгим UCS-2 +средствами LibMPUIO. Идентификаторы препроцессора поддерживают Unicode: первый +символ должен быть подчёркиванием или иметь свойство Unicode XID_Start; +последующие символы дополнительно могут быть знаком доллара или иметь +XID_Continue. Знак доллара не может начинать идентификатор. +.PP +Директивы препроцессора имеют только канонические английские имена. Unicode +полностью сохраняется в идентификаторах, строках, комментариях, диагностике и +обычном исходном тексте. +.PP +Если +.I входной-файл +не задан или равен +.BR - , +читается стандартный ввод. Если +.I выходной-файл +не задан или равен +.BR - , +обычный результат препроцессирования записывается в стандартный вывод. +.SH ОБРАБОТКА ТЕКСТА +Склейка backslash-newline выполняется до разбора директив. Блочные комментарии +C и однострочные комментарии C++ удаляются фазой препроцессирования. Длинные +невидимые участки исходного файла представляются компактно с сохранением +исходных координат: короткие переходы задаются переводами строк, большие +переходы \- корректирующими GNU-style linemarkers. +.SH ДИРЕКТИВЫ +Основные поддерживаемые директивы: +.TP +.B #define +Определяет object-like или function-like macro. +.TP +.B #undef +Удаляет определение макро. +.TP +.BR #if , " #ifdef" , " #ifndef" , " #elif" , " #else" , " #endif" +Управляют условной компиляцией. В выражениях +.B #if +поддерживается оператор +.BR defined . +.TP +.B #include +Включает заголовочный файл в кавычках или угловых скобках. Operand может быть +получен macro expansion. +.TP +.B #include_next +Продолжает поиск header после элемента search chain, которым был найден текущий +header. Директива предназначена прежде всего для wrapper headers. +.TP +.B #pragma once +Обрабатывает физический header только один раз. Используется физическая +идентичность файла, а не написание его имени в исходном тексте. +.TP +.B #line +Задаёт логический номер строки и, необязательно, логическое имя исходного файла. +Аргументы проходят macro expansion; в выходе используются GNU-style +linemarkers. +.TP +.B #error +Выдаёт сообщение об ошибке и немедленно завершает препроцессирование неуспешно. +.TP +.B #warning +Выдаёт предупреждение и продолжает работу, если политика предупреждений не +повышает его до ошибки. +.TP +.B #lang +Помещает состояние языка MCPU в стек. Аргументом является одно имя языка в +кавычках. +.TP +.B #endlang +Восстанавливает предыдущее состояние языка MCPU. +.PP +.B #lang +и +.B #endlang +сохраняются в выходном потоке для последующего frontend dispatcher. +Поддерживаются имена языков +.BR diff , +.BR dift , +.BR alg , +.BR as , +.BR avm +и +.BR ACS . +Сравнение имени языка выполняется без учёта ASCII-регистра, а написание внутри +кавычек сохраняется в нормализованном выводе +.BR #lang . +.SH МАКРО +Поддерживаются object-like и function-like macros, повторный macro rescan, +stringification оператором +.BR # , +token concatenation оператором +.BR ## , +variadic macros с +.B ... +и +.BR __VA_ARGS__ , +а также стандартный +.BR __VA_OPT__ . +.PP +Обычные фактические аргументы раскрываются до подстановки, кроме случаев, когда +stringification или token concatenation требуют сырого аргумента. Горизонтальные +пробелы replacement list нормализуются без изменения пробелов внутри quoted +tokens и фактических аргументов. +.SH УСЛОВНЫЕ ВЫРАЖЕНИЯ +Выражения +.B #if +поддерживают целые и символьные константы, оператор +.BR defined , +унарные, арифметические, shift, relational, equality, bitwise, logical, +условный оператор +.B ?: +и оператор comma. Для +.BR && , +.BR || +и +.B ?: +используется short-circuit evaluation. +.PP +Вычисление выражений выполняется в единой 64-битной модели. MCPU дополнительно +поддерживает суффиксы разрядности +.B zNNN +и +.B zNNNU +для исходных целых литералов с разрядностью не более 64 бит. Отрицательное +значение shift count меняет направление сдвига согласно контракту +препроцессора MCPU. +.SH ПОИСК INCLUDE-ФАЙЛОВ +Для +.B "#include \"file\"" +сначала проверяется физический каталог текущего исходного файла. Для +.B "#include <file>" +этот шаг отсутствует. Остальная effective search chain имеет строгий порядок: +.PP +.nf +explicit -I +explicit -isystem +MCPU_CPP_<LANG>_INCLUDE_PATH +MCPU_CPP_INCLUDE_PATH +MCPU_CPP_SYSTEM_INCLUDE_PATH/<lang> +MCPU_CPP_SYSTEM_INCLUDE_PATH +explicit -idirafter +MCPU_CPP_AFTER_INCLUDE_PATH +.fi +.PP +Внутри одного search class сохраняется порядок добавления. Логическое имя, +заданное +.BR #line , +не изменяет поиск quoted header. +.SH ПАРАМЕТРЫ +.TP +.BI -o " ФАЙЛ" +Записывает обычный результат препроцессирования в +.IR ФАЙЛ . +.TP +.BI -D " ИМЯ[=ЗНАЧЕНИЕ]" +Определяет макро командной строки. +.TP +.BI -U " ИМЯ" +Отменяет определение макро командной строки. +.TP +.BI -imacros " ФАЙЛ" +Полностью препроцессирует +.I ФАЙЛ +для изменения macro/preprocessing state, но отбрасывает его обычный вывод. Все +.B -imacros +обрабатываются раньше всех +.BR -include . +.TP +.BI -include " ФАЙЛ" +Препроцессирует +.I ФАЙЛ +до основного входного файла. +.TP +.BR "-I КАТАЛОГ" ", " "-IКАТАЛОГ" +Добавляет пользовательский include-каталог. +.TP +.BI -isystem " КАТАЛОГ" +Добавляет явный системный include-каталог. +.TP +.BI -idirafter " КАТАЛОГ" +Добавляет include-каталог, который ищется после configured system tree. +.TP +.B -nostdinc +Исключает effective standard-system include tree. Явные каталоги +.B -isystem +остаются активными. +.TP +.B -dM +После препроцессирования выводит определения непредопределённых макро. +.TP +.B -dMP +Сначала выводит предопределённые макро, затем остальные определения. +.TP +.B -dD +Сохраняет директивы +.B #define +в обычном выходном потоке. +.TP +.B -dconfig +Выводит effective configuration MCPU-CPP и завершает работу. +.TP +.B -dsearch-dirs +Выводит effective include search directories и завершает работу. +.TP +.B -M +Выводит одно правило зависимостей Make с системными headers и подавляет обычный +результат препроцессирования. +.TP +.B -MM +Аналог +.BR -M , +но без системных зависимостей. +.TP +.B -MG +В dependency-only режимах +.B -M +или +.B -MM +считает отсутствующие headers и forced files генерируемыми зависимостями, а не +ошибками. С +.B -MD +и +.B -MMD +не используется. +.TP +.B -MD +Формирует зависимости с системными headers, сохраняя обычный результат +препроцессирования. +.TP +.B -MMD +Аналог +.BR -MD , +но без системных зависимостей. +.TP +.BI -MF " ФАЙЛ" +Записывает зависимости в +.IR ФАЙЛ . +Имя +.B - +означает стандартный вывод. Параметр имеет смысл только при генерации +зависимостей. +.TP +.BI -MT " ЦЕЛЬ" +Задаёт явную цель правила Make без Make quoting. Параметр можно повторять. +.TP +.BI -MQ " ЦЕЛЬ" +Задаёт явную цель правила Make с Make quoting. Параметр можно повторять. +.TP +.BI --object-suffix " СУФФИКС" +Задаёт суффикс автоматически формируемой цели зависимости. По умолчанию +используется +.BR .o . +.TP +.B -w +Подавляет все предупреждения. +.TP +.BR -Wcomment , " -Wcomments" +Включает предупреждения о вложенном +.B /* +внутри блочного комментария и о backslash-newline внутри комментария +.BR // . +.TP +.BR -Wno-comment , " -Wno-comments" +Выключает comment warnings, в том числе при наличии +.BR -Wall . +.TP +.B -Wall +Включает все optional warning classes MCPU-CPP. +.TP +.B -Werror +Повышает каждое реально выдаваемое предупреждение до ошибки, но само не +включает новые классы предупреждений. +.TP +.B -Wno-error +Оставляет выдаваемые предупреждения предупреждениями. +.TP +.BI --config-file " ФАЙЛ" +Использует только явно выбранный +.I ФАЙЛ +как configuration layer поверх runtime-derived defaults. +.TP +.B --no-config +Не читает configuration files. Runtime-derived defaults остаются активными. +.TP +.BR -v , " --verbose" +Выводит информацию об effective configuration и include activity. +.TP +.B --help +Выводит краткую справку по командной строке и успешно завершает работу. +.TP +.B --version +Выводит версию программы и успешно завершает работу. +.TP +.B -E +Принимается и игнорируется для совместимости с compiler drivers. Параметр +намеренно не показывается в +.BR --help . +.SH ЗАВИСИМОСТИ +Генерация зависимостей использует тот же include traversal, что и обычное +препроцессирование, включая условную компиляцию, computed includes, +.BR #include_next +и +.BR "#pragma once" . +Физические зависимости дедуплицируются по физической идентичности файла. +.PP +В режимах +.B -M +и +.B -MM +обычный результат препроцессирования подавляется. В режимах +.B -MD +и +.B -MMD +он сохраняется, а dependency file формируется как side effect. Если +.B -MF +не задан, имя dependency file выводится из имени входного файла или обычного +выхода +.B -o +и получает суффикс +.BR .d . +.SH КОНФИГУРАЦИЯ +До чтения configuration files MCPU-CPP формирует +.B MCPU_CPP_SYSTEM_INCLUDE_PATH +как +.IR <runtime-root>/include . +Runtime root определяется из фактического расположения исполняемого файла, +обычно через Linux +.IR /proc/self/exe . +.PP +Configuration layers применяются в порядке возрастания приоритета: +.PP +.nf +<runtime-root>/etc/mcpu-cpp.conf +/etc/mcpu/mcpu-cpp.conf +$HOME/.mcpu/mcpu-cpp.conf +.fi +.PP +Пользовательские переменные путей: +.BR MCPU_CPP_INCLUDE_PATH , +.BR MCPU_CPP_AFTER_INCLUDE_PATH , +.BR MCPU_CPP_DIFF_INCLUDE_PATH , +.BR MCPU_CPP_DIFT_INCLUDE_PATH , +.BR MCPU_CPP_ALG_INCLUDE_PATH , +.BR MCPU_CPP_AS_INCLUDE_PATH , +.BR MCPU_CPP_AVM_INCLUDE_PATH +и +.BR MCPU_CPP_ACS_INCLUDE_PATH . +Effective system root задаётся +.BR MCPU_CPP_SYSTEM_INCLUDE_PATH . +Более позднее определение полностью заменяет раннее, включая пустое значение. +.SH ПОЗИЦИИ В ИСХОДНОМ ТЕКСТЕ +MCPU-CPP выводит GNU-style linemarkers вида: +.PP +.nf +# line "file" [flags] +.fi +.PP +Флаг 1 означает вход во включённый файл, флаг 2 \- возврат в включающий файл. +Входная директива +.B #line +изменяет логические значения +.B __LINE__ +и +.BR __FILE__ . +К предопределённым source macros также относятся +.B __BASE_FILE__ +и +.BR __INCLUDE_LEVEL__ . +.SH GNU-COMPATIBLE FEATURES +MCPU-CPP является самостоятельным препроцессором MCPU, но для документированных +операций намеренно повторяет поведение GNU CPP. К ним относятся object-like и +function-like macros, rescan, +.BR # , +.BR ## , +variadic macros, +.BR __VA_OPT__ , +условные директивы, +.BR #include , +.BR #include_next , +.BR "#pragma once" , +.BR #line , +GNU linemarkers, forced files, параметры генерации зависимостей Make и +поддерживаемые warning controls. +.PP +MCPU-специфичные средства +.BR "#lang / #endlang" , +суффикс целых литералов +.B zNNN +и предопределённые макро ABI MCPU являются собственными расширениями. +.SH ФАЙЛЫ +.TP +.I <runtime-root>/etc/mcpu-cpp.conf +Конфигурация, установленная вместе с перемещаемым runtime tree MCPU. +.TP +.I /etc/mcpu/mcpu-cpp.conf +Необязательная общесистемная configuration override. +.TP +.I $HOME/.mcpu/mcpu-cpp.conf +Необязательная пользовательская configuration override с наивысшим обычным +приоритетом. +.SH КОД ЗАВЕРШЕНИЯ +.B mcpu-cpp +возвращает ноль после успешного препроцессирования и после успешных +информационных операций, например +.B --help +и +.BR --version . +При ошибке командной строки, конфигурации, препроцессирования, диагностике, +повышенной до ошибки, или ошибке вывода возвращается ненулевое значение. +.SH СМ. ТАКЖЕ +.BR libmpu (7), +.BR libmpuio (7), +.BR zubr (1) |
