Reserved words are the fixed vocabulary of Easytrieve—IF, JOB, REPORT, END-PROC, SYSDATE, BEFORE-LINE, and hundreds more documented in Broadcom Symbols and Reserved Words. They introduce statements, name report hooks, and expose system values. You cannot declare a user field named IF or EXECUTE without conflicting with the language. Releases add reserved words over time; 11.6 migration lists broke legacy programs that used SET or LOGICAL-RECORD as innocent field names. This page explains reserved versus non-reserved keywords, major categories, migration impact, and how to fix conflicts before production compile.
All reserved words are keywords, but not all keywords are reserved. Keywords are words with specific meaning to Easytrieve. Reserved keywords additionally cannot be used as field names. Non-reserved keywords might legally appear as identifiers in some contexts, though doing so confuses maintainers. When in doubt, treat language vocabulary as off limits for field naming and choose business-specific names instead.
| Category | Examples | Role |
|---|---|---|
| Statement keywords | IF, JOB, FILE, REPORT, PERFORM, END-IF | Introduce statements and blocks |
| Report PROC hooks | BEFORE-LINE, AFTER-BREAK, TERMINATION, REPORT-INPUT | Name report writer event procedures |
| Screen PROC hooks | BEFORE-SCREEN, AFTER-SCREEN, INITIATION | Name screen activity procedures |
| System fields | SYSDATE, SYSTIME, SYSPRINT, PAGE-NUMBER | Built-in values referenced in logic and reports |
| Constants concepts | LOW-VALUES, HIGH-VALUES, DUPLICATE, EOF | Special comparison and control values |
Library and Activity programming relies on reserved statement words: PARM, FILE, DEFINE, JOB, PROGRAM, SORT, SCREEN, IF, ELSE, END-IF, DO, END-DO, CASE, END-CASE, MOVE, ADD, PRINT, WRITE, READ, EXECUTE, STOP, GOTO, PERFORM, PROC, END-PROC, REPORT, TITLE, LINE, CONTROL, SUM. These tokens are never valid as field names. Compile errors citing unexpected keyword often mean a field was named like a statement word.
Report procedures use reserved label names paired with PROC: REPORT-INPUT filters records before detail printing; BEFORE-BREAK and AFTER-BREAK surround control breaks; BEFORE-LINE and AFTER-LINE bracket detail lines; ENDPAGE handles page boundaries; TERMINATION runs at report end. Screen activities use INITIATION, BEFORE-SCREEN, AFTER-SCREEN, and TERMINATION similarly. These names are reserved because the product invokes them automatically—you do not PERFORM them like user PROCs.
12345678910111213REPORT PAY-RPT LINESIZE 80 TITLE 01 'PAYROLL' LINE 01 EMPNO GROSS REPORT-INPUT. PROC IF GROSS LE 0 SKIP END-IF END-PROC TERMINATION. PROC DISPLAY 'REPORT COMPLETE' END-PROC
System fields expose runtime information without DEFINE declarations. SYSDATE and SYSTIME supply current date and time for report titles. PAGE-NUMBER and LINE-NUMBER support formatting. RECORD-COUNT may reflect file statistics in documented contexts. Reference these names in LINE or TITLE statements; do not DEFINE a conflicting user field with the same spelling.
Moving from older releases to 11.6 function mode introduced additional reserved words. Broadcom New Reserved Words documentation lists fields that break if used as user names, including BREAK-LEVEL, DRAW, ELEMENT-RECORD, END-REPEAT, EXECUTE, GRAPH, HIGH-VALUES, INITIATION, LOGICAL-RECORD, LOW-VALUES, NOTITLE, SET, SUMMARY-INDEX, and SYSUSERID. Inventory source libraries before migration: search for these tokens in FILE and DEFINE lines and rename with prefixes like WS- or FL-.
Symbols and Reserved Words also documents punctuation symbols—period, comma, colon, quotes, parentheses, plus and minus continuation—not as field names but as syntax symbols with reference codes. The R marker in documentation indicates reserved status. Consult the official alphabetical list when compile errors reference an unfamiliar token—you may have hit a newly reserved word or system field.
Some words feel like English and tempt naming—ORDER, COUNT, DATE. Check the reserved list before committing names in shared copybooks. A field named DATE might conflict with date type syntax or system conventions depending on release. Prefer EMP-HIRE-DATE over DATE alone. Report PROC name BEFORE-LINE is always reserved; user PROC CALC-LINE is safe.
Reserved words are official command words the Easytrieve robot already knows. You cannot name your toy box IF or JOB because those words tell the robot to do special jobs. Some words are also special report helper names the robot calls by itself, like BEFORE-LINE. When the robot learns new command words in an upgrade, old box names that match them must get new stickers so the robot does not get confused.
1. Reserved words in Easytrieve:
2. Non-reserved keywords:
3. BEFORE-LINE and REPORT-INPUT are:
4. EXECUTE became reserved in 11.6, meaning:
5. The full reserved word list is in: