1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-01-13 23:25:24 +00:00
Paul Kimpel ed375b4067 1. Commit updated ALGOLXEM compiler source and additional test cases from recent debugging effort.
2. Rename original NEATUP source from UTIL.NEATUP.alg_m to NEATUP.alg_m.
2012-05-06 16:38:23 +00:00

199 lines
18 KiB
Plaintext

BEGIN 00000100120323PK
INTEGER 00000200120323PK
W, 00000300120323PK
X; 00000400120323PK
FILE 00000500120323PK
DISK(KIND=DISK, MAXRECSIZE=90, BLOCKSIZE=1800, FRAMESIZE=8, 00000600120323PK
AREAS=1, AREASIZE=1000, FLEXIBLE, 00000700120323PK
TITLE="DATA/MISC/B5500/NEATUPINFO."); 00000750120323PK
00000800120323PK
EBCDIC VALUE ARRAY LEXICONTEXT 0000090081/10/14.1
("TRANSLATETABLELOCKCOMMENTSLEFTCOMMENTSINDENTTHENIFINDE", 0000100081/10/14.1
"NTELSEIFDEFINEINDENTBEGINOFFSETELSEOFFSETLINELENGTHONE", 0000110081/10/14.1
"PERLINEATUPLISTPROCINDENTNEATUPSEQDECINDENTREFERENCEPR", 0000120081/10/14.1
"OCEDUREINTERRUPTINTERLOCKTRUTHSETDATABASECOMPLEXBOOLEA", 0000130081/10/14.1
"NPOINTERPICTUREINTEGERMONITORMESSAGELIBRARYLAYOUTFORMA", 0000140081/10/14.1
"TEXPORTNUMBERSTRINGSWITCHEBCDICDOUBLEDIRECTMARGINEVENT", 0000150081/10/14.1
"ASCIIARRAYRESETALPHAVALUEQUEUEFIELDLABELWHILEUNTILCASE", 0000160081/10/14.1
"THRUSTEPLONGFILEREALWORDOMITPAGEPOPBCLANDOWNHEXNOTNEQM", 0000170081/10/14.1
"ODLSSEQLENDIVLEQIMPGTRGEQVBY"); 0000180081/10/14.1
VALUE ARRAY COARSEINDEX( 0000190081/10/14.1
4"000000000003",4"000004000008",4"00000900000B",4"00000C000013", 0000200081/10/14.1
4"00001400001B",4"00001C00001F",4"000020000021",4"000022000022", 0000210081/10/14.1
4"00002300002B",4"000001000000",4"000001000000",4"00002C000036", 0000220081/10/14.1
4"00003700003A",4"00003B000040",4"000041000046",4"00004700004C", 0000230081/10/14.1
4"00004D00004D",4"00004E000050",4"000051000054",4"000055000058", 0000240081/10/14.1
4"000059000059",4"00005A00005A",4"00005B00005C",4"000001000000", 0000250081/10/14.1
4"000001000000",4"000001000000",4"000001000000",4"000001000000", 0000260081/10/14.1
4"000001000000",4"000001000000",4"000001000000",4"000001000000", 0000270081/10/14.1
4"000001000000",4"000001000000",4"000001000000"); 0000280081/10/14.1
VALUE ARRAY INFOARRAY( 0000290081/10/14.1
4"0C30841A0012",4"145030144000",4"14502E149000",4"14502C153000", 0000300081/10/14.1
4"0820881CA002",4"0C303219D000",4"14508604A002",4"1C70340D2000", 0000310081/10/14.1
4"2CB00204A001",4"10408A176002",4"1C70380CB000",4"1C7036012000", 0000320081/10/14.1
4"08208E12D002",4"0C308C1BA002",4"18603C03E000",4"18604012D000", 0000330081/10/14.1
4"18603E133000",4"20803A0C3000",4"24900408E001",4"30C00603E001", 0000340081/10/14.1
4"0C30941B5022",4"0C30921B8182",4"0C30961C7012",4"104090038182", 0000350081/10/14.1
4"14504413F000",4"186042127000",4"18604610F000",4"28A008055001", 0000360081/10/14.1
4"0C3098109042",4"10404A186000",4"145048162008",4"18604C109000", 0000370081/10/14.1
4"0C309C1C3022",4"0C309A1C6022",4"0C304E1A6000",4"0820A0026022", 0000380081/10/14.1
4"08209E030002",4"0C30A21C0012",4"18600A026001",4"1C70500E7000", 0000390081/10/14.1
4"2490540A9000",4"2490520B2008",4"30C00C032001",4"30C00E026001", 0000400081/10/14.1
4"0C30A41BD022",4"0C30A61B2022",4"104060182000",4"10405E00E008", 0000410081/10/14.1
4"10405C077000",4"145056167000",4"186058103008",4"1C705A0FC000", 0000420081/10/14.1
4"28A01405F001",4"30C01200E001",4"30C01001A001",4"0C30A81AF002", 0000430081/10/14.1
4"186016139001",4"1C70640EE000",4"1C70620F5004",4"0C30AC1A9012", 0000440081/10/14.1
4"0C30AA1AC022",4"186066115000",4"186018071001",4"24901C085001", 0000450081/10/14.1
4"28A01A071001",4"082068069000",4"0820B00F3012",4"0820AE04F002", 0000460081/10/14.1
4"0C306A1A3000",4"10401E192001",4"28A020069001",4"0C302419A001", 0000470081/10/14.1
4"104022196001",4"1C706C0E0000",4"1C706E0D9000",4"2490700A0000", 0000480081/10/14.1
4"28A02607B001",4"14507215D00C",4"10407418A000",4"14502814E001", 0000490081/10/14.1
4"249076097000",4"0C302A052001",4"1040B417E002",4"18607811B000", 0000500081/10/14.1
4"18607A121000",4"1040B202C102",4"1040B617A042",4"20807E0BB000", 0000510081/10/14.1
4"38E07C000000",4"1450B8171082",4"145080158000",4"10408218E008", 0000520081/10/14.1
4"1450BA16C042"); 0000530081/10/14.1
DEFINE 0000540081/10/14.1
ALPHAC = 22 #, 0000550081/10/14.1
ANDC = 66 #, 0000560081/10/14.1
ARRAYC = 23 #, 0000570081/10/14.1
ASCIIC = 24 #, 0000580081/10/14.1
BCLC = 25 #, 0000590081/10/14.1
BEGINC = 67 #, 0000600081/10/14.1
BEGINOFFSETC = 1 #, 0000610081/10/14.1
BOOLEANC = 26 #, 0000620081/10/14.1
BYC = 68 #, 0000630081/10/14.1
CASEC = 69 #, 0000640081/10/14.1
COMMENTC = 27 #, 0000650081/10/14.1
COMPLEXC = 28 #, 0000660081/10/14.1
DATABASEC = 29 #, 0000670081/10/14.1
DECINDENTC = 2 #, 0000680081/10/14.1
DEFINEC = 30 #, 0000690081/10/14.1
DEFINEINDENTC = 3 #, 0000700081/10/14.1
DIRECTC = 31 #, 0000710081/10/14.1
DIVC = 70 #, 0000720081/10/14.1
DOC = 71 #, 0000730081/10/14.1
DOUBLEC = 32 #, 0000740081/10/14.1
EBCDICC = 33 #, 0000750081/10/14.1
ELSEC = 72 #, 0000760081/10/14.1
ELSEOFFSETC = 4 #, 0000770081/10/14.1
ENDC = 73 #, 0000780081/10/14.1
EQLC = 74 #, 0000790081/10/14.1
EQVC = 75 #, 0000800081/10/14.1
EVENTC = 34 #, 0000810081/10/14.1
EXPORTC = 35 #, 0000820081/10/14.1
FIELDC = 36 #, 0000830081/10/14.1
FILEC = 37 #, 0000840081/10/14.1
FORC = 76 #, 0000850081/10/14.1
FORMATC = 38 #, 0000860081/10/14.1
GEQC = 77 #, 0000870081/10/14.1
GTRC = 78 #, 0000880081/10/14.1
HEXC = 39 #, 0000890081/10/14.1
IFC = 79 #, 0000900081/10/14.1
IMPC = 81 #, 0000910081/10/14.1
INC = 80 #, 0000920081/10/14.1
INDENTC = 5 #, 0000930081/10/14.1
INDENTELSEIFC = 6 #, 0000940081/10/14.1
INDENTTHENIFC = 7 #, 0000950081/10/14.1
INTEGERC = 40 #, 0000960081/10/14.1
INTERLOCKC = 41 #, 0000970081/10/14.1
INTERRUPTC = 42 #, 0000980081/10/14.1
LABELC = 43 #, 0000990081/10/14.1
LAYOUTC = 44 #, 0001000081/10/14.1
LEFTCOMMENTSC = 8 #, 0001010081/10/14.1
LEQC = 82 #, 0001020081/10/14.1
LIBRARYC = 45 #, 0001030081/10/14.1
LINELENGTHC = 10 #, 0001040081/10/14.1
LISTC = 46 #, 0001050081/10/14.1
LOCKC = 47 #, 0001060081/10/14.1
LOCKCOMMENTSC = 9 #, 0001070081/10/14.1
LONGC = 48 #, 0001080081/10/14.1
LSSC = 83 #, 0001090081/10/14.1
MARGINC = 11 #, 0001100081/10/14.1
MESSAGEC = 49 #, 0001110081/10/14.1
MODC = 84 #, 0001120081/10/14.1
MONITORC = 50 #, 0001130081/10/14.1
NEATUPC = 12 #, 0001140081/10/14.1
NEATUPLISTC = 13 #, 0001150081/10/14.1
NEATUPSEQC = 14 #, 0001160081/10/14.1
NEQC = 85 #, 0001170081/10/14.1
NOTC = 86 #, 0001180081/10/14.1
NUMBERC = 51 #, 0001190081/10/14.1
OFC = 87 #, 0001200081/10/14.1
OMITC = 15 #, 0001210081/10/14.1
ONC = 52 #, 0001220081/10/14.1
ONEPERLINEC = 16 #, 0001230081/10/14.1
ORC = 88 #, 0001240081/10/14.1
OWNC = 53 #, 0001250081/10/14.1
PAGEC = 17 #, 0001260081/10/14.1
PICTUREC = 54 #, 0001270081/10/14.1
POINTERC = 55 #, 0001280081/10/14.1
POPC = 18 #, 0001290081/10/14.1
PROCEDUREC = 56 #, 0001300081/10/14.1
PROCINDENTC = 19 #, 0001310081/10/14.1
QUEUEC = 57 #, 0001320081/10/14.1
REALC = 58 #, 0001330081/10/14.1
REFERENCEC = 59 #, 0001340081/10/14.1
RESETC = 20 #, 0001350081/10/14.1
SETC = 21 #, 0001360081/10/14.1
STEPC = 90 #, 0001370081/10/14.1
STRINGC = 60 #, 0001380081/10/14.1
SWITCHC = 61 #, 0001390081/10/14.1
THENC = 89 #, 0001400081/10/14.1
THRUC = 91 #, 0001410081/10/14.1
TRANSLATETABLEC = 62 #, 0001420081/10/14.1
TRUTHSETC = 63 #, 0001430081/10/14.1
UNTILC = 92 #, 0001440081/10/14.1
VALUEC = 64 #, 0001450081/10/14.1
WHILEC = 93 #, 0001460081/10/14.1
WORDC = 65 #; 0001470081/10/14.1
DEFINE 0001480081/10/14.1
ALGOL = 0 #, 0001490081/10/14.1
BOOLEANOP = 0 #, 0001500081/10/14.1
DCALGOL = 1 #, 0001510081/10/14.1
DECLARATOR = 0 #, 0001520081/10/14.1
ESPOL = 2 #, 0001530081/10/14.1
ESPOLORDCALGOL = 3 #, 0001540081/10/14.1
ITERATIONOP = 2 #, 0001550081/10/14.1
LINEENDER = 4 #, 0001560081/10/14.1
MYOPTION = 1 #, 0001570081/10/14.1
RELATIONOP = 1 #, 0001580081/10/14.1
RESWORD = 2 #, 0001590081/10/14.1
TERMINATOR = 3 #; 0001600081/10/14.1
DEFINE 0001610081/10/14.1
COARSEFINISHF = [23:24] # 0001620081/10/14.1
,COARSESTARTF = [47:24] # 0001630081/10/14.1
,INFODEFINEVALUE(INX) = INFOARRAY[INX].[35:11] # 0001640081/10/14.1
,DEFINEVALUE(INX) = INFOARRAY[INX].[35:11] # 0001650081/10/14.1
,INFOMINSIZE(INX) = INFOARRAY[INX].[47:6] # 0001660081/10/14.1
,MINSIZE(INX) = INFOARRAY[INX].[47:6] # 0001670081/10/14.1
,INFOLEXPTR(INX) = INFOARRAY[INX].[24:13] # 0001680081/10/14.1
,INFOTEXTSIZE(INX) = INFOARRAY[INX].[41:6] # 0001690081/10/14.1
,ITEMTYPE(INX) = INFOARRAY[INX].[1:2] # 0001700081/10/14.1
,DECLANGUAGE(INX) = INFOARRAY[INX].[3:2] # 0001710081/10/14.1
,RESWORDTYPE(INX,BIT) = BOOLEAN(INFOARRAY[INX].[4+BIT:1]) # 0001720081/10/14.1
,ITEMKEY(INX) = INFOARRAY[INX].[35:11] # 0001730081/10/14.1
,INFOENTRYSIZE = 1 #; 0001740081/10/14.1
DEFINE HASH(R,PTR) = 0001750081/10/14.1
(R:=(R:=REAL(PTR,1)).[3:4]-1-R.[5:1]+9*R.[5:2])#; 0001760081/10/14.1
0001770081/10/14.1
WRITE(DISK, <"COARSE INDEX:">); 00017800120323PK
FOR X:= 0 STEP 1 WHILE X < SIZE(COARSEINDEX) DO 00017900120323PK
BEGIN 00018000120323PK
W:= COARSEINDEX[X]; 00018100120323PK
WRITE(DISK, <I3,":",2I4>, X, W.COARSESTARTF, W.COARSEFINISHF); 00018200120323PK
END; 00018300120323PK
00018400120323PK
WRITE(DISK, </,"INFOARRAY:">); 00018450120323PK
FOR X:= 0 STEP 1 WHILE X < SIZE(INFOARRAY) DO 00018500120323PK
BEGIN 00018600120323PK
WRITE(DISK, <I3,":",4I3,I6,I5,2I3,X1,A*>, 00018700120323PK
X, HASH(W, LEXICONTEXT[INFOLEXPTR(X)]), 00018800120323PK
ITEMTYPE(X), DECLANGUAGE(X), INFOARRAY[X].[11:8], 00018900120323PK
DEFINEVALUE(X), INFOLEXPTR(X), 00019000120323PK
INFOMINSIZE(X), INFOTEXTSIZE(X), INFOTEXTSIZE(X), 00019100120323PK
LEXICONTEXT[INFOLEXPTR(X)]); 00019200120323PK
END; 00019300120323PK
00019320120323PK
CLOSE(DISK, CRUNCH); 00019340120323PK
END. 00019400120323PK