Введение
После публикации первой версии COBOL IDE на Delphi я получил несколько откликов и продолжил улучшать инструмент. В этой статье расскажу о новых возможностях: подключении внешних библиотек (например, GMP), улучшениях в подсветке синтаксиса и отладке, а также о небольших удобствах, которые появились в редакторе.
Что нового
🔹 Поддержка внешних библиотек (на примере GMP)
Теперь IDE позволяет компилировать программы с подключением дополнительных библиотек. Например, библиотека GMP (GNU Multiple Precision Arithmetic Library) может использоваться для работы с большими числами и точной арифметикой.
Для этого была добавлена поддержка дополнительных ключей компиляции, включая -I
, -L
и -l
, например:
cobc -x temp_compile.cbl -IC:/msys64/mingw64/include -LC:/msys64/mingw64/lib -lgmp
Это открывает путь к использованию математических и системных библиотек прямо из COBOL-кода.
🔹 Улучшенная подсветка синтаксиса
Обновлён
TCobolHighlighter
:Добавлены новые ключевые слова и разделители
Улучшена работа с кавычками и строками
Исправлена чувствительность к регистру
Подсветка стала быстрее и точнее даже на больших файлах
Пример с GMP
IDENTIFICATION DIVISION.
PROGRAM-ID. PAYROLL-CALCULATOR.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 EMPLOYEE-NAME PIC A(20).
01 HOURS-WORKED PIC 999.
01 HOURLY-RATE PIC 9(3)V99.
01 GROSS-PAY PIC 9(5)V99.
01 BONUS PIC 9(5)V99 VALUE 0.
01 TOTAL-BEFORE-TAX PIC 9(6)V99.
01 TAX-AMOUNT PIC 9(6)V99.
01 FINAL-PAY PIC 9(6)V99.
01 F-GROSS PIC $ZZ,ZZ9.99.
01 F-BONUS PIC $ZZ,ZZ9.99.
01 F-TOTAL-BEFORE-TAX PIC $ZZ,ZZ9.99.
01 F-TAX PIC $ZZ,ZZ9.99.
01 F-FINAL PIC $ZZ,ZZ9.99.
PROCEDURE DIVISION.
DISPLAY "Enter employee name:".
ACCEPT EMPLOYEE-NAME.
DISPLAY "Enter number of hours worked:".
ACCEPT HOURS-WORKED.
DISPLAY "Enter hourly rate (e.g., 15.75):".
ACCEPT HOURLY-RATE.
COMPUTE GROSS-PAY = HOURS-WORKED * HOURLY-RATE.
IF HOURS-WORKED > 160
COMPUTE BONUS = GROSS-PAY * 0.10
END-IF.
COMPUTE TOTAL-BEFORE-TAX = GROSS-PAY + BONUS.
COMPUTE TAX-AMOUNT = TOTAL-BEFORE-TAX * 0.13.
COMPUTE FINAL-PAY = TOTAL-BEFORE-TAX - TAX-AMOUNT.
MOVE GROSS-PAY TO F-GROSS.
MOVE BONUS TO F-BONUS.
MOVE TOTAL-BEFORE-TAX TO F-TOTAL-BEFORE-TAX.
MOVE TAX-AMOUNT TO F-TAX.
MOVE FINAL-PAY TO F-FINAL.
DISPLAY "Employee: " EMPLOYEE-NAME.
DISPLAY "Gross Pay: " F-GROSS.
DISPLAY "Bonus (if any): " F-BONUS.
DISPLAY "Total before tax: " F-TOTAL-BEFORE-TAX.
DISPLAY "Tax (13%): " F-TAX.
DISPLAY "Final Pay: " F-FINAL.
STOP RUN.
Итоги
С каждым обновлением COBOL IDE становится всё удобнее:
Подключение внешних библиотек
Более стабильная подсветка и редактор
Поддержка современных фич для обучения и прототипирования
Где скачать
Все исходники и последние обновления выложены в GitHub: