Утилита командной строки mxxc является интерпритатором и средой исполнения для языка M++.
Формат вызова:
mxxc [<arg> [<arg> [...]]] [@<resp-file> [@<resp-file> [...]]]
Если существует переменная среды MXX4, то указанные в ней аргументы разбираются перед началом разбора командной строки. В переменной среды MXX4 можно указывать только аргументы -d, -u, -i;
Если указываются response-файлы, то их содержимое обрабатывается после разбора командной строки. В response-файлах можно указывать любые аргументы за исключением имен response-файлов.
Если не задан аргумент -api, то в аргументах должно быть указано имя файла с программой M++. Если имя файла не указано, то mxxc проверяет наличие в текущем каталоге файла с именем default.4xx. Если такой файл существует, то mxxc выполняет содержащуюся в нем программу. Если в текущем каталоге нет файла default.4xx, то mxxc выдает на стандартный поток вывода короткую справку о текущей версии и аргументах mxxc. Получить такую же справку можно указав в командной строке один из агрументов: -?, -h, -help, --help.
Аргументы mxxc, указываемые в переменной среды MXX4, командной строке и response-файлах должны следовать следующим правилам:
Формат: -a <name> <value>
Задает скалярное значение аргументу с именем <name>. Получить это значение можно из mxx-кода при помощи функций mxxc_arg, mxxc_arg_as_array, mxxc_arg_names.
Формат: -aa <name> <value>
Добавляет еще одно скалярное значение аргументу-вектору с именем <name>. Получить это значение можно из mxx-кода при помощи функций mxxc_arg, mxxc_arg_as_array, mxxc_arg_names.
Формат: -api
Предписывает отобразить на стандартный поток вывода список всех функций M++ API реализованных в данной версии mxxc. Для каждой функции отображается краткое описание.
После выдачи описания функций M++ API утилита mxxc завершает свою работу. Поэтому не имеет смысла использовать этот аргумент совместно с другими аргументами.
Формат: -c
Предписывает только скомпилировать M++ программу, но не выполнять ее. Основное назначение данного ключа - проверка синтаксической правильности программ.
Формат: -d <id>[=[<value>]]
Определяет символ препроцессора id. Имя символа препроцессора должно быть уникальным (т.е. символа препроцессора с таким именем быть не должно). Если указано значение value, то это значение будет присвоено этому символу препроцессора.
Не должно быть пробелов между идентификатором и знаком =. Если указан только знак равенства, но без значения (-d id=), то будет создан символ препроцессора с пустым значением (что эквивалентно -d id).
Можно указывать произвольное количество аргументов -d.
Формат: -i <path>
Добавляет указанный path к списку путей к стандартным подключаемым файлам.
Можно указывать произвольное количество аргументов -i.
Формат: -pre
Предписывает выдать результат обработки программы препроцессором на стандартный поток вывода. После этого утилита mxxc завершает свою работу.
Формат: -sf <filename>
Аналогичен параметру -f, но указанный файл ищется в путях стандартных подключаемых файлов.
Формат: -u <id>
Удаляет символ препроцессора id. Отсутствие указаного символа ошибкой не считается.
Можно указывать произвольное количество аргументов -u.
Аргументы -u обрабатываются перед тем, как будут обработаны аргументы -d.