The main concerns of this chapter are:
(123) Mentioning the existence of get_next
(in the next chapter), skip_ahead
, and skip_comment
.
(124 to 138) Merging the web file and change file
(139) Function for converting an @&
(etc.) control code to an internal (8-bit) code
(140) Skipping ahead to the next control code
(141) When in a comment, skipping to end of comment
Correspondingly, this part/chapter contains the following that are used outside this part:
Globals defined here and used outside this section: line
, limit
, loc
related to the current line number, its length, and how much of it has been read,
Procedure get_line
, which puts the next line (from either the WEB file or the .ch changefile) into buffer
(and updates limit
etc).
Function control_code
, which translates from occurrences of @*
in the input (for various values of *
) to corresponding tokens(?)
Function skip_ahead
and procedure skip_comment
, which find the next control code and skip to end of comment, respectively.
Below,
the module name “Skip over comment lines in the change file…” can be read as “Look in the change file until finding a line starting with @x
”.
the module name “Skip to the next nonblank line…” can be read as “Look in the change file for the first nonblank line following the current line that starts with @x
”.
the module “Move buffer
and limit
to change_buffer
and change_limit
” is because input_ln
puts the just-input line and its length in those variables, but we want to keep them in change_buffer
and change_limit
instead.
This check_change
below is another top-level procedure.
Perhaps the main procedure “exported” from this section/chapter is the get_line
function below.