Google
 

Trailing-Edge - PDP-10 Archives - bb-4157h-bm_fortran20_v10_16mt9 - fortran-compiler/lexnam.bli
There are 12 other files named lexnam.bli in the archive. Click here to see a list.
!COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1974, 1985
!ALL RIGHTS RESERVED.
!
!THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
!ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH LICENSE AND WITH THE
!INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY  OTHER
!COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
!OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF THE  SOFTWARE  IS  HEREBY
!TRANSFERRED.
!
!THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT  NOTICE
!AND  SHOULD  NOT  BE  CONSTRUED  AS A COMMITMENT BY DIGITAL EQUIPMENT
!CORPORATION.
!
!DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY  OF  ITS
!SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.

!AUTHOR: D. B. TOLMAN/CKS/TFV

GLOBAL BIND LEXNAV = #10^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 <= ).  %