Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99g-bb - expres.c13
There is 1 other file named expres.c13 in the archive. Click here to see a list.
 REP 19/1	;13C1
	!AUTHOR: F.J. INFANTE, D. B. TOLMAN/DCE/JNG/TFV/EGM/CKS/CDM/AHM/SRM/RVM/AlB
 WIT
	!AUTHOR: F.J. INFANTE, D. B. TOLMAN/DCE/JNG/TFV/EGM/CKS/CDM/AHM/SRM/RVM/AlB/JB
 REP 24/1	;13C2
	GLOBAL BIND EXPREV = #10^24 + 0^18 + #2532;	! Version Date: 9-May-85
 WIT
	GLOBAL BIND EXPREV = #10^24 + 0^18 + #2557;	! Version Date: 6-Nov-85
 INS 285/1	;13C3
	2557	JB	6-Nov-85
		Check for the use of specific function names in argument lists
		instead of in INTRINSIC statements. Call routine INTRCHK to
		perform the check.

 REP 79/3	;13C4
		BEXPRLIST;	! Process list, implied DO loop parameters

 WIT
		BEXPRLIST,	! Process list, implied DO loop parameters
	%2557%	INTRCHK;	! Check for generic non-specific functions 
 REP 182/14	;13C5
	%1513%					     IDPTR = MAKDOTTEDNAME(.T1,.IDPTR)
 WIT
	%2557%					     IF NOT .LIBATTRIBUTES[.T1, ATTSPGEN]
	%2557%					     THEN IDPTR = MAKDOTTEDNAME(.T1,.IDPTR)
 REP 132/15	;13C6
					THEN	NAMSET(VARYREF, .ARGPT)
 WIT
	%2557%				THEN	NAMSET(VARYREF, .ARGPT);

	%2557%				! If the argument is a function name,
	%2557%				! call INTRCHK to check that it has
	%2557%				! been declared INTRINSIC and is a
	%2557%				! specific function name.
	%2557%				IF .ARGPT[OPERSP] EQL FNNAME
	%2557%				THEN INTRCHK(.ARGPT);

 INS 226/19	;13C7
	GLOBAL ROUTINE INTRCHK(FUNC)=	![2557] New

	!++
	! FUNCTIONAL DESCRIPTION:
	!
	!	Check the function name specified in the argument list.  
	!	If it was in an INTRINSIC statement, then check if it is 
	!	a specific function name. Otherwise give an error message.
	!
	! FORMAL PARAMETERS:
	!
	!	FUNC	The function symbol table entry to check.
	!
	! IMPLICIT INPUTS:
	!
	!	LIBATTRIBUTES	Table of library functions, giving additional
	!			information.
	!
	! IMPLICIT OUTPUTS:
	!
	!	None
	!
	! ROUTINE VALUE:
	!
	!	None
	!
	! SIDE EFFECTS:
	!
	!	None
	!
	!--


	BEGIN
		MAP BASE FUNC;
		REGISTER INDX;	! Index into intrinsic function table

		IF .FUNC[IDATTRIBUT(INEXTERN)]			! EXTERNAL or INTRINSIC
		THEN IF NOT .FUNC[IDATTRIBUT(USERFUNCTION)]	! INTRINSIC only
		THEN IF (INDX = SRCHLIB(.FUNC)) NEQ -1		! Find func in table
		THEN IF .LIBATTRIBUTES[.INDX-LIBFUNTAB<0,0>, ATTSPGEN]	! Not specific
		THEN FATLEX(UPLIT ASCIZ 'a specific intrinsic function name',
				FUNC[IDSYMBOL], E15<0,0>);	! Give error.

	END;	! Of INTRCHK
 SUM 137386