Trailing-Edge
-
PDP-10 Archives
-
bb-jr93i-bb
-
7,6/ap019/lexica.c19
There are 9 other files named lexica.c19 in the archive. Click here to see a list.
REP 24/1 ;19C1
GLOBAL BIND LEXICV = #11^24 + 0^18 + #4545; ! Version Date: 7-Aug-86
WIT
GLOBAL BIND LEXICV = #11^24 + 0^18 + #4602; ! Version Date: 13-Jan-88
INS 429/1 ;19C2
***** End V10 Development *****
4602 DCE 13-Jan-88
Much more work to handle long sequences of comment lines properly.
The reported symptom was that if more than 100 comment lines follow
various statements (like PROGRAM, SUBROUTINE, FUNCTION, etc.), the
line number may drop back at some point in the listing. There are
other problems having to do with printing error lines properly on
the terminal, lines not printing to the listing at all, continuation
lines printing twice, and others. These problems are all intertwined,
and simple fixes to any of them were not possible without breaking
other cases within the test system. Thus this patch is rather large,
and requires changes in LEXCLA as well as removing edit 4564 in
LISTNG.
***** End Revision History *****
REP 314/5 ;19C3
%2526% LINLCURR = .LINLCURR - LINLSENT;
%2526% LINELINE = .LINENUM(LINLCURR);
%2474% ENTCALCONT; ! Continuation processing
WIT
%4602% LINELINE = .LINENUM(LINLCURR);
%4602% LINLCURR = .LINLCURR - LINLSENT;
%4602% CHARPOS = 72;
%4602% LINEPTR = .CURPTR;
%4602% LASTLINE = .LINENUM(LINLCURR); ! Save line number
%4602% ! Check for line sequence number
%4602% IF LINESEQBIT
%4602% THEN
%4602%
BEGIN
%4602% LINESEQNO( CURPTR<ADRS> ); ! Decode number
%4602% LINEPTR = .CURPTR; ! Adjust beginning pointer
%4602% ISCAN ( CHAR , CURPTR )
%4602% END;
%4602% CODE = BIGCODE; ! Code is BIGCODE for CHAR
%4602% LINLCURR = .LINLCURR + LINLSENT;
%4602% CONTLCUR = .LINLCURR; ! Linked list backup entry
%4602% CALL (STCONTINUE); ! Process new line
%4602% LEAVE SMALCHAR; ! from continuation point
INS 70/8 ;19C4
%4602% IF .LASTCODELINE LSS .LINLCURR THEN
REP 292/11 ;19C5
%2474% BEGIN ! Next codeline is in linked list
%2474% DO SKIPDL() ! Get to next line
%2474% UNTIL .HASCODE(LINLCURR) OR .NOCONTINUE(LINLCURR);
WIT
%4602% DO
%4602% BEGIN ! Print comments, blank lines, etc.
%4602% IF NOT .INCLAS THEN PRINT(.LINLCURR);
%4602% SKIPDL()
%4602% END
%4602% UNTIL .HASCODE(LINLCURR) OR .NOCONTINUE(LINLCURR)
%4602% ELSE ! Just skip one line if we are at LASTCODELINE
%4602% BEGIN
%4602% IF NOT .INCLAS THEN PRINT(.LINLCURR);
%4602% SKIPDL()
%4602% END;
REP 314/11 ;19C6
%2474% END ! Next codeline is in linked list
%2474% ELSE
%2474% BEGIN ! No more code lines in linked list
%2474% SKIPDL(); ! Get to next line
%2560% CHARPOS = 72;
%2474% IF .NOCONTINUE(LINLCURR)
%2474% THEN
%2474% BEGIN ! No continuation
%2474% IF .CHAR NEQ EOF THEN CHAR = EOS;
%2474% CODE = FOS;
%2474% LEAVE NEWSTATE;
%2474% END; ! No continuation
%2474% ! Reprocess this line
%2474% CALL(STCONTINUE);
%2474% LEAVE SMALCHAR;
%2474% END; ! No more code lines in linked list
WIT
!%4602% END; ! Block of code removed/restructured.
SUM 227333