/* P D P - 1 0 X P L V E R S I O N 1 A COMPILER-COMPILER FOR PROGRAMMING LANGUAGE 1. RICHARD L. BISBEY II JULY 1971 VERSION 4.0 NOVEMBER 1975. VERION 4 OF THE COMPILER PROCESSES THE ENTIRE XPL GRAMMAR. VERSION 3.0 NOVEMBER, 1975. VERSION 3.0 CONTAINS THE FOLLOWING DIFFERENCES FROM VERSION 2.0: RELOCATABLE BINARY CODE OUTPUT, CALL INLINE FACILITY IMPLEMENTED, UUOS USED TO CALL THE RUN-TIME ROUTINES, SOME SWITCHES CAN BE SPECIFIED FROM THE TERMINAL, "COMPACTIFY" IS COMPILED FROM A SOURCE LIBRARY, REDUNDANT SAVES OF PROCEDURE RESULTS IN OTHER REGISTERS IS AVOIDED IN MOST INSTANCES. VERSION 2.0 HASH-CODED SYMBOL TABLE, LEFT-TO-RIGHT GENERATION OF STRINGS FROM NUMBERS, SPECIAL CASE CHECKS IN STRING CATENATION ROUTINE, FASTER, MORE EFFICIENT PROCEDURE CALLS, GENERAL INPUT/OUTPUT, FILE, FILENAME PROCEDURES, BETTER LISTING, SYMBOL DUMP FORMAT, ETC. R. W. HAY, COMPUTER GROUP, DEPT. OF ELECTRICAL ENG., UNIVERSITY OF TORONTO, TORONTO, ONTARIO, CANADA. THE MAIN STRUCTURE OF THE PROGRAM IS AS FOLLOWS: CONTENTS. RECOGNITION TABLES FOR THE SYNTAX ANALYZER. DECLARATION OF SCANNER/COMPILER VARIABLES. STORAGE COMPACTIFICATION PROCEDURE. SCANNER PROCEDURES. PARSER PROCEDURES. CODE/DATA EMITTER PROCEDURES. SYMBOL TABLE PROCEDURES. CODE GENERATION PROCEDURES. INITIALIZATION PROCEDURE. ANALYSIS ALGORITHM. PRODUCTION RULES. */ DECLARE VERSION LITERALLY '''4.0'''; /* THESE ARE LALR PARSING TABLES */ DECLARE MAXR# LITERALLY '99'; /* MAX READ # */ DECLARE MAXL# LITERALLY '125'; /* MAX LOOK # */ DECLARE MAXP# LITERALLY '125'; /* MAX PUSH # */ DECLARE MAXS# LITERALLY '234'; /* MAX STATE # */ DECLARE START_STATE LITERALLY '1'; DECLARE TERMINAL# LITERALLY '42'; /* # OF TERMINALS */ DECLARE VOCAB# LITERALLY '91'; DECLARE VOCAB(VOCAB#) CHARACTER INITIAL ('','<','(','+','^','&','*',')' ,';','\','-','/',',','>',':','=','^^','BY','DO','GO','IF','TO','BIT' ,'END','EOF','MOD','CALL','CASE','ELSE','GOTO','THEN','FIXED','LABEL' ,'WHILE','RETURN','DECLARE','INITIAL','','','CHARACTER' ,'LITERALLY','PROCEDURE','','','','' ,'','','','','','' ,'','','','','' ,'','','','' ,'','','','' ,'','','','' ,'','','' ,'','','' ,'','','' ,'','','' ,'