mirror of
https://github.com/pkimpel/retro-b5500.git
synced 2026-02-11 02:50:16 +00:00
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.
This commit is contained in:
43
tests/ALGOLXEM/CALLBYNAMEPARAM.alg_m
Normal file
43
tests/ALGOLXEM/CALLBYNAMEPARAM.alg_m
Normal file
@@ -0,0 +1,43 @@
|
||||
$ SET LIST $ PRT DEBUGN 00001000120504PK
|
||||
% DEFINE AND CALL-BY-NAME PARAMETER TEST. 00002000120504PK
|
||||
% 2012-05-04 P.KIMPEL 00003000120504PK
|
||||
00004000120504PK
|
||||
BEGIN 00005000120504PK
|
||||
DEFINE 00006000120504PK
|
||||
FS = 2 #, 00007000120504PK
|
||||
FP = 5 #, 00008000120504PK
|
||||
FQ = 7 #, 00009000120504PK
|
||||
LONGISH = REAL THISISSOMEDEFINETEXTTHATISMUCHLONGERTHANONEWORD #; 00010000120504PK
|
||||
INTEGER 00011000120504PK
|
||||
TEMP; 00012000120504PK
|
||||
00012500120504PK
|
||||
LONGISH; 00013000120504PK
|
||||
00015000120504PK
|
||||
PROCEDURE VARIABLE(P1); 00016000120504PK
|
||||
REAL P1; 00017000120504PK
|
||||
BEGIN 00018000120504PK
|
||||
LABEL EXIT; 00019000120504PK
|
||||
INTEGER I; 00020000120504PK
|
||||
00021000120504PK
|
||||
IF P1 > FQ THEN 00022000120504PK
|
||||
GO TO EXIT; 00023000120504PK
|
||||
00024000120504PK
|
||||
IF P1 = FS THEN 00025000120504PK
|
||||
I:= P1 00026000120504PK
|
||||
ELSE 00027000120504PK
|
||||
IF P1 = FP THEN 00028000120504PK
|
||||
BEGIN 00029000120504PK
|
||||
I:= 17; 00030000120504PK
|
||||
P1:= 0; 00031000120504PK
|
||||
END 00032000120504PK
|
||||
ELSE 00033000120504PK
|
||||
GO TO EXIT; 00034000120504PK
|
||||
00035000120504PK
|
||||
EXIT: 00036000120504PK
|
||||
END VARIABLE; 00037000120504PK
|
||||
00038000120504PK
|
||||
VARIABLE(FP); 00039000120504PK
|
||||
VARIABLE(TEMP); 00040000120504PK
|
||||
VARIABLE(THISISSOMEDEFINETEXTTHATISMUCHLONGERTHANONEWORD); 00041000120504PK
|
||||
VARIABLE(TEMP+THISISSOMEDEFINETEXTTHATISMUCHLONGERTHANONEWORD); 00042000120504PK
|
||||
END. 00043000120504PK
|
||||
21
tests/ALGOLXEM/MANORBOYTEST.alg_m
Normal file
21
tests/ALGOLXEM/MANORBOYTEST.alg_m
Normal file
@@ -0,0 +1,21 @@
|
||||
$ SET LIST $ RESET PRT DEBUGN 00000010120506PK
|
||||
% DONALD KNUTH-S "MAN OR BOY TEST" 00000100120506PK
|
||||
% FROM ALGOL BULLETIN 17.2.4, JULY 1964, PAGE 7. 00000200120506PK
|
||||
00000900120506PK
|
||||
BEGIN 00002000120506PK
|
||||
FILE OUT OUTPUT 18 (1, 15); 00003000120506PK
|
||||
REAL PROCEDURE A(K, X1, X2, X3, X4, X5); 00004000120506PK
|
||||
VALUE K; INTEGER K; 00005000120506PK
|
||||
REAL X1, X2, X3, X4, X5; 00006000120506PK
|
||||
BEGIN 00007000120506PK
|
||||
REAL PROCEDURE B; 00008000120506PK
|
||||
BEGIN 00009000120506PK
|
||||
K:= K-1; 00010000120506PK
|
||||
B:= A:= A(K, B, X1, X2, X3, X4); 00011000120506PK
|
||||
END B; 00012000120506PK
|
||||
00013000120506PK
|
||||
IF K { 0 THEN A:= X4+X5 ELSE B 00014000120506PK
|
||||
END A; 00015000120506PK
|
||||
00016000120506PK
|
||||
WRITE(OUTPUT, /, A(10, 1, -1, -1, 1, 0)); 00017000120506PK
|
||||
END. 00018000120506PK
|
||||
21
tests/ALGOLXEM/MULTISWITCH.alg_m
Normal file
21
tests/ALGOLXEM/MULTISWITCH.alg_m
Normal file
@@ -0,0 +1,21 @@
|
||||
$ SET $ LIST PRT DEBUGN 00001000120505PK
|
||||
% TEST FOR MULTIPLE INVOCATIONS OF A SWITCH DECLARATION. 00002000120505PK
|
||||
% 2012-05-05 P.KIMPEL 00003000120505PK
|
||||
00004000120505PK
|
||||
BEGIN 00005000120505PK
|
||||
LABEL L1, L2; 00006000120505PK
|
||||
INTEGER I, J; 00007000120505PK
|
||||
SWITCH SW ~ L2, L1; 00008000120505PK
|
||||
00009000120505PK
|
||||
L1: 00010000120505PK
|
||||
FOR I ~ 0 STEP 1 UNTIL 3 DO 00011000120505PK
|
||||
BEGIN 00012000120505PK
|
||||
J:= I; 00013000120505PK
|
||||
WHEN(I); 00014000120505PK
|
||||
GO TO SW[J]; 00015000120505PK
|
||||
END FOR; 00016000120505PK
|
||||
00017000120505PK
|
||||
L2: 00018000120505PK
|
||||
I ~ J; 00019000120505PK
|
||||
GO TO SW[I]; 00020000120505PK
|
||||
END. 00021000120505PK
|
||||
190
tests/ALGOLXEM/ORTHO.alg_m
Normal file
190
tests/ALGOLXEM/ORTHO.alg_m
Normal file
@@ -0,0 +1,190 @@
|
||||
$ SET LIST $ PRT DEBUGN 00000010120430PK
|
||||
% -ORTHO- TEST, 3/3/70 00000100120429PK
|
||||
BEGIN 00000200
|
||||
INTEGER STARTT; 00000300120429PK
|
||||
FORMAT FT (//"DATE: "A6" PROC TIME: "F8.2" I/O TIME: "F8.2" ELAPSED: " 00000400120429PK
|
||||
F8.2" SEC"); 00000500120429PK
|
||||
INTEGER I, J, N, M, P, R, AI, AUI, ZEI, MUI; 00000600120429PK
|
||||
REAL SUM, GMDT, FN; 00000700120429PK
|
||||
FILE IN PARAMS (1,10); 00000800120429PK
|
||||
FILE OUT FLUSH 18 (5,17); 00000900120429PK
|
||||
00001000120429PK
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00002000120429PK
|
||||
PROCEDURE ORTHO (W, Y, Z, N, FN, M, P, R, AI, AUI, MUI, ZEI, X, DEV, 00003000
|
||||
COF, STD, CV, VCV, GMDT, Q, Q2, E, EP, A, GF, ENF); 00004000
|
||||
VALUE N, M, P, R, AI, AUI, MUI, ZEI; 00005000
|
||||
REAL FN, GMDT; 00006000
|
||||
REAL ARRAY STD, GF, W, ENF [1]; 00007000
|
||||
REAL ARRAY Y, Z, X, DEV, COF, CV, Q, Q2, E, EP, A [1, 1]; 00008000
|
||||
REAL ARRAY VCV [1, 1, 1]; 00009000
|
||||
INTEGER N, M, P, R, AI, AUI, ZEI, MUI; 00010000
|
||||
00011000120429PK
|
||||
COMMENT 00012000
|
||||
ORTHO IS TAKEN FROM ACM ALGORITHM 127 [COMM. ACM, VOL.5, 00013000
|
||||
OCTOBER 1962, P. 511, AUTHOR: PHILIP J. WALSH]; 00014000
|
||||
00015000120429PK
|
||||
BEGIN 00016000
|
||||
INTEGER NPP, NPM, M1, N2, M2, R1, RBAR, P2, BEI, RHI, I18, GAI, SII, I,00017000
|
||||
J, DEI, NUI, E1Z2, E1Z1, K, THI, ALI, OMI, NII; 00018000
|
||||
REAL ARRAY PK, XP [1:N+P], QK[1:M+1]; 00019000
|
||||
REAL DENOM, SUM, DK2, DK, FI, SS, SSQ; 00020000
|
||||
LABEL BOX1, AT1, AT2, BOX2, AU1, AU2, BOX3, BOX4, BOX5, BOX6, MU1, 00021000
|
||||
MU2, BOX7, OM1, OM2, BOX8, DE1, BOX8A, BOX8B, DE2, BOX8C, BOX8D, 00022000
|
||||
BOX9, TH1, TH2, TH3, BOX10, AL1, AL2, BOX11, NU1, NU2, BOX12, 00023000
|
||||
BE1, BE2, BOX13, GA1, GA2, BOX14, RH1, ZE1, ZE2, RH2, SI1, SI2, 00024000
|
||||
FINAL; 00025000
|
||||
SWITCH AT ~ AT1, AT2; SWITCH ZE ~ ZE1, ZE2; 00026000120429PK
|
||||
SWITCH AU ~ AU1, AU2; SWITCH MU ~ MU1, MU2; 00027000120429PK
|
||||
SWITCH BE ~ BE1, BE2; SWITCH RH ~ RH1, RH2; SWITCH GA ~ GA1, GA2; 00028000120429PK
|
||||
SWITCH SI ~ SI1, SI2; SWITCH DE ~ DE1, DE2; SWITCH NU ~ NU1, NU2; 00029000120429PK
|
||||
SWITCH TH ~ TH1, TH2, TH3; SWITCH AL ~ AL1, AL2; 00030000120429PK
|
||||
SWITCH OM ~ OM1, OM2; 00031000120429PK
|
||||
NPP ~ N+P; NPM ~ N+M; M1 ~ M-1; N2 ~ N+1; M2 ~ M+1; 00032000120429PK
|
||||
R1 ~ 0; RBAR ~ R; P2 ~ P+1; DENOM ~ IF N=M THEN 1.0 00033000120429PK
|
||||
ELSE SQRT(N-M); BEI ~ RHI ~ I18 ~ 1; 00034000120429PK
|
||||
IF (P ! 0) THEN GAI ~ SII ~ 2 ELSE GAI ~ SII ~ 1; 00035000120501PK
|
||||
BOX1: GO TO AT[AI]; 00036000
|
||||
AT1: FOR J ~ 1 STEP 1 UNTIL N DO BEGIN 00037000120429PK
|
||||
X[2,J] ~ Z[1,J]; X[1,J] ~ 1.0 END; 00038000120429PK
|
||||
FOR I ~ 2 STEP 1 UNTIL M1 DO BEGIN 00039000120429PK
|
||||
FOR J ~ 1 STEP 1 UNTIL N DO 00040000120429PK
|
||||
X[I+1,J] ~ X[I,J] | X[2,J] END; GO TO BOX2; 00041000120429PK
|
||||
AT2: FOR I ~ 1 STEP 1 UNTIL M DO BEGIN 00042000120429PK
|
||||
FOR J ~ 1 STEP 1 UNTIL N DO 00043000120429PK
|
||||
X[I,J] ~ Z[I,J] END; 00044000120429PK
|
||||
BOX2: IF P = 0 THEN GO TO BOX3 ELSE GO TO AU[AUI]; 00045000
|
||||
AU1: FOR I ~ 1 STEP 1 UNTIL M DO BEGIN 00046000120429PK
|
||||
FOR J ~ N2 STEP 1 UNTIL NPP DO 00047000120429PK
|
||||
X[I,J] ~ 0.0; X[I,N+I] ~ 1.0 END; GO TO BOX3; 00048000120429PK
|
||||
AU2: FOR I ~ 1 STEP 1 UNTIL M DO BEGIN 00049000120429PK
|
||||
FOR J ~ N2 STEP 1 UNTIL NPP DO 00050000120429PK
|
||||
X[I,J] ~ Z[I,J] END; 00051000120429PK
|
||||
BOX3: DEI ~ NUI ~ E1Z1 ~ E1Z2 ~ K ~ 1; 00052000120429PK
|
||||
BOX4: THI ~ 1; 00053000120429PK
|
||||
BOX5: ALI ~ OMI ~ 1; IF P = 0 THEN GO TO BOX6 ELSE 00054000120429PK
|
||||
FOR J ~ 1 STEP 1 UNTIL P DO PK[N+J] ~ 0.0; 00055000120429PK
|
||||
BOX6: GO TO MU[MUI]; 00056000
|
||||
MU1: FOR I ~ 1 STEP 1 UNTIL N DO PK[I] ~ X[K,I]; 00057000120429PK
|
||||
GO TO BOX7; 00058000
|
||||
MU2: FOR I ~ 1 STEP 1 UNTIL N DO 00059000120429PK
|
||||
PK[I] ~ X[K,I] | W[I]; GO TO BOX7; 00060000120429PK
|
||||
BOX7: GO TO OM[OMI]; 00061000
|
||||
OM1: FOR I ~ 1 STEP 1 UNTIL K DO BEGIN SUM ~ 0.0; 00062000120429PK
|
||||
FOR J ~ 1 STEP 1 UNTIL NPP DO 00063000120429PK
|
||||
SUM ~ SUM + PK[J] | X[I,J]; QK[I] ~ SUM END; 00064000120429PK
|
||||
GO TO BOX8; 00065000
|
||||
OM2: DK2 ~ 0.0; FOR I ~ 1 STEP 1 UNTIL NPP DO 00066000120429PK
|
||||
DK2 ~ DK2 + PK[I] | X[K,I]; 00067000120429PK
|
||||
DK ~ SQRT(DK2); 00068000120429PK
|
||||
GF[I18] ~ DK; I18 ~ I18 + 1; 00069000120429PK
|
||||
FOR I ~ 1 STEP 1 UNTIL NPP DO 00070000120429PK
|
||||
X[K,I] ~ X[K,I]/DK;; 00071000120429PK
|
||||
OMI ~ 1; GO TO BOX6; 00072000120429PK
|
||||
BOX8: GO TO DE[DEI]; 00073000
|
||||
DE1: E1Z1 ~ -E1Z1; IF E1Z1 < 0 THEN GO TO BOX8B ELSE 00074000120429PK
|
||||
GO TO BOX8A; 00075000
|
||||
BOX8A: FOR I ~ 1 STEP 1 UNTIL K-1 DO 00076000120429PK
|
||||
QK[I] ~ -QK[I]; QK[K] ~ 1.0; 00077000120429PK
|
||||
FOR I ~ 1 STEP 1 UNTIL NPP DO BEGIN 00078000120429PK
|
||||
SUM ~ 0.0; FOR J ~ 1 STEP 1 UNTIL K DO 00079000120429PK
|
||||
SUM ~ SUM + X[J,I] | QK[J]; 00080000120429PK
|
||||
XP[I] ~ SUM END; GO TO BOX9; 00081000120429PK
|
||||
BOX8B: ENF[I18] ~ SQRT(QK[K]); GO TO BOX8A; 00082000120429PK
|
||||
DE2: E1Z2 ~ -E1Z2; IF E1Z2 < 0 THEN GO TO BOX8C ELSE 00083000120429PK
|
||||
GO TO BOX8A; 00084000
|
||||
BOX8C: FOR I ~ 1 STEP 1 UNTIL M DO BEGIN 00085000120429PK
|
||||
Q[R1,I] ~ QK[I]; Q2[R1,I] ~ QK[I] | QK[I] END; 00086000120429PK
|
||||
Q[R1,M2] ~ QK[M2]; E[R1,1] ~ Q[R1,M2] - Q2[R1,1]; 00087000120429PK
|
||||
FOR J ~ 2 STEP 1 UNTIL M DO 00088000120429PK
|
||||
E[R1,J] ~ E[R1,J-1] - Q2[R1,J]; 00089000120429PK
|
||||
FI ~ 1.0; 00090000120429PK
|
||||
FOR I ~ 1 STEP 1 UNTIL M DO BEGIN 00091000120429PK
|
||||
IF (FN - FI) > 0.0 THEN BEGIN IF E[R1,I] < 0.0 THEN 00093000
|
||||
BEGIN EP[R1,I] ~ -SQRT(ABS(E[R1,I])/(FN - FI)); 00094000120429PK
|
||||
GO TO BOX8D; END 00095000
|
||||
ELSE EP[R1,I] ~ SQRT(E[R1,I]/(FN - FI)); 00096000120429PK
|
||||
GO TO BOX8D; END ELSE E[R1,I] ~ -1.0; 00097000120429PK
|
||||
BOX8D: FI ~ FI + 1.0; END; GO TO BOX8A; 00098000120429PK
|
||||
BOX9: GO TO TH[THI]; 00099000
|
||||
TH1: FOR I ~ 1 STEP 1 UNTIL NPP DO 00100000120429PK
|
||||
X[K,I] ~ XP[I]; GO TO BOX10; 00101000120429PK
|
||||
TH2: FOR I ~ 1 STEP 1 UNTIL N DO 00102000120429PK
|
||||
DEV[R1,I] ~ XP[I]; 00103000120429PK
|
||||
FOR I ~ 1 STEP 1 UNTIL P DO 00104000120429PK
|
||||
COF[R1,I] ~ -XP[N+I]; THI ~ 3; GO TO TH1; 00105000120429PK
|
||||
TH3: GO TO BOX11; 00106000
|
||||
BOX10: GO TO AL[ALI]; 00107000
|
||||
AL1: OMI ~ ALI ~ 2; GO TO BOX6; 00108000120429PK
|
||||
AL2: IF K < M THEN BEGIN K ~ K + 1; GO TO BOX4; END 00109000120429PK
|
||||
ELSE GO TO BOX12; 00110000
|
||||
BOX11: GO TO NU[NUI]; 00111000
|
||||
NU1: NUI ~ 2; GO TO BOX14; 00112000120429PK
|
||||
NU2: SS ~ DK/DENOM; SSQ ~ SS | SS; 00113000120429PK
|
||||
STD[R1] ~ SS; GO TO BOX14; 00114000120429PK
|
||||
BOX12: GO TO BE[BEI]; 00115000
|
||||
BE1: FOR I ~ 1 STEP 1 UNTIL M DO BEGIN 00116000120429PK
|
||||
FOR J ~ 1 STEP 1 UNTIL P DO 00117000120429PK
|
||||
A[I,J] ~ X[I,N+J] END; 00118000120429PK
|
||||
GMDT ~ 1.0; FOR I ~ 1 STEP 1 UNTIL M DO 00119000120429PK
|
||||
GMDT ~ GMDT | (GF[I]/ENF[I]); 00120000120429PK
|
||||
GMDT ~ GMDT | GMDT; DEI ~ BEI ~ THI ~ 2; 00121000120429PK
|
||||
K ~ K + 1; GO TO BOX13; 00122000120429PK
|
||||
BE2: GO TO BOX11; 00123000
|
||||
BOX13: GO TO GA[GAI]; 00124000
|
||||
GA1: GO TO BOX11; 00125000
|
||||
GA2: FOR I ~ 1 STEP 1 UNTIL P DO BEGIN 00126000120429PK
|
||||
FOR J ~ I STEP 1 UNTIL P DO BEGIN 00127000120429PK
|
||||
SUM ~ 0.0; 00128000120429PK
|
||||
FOR NII ~ 1 STEP 1 UNTIL M DO 00129000120429PK
|
||||
SUM ~ SUM + A[NII,I] | A[NII,J]; 00130000120429PK
|
||||
CV[I,J] ~ SUM END END; 00131000120429PK
|
||||
FOR I ~ 1 STEP 1 UNTIL P DO 00132000120429PK
|
||||
CV[P2,I] ~ SQRT(CV[I,I]); GAI ~ 1; GO TO BOX11; 00133000120429PK
|
||||
BOX14: GO TO RH[RHI]; 00134000
|
||||
RH1: IF RBAR = 0 THEN GO TO FINAL ELSE RBAR ~ RBAR - 1; 00135000120429PK
|
||||
R1 ~ R1 + 1; THI ~ RHI ~ 2; GO TO ZE[ZEI]; 00136000120429PK
|
||||
ZE1: FOR I ~ 1 STEP 1 UNTIL N DO 00137000120429PK
|
||||
X[M2,I] ~ Y[R1,I]; 00138000120429PK
|
||||
FOR I ~ 1 STEP 1 UNTIL P DO 00139000120429PK
|
||||
X[M2,N+I] ~ 0.0; GO TO BOX5; 00140000120429PK
|
||||
ZE2: FOR I ~ 1 STEP 1 UNTIL NPP DO 00141000120429PK
|
||||
X[M2,I] ~ Y[R1,I]; GO TO BOX5; 00142000120429PK
|
||||
RH2: GO TO SI[SII]; 00143000
|
||||
SI1: GO TO RH1; 00144000
|
||||
SI2: FOR I ~ 1 STEP 1 UNTIL P DO BEGIN 00145000120429PK
|
||||
FOR J ~ I STEP 1 UNTIL P DO 00146000120429PK
|
||||
VCV[R1,I,J] ~ SSQ | CV[I,J] END; 00147000120429PK
|
||||
FOR I ~ 1 STEP 1 UNTIL P DO 00148000120429PK
|
||||
VCV[R1, P2, I] ~ SS | CV[P2,I]; GO TO RH1; 00149000120429PK
|
||||
FINAL: END ORTHO ; 00150000
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00151000120429PK
|
||||
00152000120429PK
|
||||
STARTT ~ TIME(1); 00901000120429PK
|
||||
READ (PARAMS, /, N, M, P); 00902000120429PK
|
||||
CLOSE(PARAMS); 00903000120429PK
|
||||
R ~ 1; AI ~ 2; AUI ~ 1; 00904000120429PK
|
||||
ZEI ~ 1; MUI ~ 2; FN ~ N; 00905000120430PK
|
||||
00906000120429PK
|
||||
BEGIN %INNER BLOCK 00907000120429PK
|
||||
LABEL DUMPIT; 00908000120429PK
|
||||
REAL ARRAY W[1:N], Y[1:R, 1:N+P], Z[1:M, 1:N+P], 00909000120429PK
|
||||
X[1:M+1, 1:N+P], DEV[1:R, 1:N], COF[1:R, 1:P], STD[1:R], 00910000120429PK
|
||||
CV[1:P+1, 1:P], VCV[1:R, 1:P+1, 1:P], Q[1:R, 1:M+1], 00911000120429PK
|
||||
Q2, E, EP [1:R, 1:M], A[1:M, 1:P], GF[1:M+R], ENF[1:M]; 00912000120429PK
|
||||
DUMP FLUSH (N, M, P, R, AI, AUI, ZEI, MUI, 00913000120429PK
|
||||
GMDT, FN, 00914000120429PK
|
||||
W, Y, Z, X, DEV, COF, STD, CV, VCV, Q, Q2, A, GF, ENF, E, 00915000120429PK
|
||||
EP) DUMPIT:1; 00916000120429PK
|
||||
FOR I ~ 1 STEP 1 UNTIL N DO 00917000120429PK
|
||||
BEGIN 00918000120429PK
|
||||
W[I] ~ 1.0; SUM ~ 0.0; 00919000120429PK
|
||||
FOR J ~ 1 STEP 1 UNTIL M DO 00920000120429PK
|
||||
SUM ~ SUM + J|(Z[J,I] ~ I*J); 00921000120429PK
|
||||
Y[1,I] ~ SUM; 00922000120429PK
|
||||
END; 00922500120430PK
|
||||
ORTHO (W, Y, Z, N, FN, M, P, R, AI, AUI, MUI, ZEI, X, DEV, 00923000120429PK
|
||||
COF, STD, CV, VCV, GMDT, Q, Q2, E, EP, A, GF, ENF); 00924000120429PK
|
||||
00924500120430PK
|
||||
DUMPIT: END INNER BLOCK; 00925000120429PK
|
||||
WRITE(FLUSH, FT, TIME(0), TIME(2)/60, TIME(3)/60, (TIME(1)-STARTT)/60); 00926000120429PK
|
||||
END. 00999000
|
||||
198
tools/NEATUPINFO.alg_m
Normal file
198
tools/NEATUPINFO.alg_m
Normal file
@@ -0,0 +1,198 @@
|
||||
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
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user