Несмотря на то, что уже как-то поздновато рассказывать про опции транслятора icont (в Windows — wicont), но все-таки, как показала практика, рассказать очень даже надо.
Напомню прежде всего следующее: наиболее оптимальный вариант трансляции Icon-программ — это трансляция их через командную строку (и не надо пугаться — это не так уж сложно и муторно), поэтому открываем командную строку (в Windows — Пуск > Стандартные > Командная строка) и заходим в папку, в которой лежит исходный код программы для трансляции.
Наш основной инструмент в этом деле — это транслятор icont (в UNIX-системах) или wicont (в Windows-системах). При этом не суть в какой системе вы запускаете транслятор — опции во всех системах одинаковы и приводят к тем же результатам.
Итак, общий пример использования транслятора выглядит так:
icont [опции,через пробел] файл.icn
либо так:
wicont [опции,через пробел] файл.icn
При этом виндовым пользователям не очень-то повезло, ибо им приходиться указывать полный путь к транслятору (если, конечно он не запускается из папки самого транслятора, т.е. из папки C:/WINICON/BIN/) т.е. с учетом сказанного, команда примет вид:
C:/WINICON/BIN/wicont [опции,через пробел] путь к файлу исходника
Ну, а теперь сами опции транслятора с примерами: (опция — назначение — пример)
-с Сгенерировать ucode и остановиться. Генерирует код виртуального Icon-компьютера, что бывает полезно для создания собственных библиотек, которые могут быть подгружены командой link, после применения этой команды получаются два файла с расширениями *.u1 и *.u2.
Пример использования:
C:/WINICON/BIN/icont -с С:/test.icn
(в данном примере в ucode транслируется файл test.icn, расположенный на диске C:/. И кстати сказать, файлы с ucode окажутся в той же папке, что и файлы исходника)
-s Подавить вывод информационных сообщений транслятора во время компиляции/линковки. Эта опция запретит транслятору выдачу любых сообщений в ходе трансляции (в том числе, и сообщений об ошибках). Настоятельно, рекомендую не использовать. Опция применяется совместно с другими опциями, например:
C:/WINICON/BIN/icont -s -с С:test.icn
сгенерирует ucode без «лишних слов» (т.е. не выдавая ни единого сообщения)
-o Генерация исполняемого файла. Эта опция в отличие от предыдущих требует аргумент после себя, которым служит путь к исполняемому файлу, т.е команда имеет вид:
C:/WINICON/BIN/icont -o [путь к исполняемому файлу] [путь к исходнику]
Пример выполнения:
C:/WINICON/BIN/icont -o C:/test/test.exe C:/Icon/test.icn
создаст test.exe в папке C:/test из исходника, расположенного в C:/Icon. Виндовым пользователям в этом плане повезло — у них генерируется полноправный автономный исполняемый файл, а вот в никсовых системах генерируется скрипт, с включенным внутрь байт-кодом Icon и в этом скрипте, указывается путь до iconx (исполнителя icode), но впрочем, как сказал Грегг Таунсенд — возможно распространение приложений виде папки в которой лежат сгенерированный скрипт и бинарная версия iconx 🙂
-u Выявление необъявленных переменных. Эта опция выводит список всех переменных в программе, которые не объявлены должным образом (т.е не указаны в local, global, static и т.п).
Пример работы:
C:/WINICON/BIN/icont -u С:/test.icn
выявит и выведет в консоль те переменные, которые использованы без декларации в файле test.icn.
-v Выставить уровень детализации информационных сообщений. Эта опция также имеет аргумент — целое число, которое устанавливает насколько подробны будут сообщения транслятора, при этом если указать число 0 — то на выходе не будет никаких сообщений вообще.
Пример использования:
C:/WINICON/BIN/icont -v 0 С:/test.icn
установит нулевой уровень детализации для сообщений транслятора в ходе обработки файла test.icn
-x Оттранслировать и запустить на исполнение. Эта опция необычна тем, что она идет после указания пути к файлу, а не перед ним — да и еще позволяет после себя указание аргументов для программы.
Пример:
C:/WINICON/BIN/icont С:/test.icn -x
выполнить файл test.icn
P.S : Это конечно не все команды, однако это минимальный уровень, необходимый для разработки собственных приложений.
И еще одно : если захотите испытать команды то исправьте косые черты (слэши) на противоположно направленные 🙂