progress-4gl
составление
Поиск…
Вступление
Компилируйте код выполнения как «r-код» и обычно сохраняются в файле с расширением .r. Существует несколько различных способов компиляции: использование оператора COMPILE
или Linux или AppBuilder: встроенный компилятор приложений. Developer Studio (среда Eclipse) компилирует встроенный в процесс сборки.
У вас должно быть установлено 4GL Development или OpenEdge Studio для компиляции программ 4GL, которые обновляют базу данных.
Синтаксис
- COMPILE program.p СОХРАНИТЬ. // Компилируем program.p и сохраняем r-код
- СОСТАВНОЕ ЗНАЧЕНИЕ (var) СОХРАНИТЬ. // Скомпилируем имя, сохраненное в переменной "var", и сохраните r-код
- COMPILE prog.p XREF prog.xref LISTING prog.list. // Компилируем prog.p и создаем xref и листинг-файлы. Не сохраняйте r-код.
- COMPILE program.p СОХРАНИТЬ NO-ERROR. // Скомпилируйте program.p, сохраните ошибки r-code и supress, чтобы остановить выполнение.
Компилятор приложений
Windows AppBuilder
В приложении Windows Appbuilder Компилятор приложений находится в меню «Инструменты».
Редактор процедур (Linux- pro
или Windows pro.exe
В Редакторе процедур (как Linux, так и Windows) компилятор, если он найден в меню «Инструменты».
Компилятор приложений
Независимо от ОС функциональность компилятора одинакова. Вы можете добавлять каталоги и / или файлы и компилировать их.
Основные настройки (подробнее см. Ниже):
- Сохраните новый .r файл. Если не проверено, файлы будут просто скомпилированы, но не сохранены. Полезно, например, для отслеживания ошибок.
- Посмотрите в подкаталогах. В противном случае необходимо будет добавить подкаталоги.
- Удалите старые .r-файлы. Перезаписать старый .r файл.
- Onlu Compile, если нет .r файла. Только компилирует нескомпилированные файлы.
Опции:
- Propath - показывает вам протату и давайте вам выбирать каталоги для компиляции из него.
- Добавить - позволяет вводить каталог или файл.
- Изменить - позволяет изменить существующую запись.
- Удалить - удаляет запись.
- Start Compile - запуск компилятора. Ярлык: F2
Выбор главного меню:
- Файл -> Выход: выход из компилятора
- Compile -> Start Compile: запускает компилятор. Ярлык: F2
- Инструменты -> Доступ к другим инструментам
- Опция -> Компилятор ...: Настройки, ниже.
- Справка -> Справка OpenEdge (только для Windows). Онлайн помощь. Ярлык: F1
настройки
- Спецификация файла по умолчанию: расширения имен файлов для компиляции
- Файл журнала сообщений: файл для сохранения сообщений, предупреждений и ошибок в
- Сохранить в: Где хранить .r файл. Если пустая строка того же каталога, что и код.
- Языки: для переводов. Здесь не рассматривается.
- V6Frame: Старые и неиспользуемые ...
- Steam-IO: Если вы хотите распечатать вывод компилятора. Скорее всего, нет.
- Файл листинга: если вы хотите, чтобы компилятор создавал файл листинга. Полезно для отладки
- Добавить: добавить в существующий файл листинга. Иначе перезаписать.
- Ширина страницы + длина: формат файла листинга.
- Файл Xref: если вы хотите, чтобы компилятор создавал
XREF
. Полезно для отладки, проверки использования индекса и т. Д. - Формат XML: если компилятор xref должен быть xml. Иначе «простой» текст.
- Добавить: добавить к существующему файлу xref. Иначе перезаписать.
- Файл отладки: файл с отладчиком.
- Ключ шифрования: если исходный файл зашифрован с помощью
xcode
введите здесь ключ. - Минимизируйте R-код. Размер: удалите некоторую отладочную информацию, чтобы сохранить r-код маленьким.
- Генерировать MD-5: главным образом для компиляции WebClient.
Основное использование
- Запустить компилятор
- Добавить путь (если он еще не сохранен с последнего сеанса)
- Нажмите F2 для компиляции.
- Соблюдайте любые ошибки.
- Выход
Заявление COMPILE
Инструкция compile позволяет вам скомпилировать программы в Progress ABL:
Основное использование:
COMPILE hello-world.p SAVE.
С переменной:
DEFINE VARIABLE prog AS CHARACTER NO-UNDO.
prog = "hello.p".
COMPILE VALUE(prog) SAVE.
Для элемента COMPILE
есть несколько вариантов:
SAVE
заявляет, что .r-код должен быть сохранен для будущего использования.
COMPILE hello-world.p SAVE.
SAVE INTO dir OR SAVE INTO VALUE(dir-variable)
сохраняет r-код в указанном каталоге:
COMPILE hello-world.p SAVE INTO /usr/sources.
LISTING file
. Создает файл списка, содержащий отладочную информацию о блоках, включая и т. Д.
COMPILE program.p SAVE LISTING c:\temp\listing.txt.
В листинге есть несколько вариантов добавления файлов, размера страницы и ширины страницы:
APPEND PAGE-SIZE num PAGE-WIDTH num
XREF xreffile
сохранит файл xref компилятора, содержащий информацию об использовании строки и индекса и т. Д. Вы также можете APPEND
этот.
COMPILE checkFile.p SAVE XREF c:\directory\xref-file.txt.
XREF-XML xreffile-or-dir
будет делать то же самое, что и XREF
но XREF
сохранит файл в формате xml. Если вы используете каталог, xref-файл будет называться programname.xref.xml
.
COMPILE file.p SAVE XREF c:\temp\.
NO-ERROR
будет подавлять любые ошибки при остановке вашей программы.
COMPILE program SAVE NO-ERROR.
DEBUG-LIST file
генерирует отладочный файл с номерами строк.
COMPILE checkFile.p SAVE DEBUG-LIST c:\temp\debug.txt.
PREPROCESS file
сначала преобразует все препроцессоры, а затем создаст новый .p-файл с кодом перед компиляцией.
COMPILE checkFile.p SAVE PREPROCESS c:\temp\PREPROC.txt.
XCODE key
скомпилирует зашифрованный исходный код с key
качестве ключа. Вы не можете использовать XCODE вместе с параметрами XREF, XREF-XML, STRING-XREF или LISTING.
COMPILE program.p SAVE XCODE myKey.
Вы можете комбинировать несколько вариантов:
COMPILE prog.p SAVE INTO /usr/r-code XREF /usr/xrefs/xref.txt APPEND LISTING /usr/listings.txt APPEND NO-ERROR.
Обработка системы COMPILER
COMPILER
ручка COMPILER
позволяет вам просматривать информацию о компиляции последнего времени.
Предполагая, что ok-program.p
- это программа без каких-либо ошибок или предупреждений:
COMPILE ok-program.p SAVE NO-ERROR.
DEFINE VARIABLE iError AS INTEGER NO-UNDO.
MESSAGE
"Errors: " COMPILER:ERROR SKIP
"Warnings: " COMPILER:WARNING SKIP
"Messages: " COMPILER:NUM-MESSAGES
VIEW-AS ALERT-BOX INFORMATION.
Это позволит:
Компиляция программы с предупреждением:
/* program-with-warning.p */
DEFINE VARIABLE c AS CHARACTER NO-UNDO.
DEFINE VARIABLE i AS INTEGER NO-UNDO.
c = "hello".
DISPLAY c.
//This RETURN makes the program exit here and the code below unreachable.
RETURN.
IF TRUE THEN DO:
i = 10.
END.
Компиляция программы:
COMPILE program-with-warning.p SAVE.
DEFINE VARIABLE iError AS INTEGER NO-UNDO.
MESSAGE
"Errors: " COMPILER:ERROR SKIP
"Warnings: " COMPILER:WARNING SKIP
"Messages: " COMPILER:NUM-MESSAGES
VIEW-AS ALERT-BOX INFORMATION.
DO iError = 1 TO COMPILER:NUM-MESSAGES:
DISPLAY
COMPILER:GET-FILE-NAME(iError) LABEL "Filename" FORMAT "x(20)"
COMPILER:GET-MESSAGE(iError) LABEL "Message" FORMAT "x(50)"
COMPILER:GET-NUMBER(iError) LABEL "Msg#"
COMPILER:GET-ERROR-COLUMN(iError) LABEL "Column"
COMPILER:GET-ERROR-ROW(iError) LABEL "Row"
WITH FRAME fr1 SIDE-LABELS 1 COLUMNS.
END.
Результат:
Компиляция программы с ошибкой
DEFINE VARIABLE c AS CHARACTER NO-UNDO.
DEFINE VARIABLE i AS INTEGER NO-UNDO.
c = "hello".
DISPLAY c.
//Casting should be required below...
IF TRUE THEN DO:
i = c.
END.
Компиляция программы:
//Use no-errors to supress any error messages from interrupting us.
COMPILE c:\temp\program-with-error.p SAVE NO-ERROR.
DEFINE VARIABLE iError AS INTEGER NO-UNDO.
MESSAGE
"Errors: " COMPILER:ERROR SKIP
"Warnings: " COMPILER:WARNING SKIP
"Messages: " COMPILER:NUM-MESSAGES
VIEW-AS ALERT-BOX INFORMATION.
DO iError = 1 TO COMPILER:NUM-MESSAGES:
DISPLAY
COMPILER:GET-FILE-NAME(iError) LABEL "Filename" FORMAT "x(20)"
COMPILER:GET-MESSAGE(iError) LABEL "Message" FORMAT "x(50)"
COMPILER:GET-NUMBER(iError) LABEL "Msg#"
COMPILER:GET-ERROR-COLUMN(iError) LABEL "Column"
COMPILER:GET-ERROR-ROW(iError) LABEL "Row"
WITH FRAME fr1 SIDE-LABELS 1 COLUMNS 20 DOWN.
DOWN WITH FRAME fr1.
END.
Результат, почти ошибка на ошибки. «Не удалось понять» следует фактическая ошибка: