Google
 

Trailing-Edge - PDP-10 Archives - bb-jr93g-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