Statement terminators tell the compiler where one instruction ends and the next begins. Easytrieve uses implicit line endings, explicit period-space separators, continuation characters, and block-ending keywords like END-PROC and END-IF. Beginners who mash two assignments on one line without a period, or who leave a stray plus at line end, trigger errors that point to the wrong statement. This page explains each termination mechanism, when to use it, and how it interacts with comments and multi-statement lines.
In the default statement area columns 1-72, the last non-blank character normally terminates the statement unless that character is a continuation sign. A simple line like MOVE A TO B ends at the final B. The compiler does not require a trailing period on every line when only one statement occupies the record. This implicit termination keeps source readable and matches how most programmers write one statement per line.
To place more than one statement on a single line, end the first with a period followed by at least one space, then start the next statement. The period is a delimiter, not part of a decimal literal in that role—it marks statement boundary. Inline comments also use period-space-asterisk after a complete statement on the same line.
12COST = FIXED + VARIABLE. PRICE = COST + PROFIT TOTAL = COST + TAX. * inline comment after assignment
First line holds two assignments separated by period-space. Second line assigns TOTAL then documents intent with inline comment syntax. Without the period after VARIABLE, the compiler would interpret PRICE as part of the first expression incorrectly or fail with syntax errors.
When a statement does not fit one line, the last non-blank character may be minus (-) or plus (+) to continue on the next record. Minus continuation resumes at the start of the next statement area. Plus continuation resumes at the first non-blank character on the next line. Between words, both styles behave similarly in Broadcom examples; difference matters when splitting inside a literal or token.
1234567FIELD-NAME W 6 A + VALUE 'ABC - DEF' FIELD-NAME W 6 A + VALUE 'ABC + DEF'
Both forms define the same VALUE literal split across lines when continuation rules are applied correctly. Do not place comments on continuation lines inside the continued statement—the compiler rejects comments within continued statements.
| Mechanism | When used | Effect |
|---|---|---|
| Line end (implicit) | Single statement per line | Last non-blank ends statement |
| Period + space | Multiple statements or inline comment | Explicit boundary before next token |
| Trailing minus (-) | Long statement continues next line at column 1 | Suppresses termination at line end |
| Trailing plus (+) | Long statement continues next line at first non-blank | Suppresses termination at line end |
| END-* keywords | Closing IF, PROC, DO blocks | Delimits structured block, not general lines |
END-IF, END-PROC, END-DO, and similar keywords close structured blocks opened by IF, PROC, or DO. They are not interchangeable with period-space line terminators. An END-IF does not allow another unrelated statement on the same line unless period-space rules still apply after the END-IF token. Nesting blocks requires matching END keywords in correct order— the compiler matches IF to END-IF across nested levels like other structured languages.
Period also appears as delimiter after labels: proc-name. PROC uses period between label and keyword. Do not confuse label period with statement terminator period-space in multi-statement lines. Decimal points inside numeric literals follow numeric literal rules, not statement termination rules. Context determines which role period plays.
Characters beyond column 72 in the default area are ignored or treated as sequence area depending on site setup. A statement that runs past column 72 without continuation appears truncated to the compiler, often producing mysterious incomplete token errors. Use continuation rather than wrapping blindly. Columns topic covers sequence numbers in 73-80 when shops require them.
Full-line comments starting with * never terminate other statements—they are separate records. Inline comments require a completed statement, then period, spaces, asterisk, comment text. You cannot start inline comment in the middle of an incomplete statement. Continued statements forbid embedded comment lines until the continuation completes.
Statement terminators are punctuation that tells the computer where one instruction ends. A newline is like putting the period at the end of a sentence on its own line. Period-space is like writing two short sentences on one line with a dot between them. Minus and plus at the line edge mean the sentence continues on the next line of paper. END-IF is like writing the end of a story chapter—not every sentence, but a whole section wrapped up.
1. Multiple statements on one line are separated by:
2. The last non-blank character ends a statement unless it is:
3. Minus (-) continuation at line end means:
4. Plus (+) continuation differs from minus when:
5. END-PROC terminates: