Google
 

Trailing-Edge - PDP-10 Archives - BB-4157F-BM_1983 - fortran/compiler/lexnam.bli
There are 12 other files named lexnam.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/CKS/TFV

GLOBAL BIND LEXNAV = 7^24 + 0^18 + 3;	! Version Date: 2-Feb-81

%(

***** Begin Revision History *****

***** Begin Version 7 *****

1	1243	CKS     30-Jul-81
	Add lexeme CONCAT, character concatenation (// operator)

2	1245	TFV	14-Aug-81	------
	Move Error pointers and binds out of LEXICA.

3	1470	CKS	2-Feb-82
	Add lexeme TICLEX, tic (') when it occurs between expressions

***** End Revision History *****

)%

![1245] Error pointers - in ERROUT.BLI

EXTERNAL E8,E10,E9,E7,E109,E110,E12,E19,E76,E0,E95,E72,E111,E158,E159;
EXTERNAL E19,E20,E91,E113,E156,E157;

%1245%	! Binds for CHARCONST and HOLLCONST definitions used in LITDEF
%1245%	BIND	HOLLDEF = 0,	! Literal is HOLLCONST	
%1245%		CHARDEF = 1;	! Literal is CHARCONST

! THIS FILE CONTAINS THE BINDS OF LEXEME NAMES AND NUMBERS, AND
! THE PRECDENCE OF THE STACKABLE OPERATORS.  ROUTINE EXPRESS
! CONTAINS A PLIT PRECDENCE, WHICH IS SET TO PRCDNCE0, PRCDNCE1,
! ETC.  THIS PROVIDES INDEPENDENCE FOR EXPRESS WITH RESPECT
! TO THE LEXEME NUMBERS AND THEIR ORDERING.  THE ONLY REQUIREMENT
! IS THAT THE PLIT IN EXPRESS CONTAIN THE SAME NUMBER OF ENTRIES AS
! THERE ARE LEXEMES.
!
! FILE LEXAID.BLI 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.
!
!------------------------------------------------------------------------------------------------------------------
!LEXEME NUMBERS REPRESENTING SINGLE OPERATORS ARE PREFIXED WITH A 1 IN
!THE 12 BIT FIELD: 1^6+LEXEME NUMBER.
!
!LEXEMES WHICH ARE OPERATORS BUT NOT USED AS AN OPERATOR HAVE NO PREFIX.
!THIS ENABLES THE DIFERENTIATION OF STACKABLE OPERATORS FROM CHARACTERS
!REQUIRED ONLY BY THE SYNTAX.
!
!	TIMES _ ASTERISK
!	DIVIDE _ SLASH
!	MINUS _ DASH
!------------------------------------------------------------------------------------------------------------------
!
! LEXEME CODE BINDS AND PRECEDENCE OF OPERATORS
!
BIND
		PRCDNCE0	=	0,
	IDENTIFIER	= 1, % POINTER TO IDENTIFIER TABLE ENTRY %
		PRCDNCE1	=	0,
	CONSTLEX	= 2, % POINTER TO NUMERIC TABLE ENTRY %
		PRCDNCE2	=	0,
	LITSTRING	= 3, % POINTER TO LITERAL TABLE ENTRY %
		PRCDNCE3	=	0,
	LABELEX		= 4, % LABEL, REQUIRES LOOK4LAB TO BE SET TO 1
				BEFORE IT WILL EVER BE RETURNED  %
		PRCDNCE4	=	0,

	LASTINTREE	= LABELEX,	% LAST LEXEME WHICH NEEDS TO APPEAR IN THE SYNTAX TREES %

	LINEND		= 5, % END OF STATEMENT %
	EOSLEX		= 5, % END OF STATEMENT %
		PRCDNCE5	=	0,
	RELATIONLOP 	= 6, %  .LT. , <  (1^6+) %
		PRCDNCE6	=	-4,
%				.EQ. , == (2^6+)
				.LE. , <= (3^6+)
				.GE. , >= (5^6+)
				.NE. , #  (6^6+)
				.GT. , >  (7^6+)
			     %
	LOGICALNOT 	= 7, % .NOT. %
		PRCDNCE7	=	-5,
	LOGICALAND	= 8, % .AND. %
		PRCDNCE8	=	-6,
	LOGICALOR	= 9, % .OR. %
		PRCDNCE9	=	-7,
	LOGICALMATCH	= 10, % .EQV.(1^6+) , .XOR.(2^6+) %
		PRCDNCE10	=	-8,
	POWER		= 11, % ** , ^ %
		PRCDNCE11	=	-1,
	ANDSGN		= 12, % & %
		PRCDNCE12	=	0,
	LPAREN		= 13, % ( %
		PRCDNCE13	=	0,
	RPAREN		= 14, % ) %
		PRCDNCE14	=	0,
	COLON		= 15, % : %
		PRCDNCE15	=	0,
	COMMA		= 16, % , %
		PRCDNCE16	=	0,
	DOLLAR		= 17, % $  %
		PRCDNCE17	=	0,
	MINUS		= 18, % - %	!ARITHMETIC USAGE
	DASH		= 18, % - %	!SYNTAX USAGE
		PRCDNCE18	=	-3,
	DIVIDE		= 19, % / %	!ARITHMETIC USAGE
	SLASH		= 19, % / %	!SYNTAX USAGE
		PRCDNCE19	=	-2,
	PLUS		= 20, % + %
		PRCDNCE20	=	-3,
	TIMES		= 21, % * %	!ARITHMETIC USAGE
	ASTERISK	= 21, % * %	!SYNTAX USAGE
		PRCDNCE21	=	-2,
	EQUAL		= 22, % = %
		PRCDNCE22	=	0,

%1243%  CONCAT		= 23, % // %
%1243%		PRCDNCE23	=	-1,

%1470%	TICLEX		= 24, % ' %
%1470%		PRCDNCE24	=	0,

	LASTLEX		= 24,           ! LAST LEXEME

	STACHK		=0;


% IF THE LEXEME NUMBERS ARE EVER CHANGED FOR SOME REASON THERE IS
  A CASE STATEMENT IN EXPRESSION WHICH MUST BE CHANGED AND A CASE
  STATEMENT IN THE PROCESSING OF DOUBLE CHARACTER LEXEMES ( SUCH AS <= ).  %