Trailing-Edge
-
PDP-10 Archives
-
FORTRAN-10_V7wLink_Feb83
-
lexaid.bli
There are 12 other files named lexaid.bli in the archive. Click here to see a list.
!THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
! OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
!COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1974, 1983
!AUTHOR: D. B. TOLMAN/PLB
! LEXAID.BLI
GLOBAL BIND LEXAIV = 7^24 + 0^18 + #1563; ! Version Date: 18-Jun-82
%(
***** Begin Revision History *****
***** Begin Version 7 *****
1563 PLB 18-Jun-82
Change OUTTYx macros for TOPS-20 native execution,
and REQUIRE FTTENX.
***** End Revision History *****
)%
REQUIRE 'FTTENX.REQ'; ![1563] NEEDED FOR OUTTYx MACROS
! MACROS WHICH DEFINE THE RELATIONAL LEXEME CODES
MACRO
REL(N) = RELATIONLOP^18+N$,
DOTNE = REL(6)$,
DOTEQ = REL(2)$,
DOTGT = REL(7)$,
DOTLT = REL(1)$,
DOTGE = REL(5)$,
DOTLE = REL(3)$;
! THIS FILE CONTAINS THE BINDS FOR THE CHARACTER CASSIFICATION
! CODES AND THEIR NAMES, USED BY ROUTINE LEXICAL. NOTE THAT THE
! CODE NAMES AND LEXEME NAMES HAVE BEEN OVERLAYED AS MUCH AS
! POSSIBLE SO AS TO MAINTAIN A MINIMUM OF CONFUSION.
!
! --------------------------------------------------
! CARACTER CODE CLASSIFICATIONS, USED BY ROUTINE LEXICAL
! THE "SMALL" STATES USE ONLY THE FIRST 11 CODES.
! THE "BIG" STATES USE THE ENTIRE 32 CODES.
!
! CARACTER CODES 11 THROUGH 21 ARE THE SAME NAME AND ASSOCIATED
! NUMBER AS THE LEXEME NAMES.
!
! --------------------------------------------------
BIND
ILL = 1, % ILLEGAL CHARACTER%
TAB = 2,
LT = 3, % <CR>, <LF>, <VT>, AND <FF> %
BLANK = 4,
SPEC = 5, % FORTRAN-10 RECOGNIZED SPECIAL CHARACTERS%
DIGIT = 6, % 0,1,...,9 %
UPPER = 7, % UPPER CASE ALPHABETIC %
LOWER = 8, % LOWER CASE ALPHABETIC %
FOS = 9, % END OF FILE OR END OF STATEMENT %
EOB = 10, % POSSIBLE END OF INTERNAL STATEMENT BUFFER OR END OF FILE
CONTROL-Z AND DELETE (177) ARE CLASSIFIED AS THIS
CNTROL-Z AND INPUT FROM TTY: IMPILES EOF
A FULL WORD OF 1'S IMPLIES END OF INTERNAL STATEMENT BUFFER %
REMARK = 11, % ! %
LASTSMALCODE= REMARK , % LAST SMALL STATE CHARACTER CODE %
% THE FOLLOWING 11 ARE IDENTICAL TO THE LEXEME NAMES
ANDSGN = 12,
LPAREN = 13,
RPAREN = 14,
COLON = 15,
COMMA = 16,
DOLLAR = 17,
MINUS = 18,
SLASH = 19,
PLUS = 20,
ASTERISK = 21,
EQUAL = 22,
%
LTSGN = 23, % < %
GTSGN = 24, % > %
NEQSGN = 25, % # %
DOT = 26, % . %
SEMICOL = 27, % ; %
LITSGN = 28, % ' %
OCTSGN = 29, % " %
COMNTSGN= 30, % UPPER AND LOWER CASE C %
DEBUGSGN= 31, % UPPER AND LOWER CASE D %
UPAROW = 32, % ^ %
LASTBIGCODE = UPAROW ; % LAST BIG STATE CHARACTER CODE %
! SOME BINDS ONTO THE END OF THE CHARACTER SET
BIND EOF = #200 , ! END OF FILE ON INPUT
OVRFLO = #201 , ! INTERNAL STATEMENT BUFFER OVERFOW
EOS = #202 ; ! END OF STATEMENT INDICATOR
EXTERNAL ENDOFILE;! END OF FILE INDICATOR RETURNED BY LEXICAL
! END OF INTERNAL STATEMENT BUFFER INDICATOR. A WORD
! THAT EQUALS THIS IN THE INTERNAL STATEMENT BUFFER INDICATES
! THAT THIS IS THE END.
BIND
ENDBUFLAG = #777777777776 ;
MACRO LEFT = 18,18 $,
ADRS = 0,0 $,
RIGHT = 0,18 $ ;
EXTERNAL POOL; ! INTERNAL STATEMENT BUFFER
EXTERNAL CURPTR ; ! POINTER TO CURRENT CHARACTER IN POOL
BIND POOLSIZE = 600 ;
BIND POOLEND = POOL[POOLSIZE-1]<0,0> ;
MACRO CURWORD = .CURPTR<RIGHT> $;
EXTERNAL CURPOOLEND ;
BIND POOLBEGIN = POOL[0]<0,0> ;
EXTERNAL EOPSAVE ;
BIND SAVESIZE = EOPSAVE<LEFT> ,
SAVESTART = EOPSAVE<RIGHT> ;
MACRO FIRSTCHAR = 29,7 $;
MACRO LASTCHAR = 1,7 $;
BIND LF = #12,
VT = #13,
FF = #14,
CR = #15;
! LINE PROCESSING GLOBALS
EXTERNAL
LINELINE, ! CURRENT LINE NUMBER
LASTLINE, ! LAST LINE NUMBER
CHARPOS, ! CARACTER POS ON PRINT LINE
ISN, ! STATEMENT LINE NUMBER
STPTR, ! CHARACTER POINTER TO BEGINNING-1 OF STATEMENT
STLPTR, ! CHARACTER POINTER TO BEGINNING-1 OF LINE CONTAINING CURRENT STATEMENT
STPOS, ! CARACTER POS ON LINE OF BEGINNING OF STATEMENT
! WILL BE 72 IF BEGINNING OF LINE
ERRFLAG, ! IF 1 INDICATES THAT THERE HAVE ALREADY BEEN
! ERRORS IN THIS STATEMENT
LINEPTR, ! CHARACTER POINTER TO BEGINNING CHARACTER-1 OF LINE
SEQLAST, ! IF 1 INDICATES THAT THE LINE BEGINNING THIS PROGRAM
! UNIT HAS A LINE SEQUENCE NUMBER IN LINELINE
CLASPTR, ! CHARACTER POINTER FOR CLASSIFICATION BACKUP
CLASLPT, ! BEGINNING OF LINE POINTER FOR CLASSIFICATION BACKUP
CONTPTR, ! CHARACTER POINTER FOR CONTINUATION BACKUP
NOCR, ! IF 1 INDICATES THAT THIS LINE WAS MISSING A <CR>
LEXLINE, ! LINE NUMBER ASSOCIATED WITH THE CURRENT LEXEME
! USED FOR ERROR REPORTING
LINENO, ! AREA FOR BUILDING LINE NUMBER
PAGELINE; ! CURRENT LINE ON PAGE
BIND LINESPERPAGE = 59;
BIND ALLCHAR = 0, LINESONLY = 1; ! PARAMETERS TO BACKTYPE
MACRO INTERR (STRNG ) =
BEGIN
EXTERNAL FATLERR,E61;
FATLERR ( PLIT ( STRNG ), .ISN , E61<0,0> )
END $;
MACRO PFLD = 30,6 $, SFLD = 24,6 $;
MACRO
ISCAN ( REG,PTR ) =
BEGIN
MACHOP ILDB = #134;
ILDB ( REG,PTR )
END
$;
MACRO
NSCAN ( REG,PTR ) =
BEGIN
MACHOP LDB = #135;
LDB ( REG,PTR )
END
$;
% DESCRIPTION OF THE ERROR MESSAGE QUEUE BLOCK %
MACRO
EMSGNUM(X) = (.X)<18,16> $, !ERROR MESSAGE NUMBER
ENODLINK(X) = (.X)<RIGHT> $, !LINK TO NEXT ENTRY IN LIST
! 0 IF NONE LEFT
ERRTYPD(X) = (.X)<34,1> $, ! IF 1 INDICATES THAT THE MESSAGE
! HAS ALREADY BEEN TYPED ON THE TTY
ERRLINE(X) = (.X+1)<FULL> $, ! LINE NUMBER ASSOCIATED
ERRENT1(X) = (.X+2)<FULL> $, ! MESSAGE PARAMETER 1
ERRENT2(X) = (.X+3)<FULL> $, ! MESSAGER PARAMETER 2
ENODSIZ = 4 $ ; ! SIZE OF THE NODE
MACRO
OUTTY ( PTR ) =
%1563% IF NOT FTTENEX
%1563% THEN
BEGIN
% DIRECT OUTSTRING %
MACHOP OUTSTR = #051 ;
OUTSTR (3,PTR)
END
%1563% ELSE
%1563% BEGIN
%1563% EXTERNAL TTYSTR;
%1563% TTYSTR(PTR<0,0>)
%1563% END
$;
MACRO
OUTTYI ( PTR ) =
%1563% IF NOT FTTENEX
%1563% THEN
BEGIN
% INDIRECT OUTSTRING %
MACHOP OUTSTR = #051 ;
OUTSTR (3,PTR,0,1)
END
%1563% ELSE
%1563% BEGIN
%1563% EXTERNAL TTYSTR;
%1563% TTYSTR(\PTR)
%1563% END
$;
MACRO
OUTTYX ( PTR ) =
%1563% IF NOT FTTENEX
%1563% THEN
BEGIN
% INDEXED OUTSTRING %
MACHOP OUTSTR = #051 ;
OUTSTR (3,0,PTR)
END
%1563% ELSE
%1563% BEGIN
%1563% EXTERNAL TTYSTR;
%1563% TTYSTR(@PTR)
%1563% END
$;
%ENDLEXBND%