Data shift
Data shifting attempts to shift the body of a program statement without shifting the label or comments, and prevents loss of data. This shift is non-destructive because it stops before it shifts a nonblank character past the bound. This shift is explicitly done with the < and > line commands, and the SHIFT < and SHIFT > macro commands. The CHANGE command can cause an implicit shift of the same nature.
For data shift left attempts that exceed the current BOUNDS setting,
text stops at the left bound and PDF marks the shifted lines with ==ERR>
flags.
If an error occurs in an excluded line, you can find the error with
LOCATE, and remove the error flag by using RESET.
- Anything beginning at the left bound is a label and should not be shifted.
- If there are two or more consecutive blanks, one can be added or deleted.
- Blanks within quotes (
'
or"
) are to be treated as nonblanks. - Source statements appear on the left followed by comments on the right.
- Single blanks are used between source code and comment words.
Therefore, the only strings of multiple blanks appear between the
source code and the comment, and between the comment and its ending
delimiter (if there is one). In this example,
LABEL
and*/
are at the left and right bounds, respectively:LABEL: DO I=1 TO 5; /* The comment... */ A=A+B(I); /* The comment... */ END;
Keeping the previous assumptions in mind, the editor attempts to move only the source code statement when shifting data. The label and comments are left unchanged. However, if necessary, it shifts the comment also.
Although the editor always uses these assumptions, data shifting is not language-sensitive. It only makes generalities about syntax and individual code entry style.