|
|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3072 (0xc00)
Types: TextFile
Names: »convpas1«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦this⟧ »convpas1«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
└─⟦4334b4c0b⟧
└─⟦this⟧ »convpas1«
begin
integer tegn,next_tegn,prev_tegn,file_index,
tegn_index,consttype,typetype,vartype,valuetype,
proctype,present_index,present_type,i;
integer array comparray(1:5,0:9);
zone array z(5,128,1,stderror);
integer array readarray(0:10);
procedure readtext;
begin
integer i;
for i:= 1 step 1 until 10 do readarray(i):=32;
i:=0;
repeat
i:=i+1;
readchar(in,tegn);
readarray(i) := tegn;
until tegn < 'a' or tegn > 'z' or i = 10;
repeatchar(in);
readarray(0):=i-1;
end readtext;
procedure outtext;
begin
integer i;
for i:=1 step 1 until readarray(0) do
outchar(z(present_index),readarray(i));
end outtext;
boolean procedure compare(index);
value index; integer index;
begin
integer i;
if readarray(0) = comparray(index,0) then
begin
for i:= 1 step 1 until comparray(index,0) do
begin
if comparray(index,i) = readarray(i) then compare := true
else compare := false;
end;
end else compare := false;
<* test *>
write(out,"nl",1,readarray(0));
for i:=1 step 1 until readarray(0) do outchar(out,readarray(i));
outchar(out,10);
write(out,comparray(index,0));
for i:=1 step 1 until comparray(index,0) do outchar(out,comparray(index,i));
<* end test *>
end compare;
consttype := 1; typetype := 2;
vartype := 3; valuetype :=4; proctype := 5;
present_type := const_type;
open(z(consttype),4,<:constfil:>,0);
open(z(typetype),4,<:typefil:>,0);
open(z(vartype),4,<:varfil:>,0);
open(z(valuetype),4,<:valuefil:>,0);
open(z(proctype),4,<:procfil:>,0);
for i:=0 step 1 until 5 do
comparray(consttype,i) := case i+1 of (5,'c','o','n','s','t');
for i:=0 step 1 until 4 do
comparray(typetype,i) := case i+1 of (4,'t','y','p','e');
for i:= 0 step 1 until 3 do
comparray(vartype,i) := case i+1 of (3,'v','a','r');
for i:=0 step 1 until 5 do
comparray(valuetype,i) := case i+1 of (5,'v','a','l','u','e');
for i := 0 step 1 until 9 do
comparray(proctype,i) := case i+1 of (9,'p','r','o','c','e','d','u','r','e');
prev_tegn := 'sp';
present_index := const_type;
repeat
readchar(in,tegn);
if ( tegn = 'c' or tegn = 'p' or tegn ='t'
or tegn = 'v' ) and prev_tegn = ';' then
begin
repeatchar(in);
readtext;
if compare(consttype) then present_index := consttype
else
if compare(typetype) then present_index := typetype
else
if compare(vartype) then present_index := vartype
else
if compare(valuetype) then present_index := valuetype
else
if compare(proctype) then present_index := proctype;
outtext;
end else outchar(z(present_index),tegn);
if tegn <> 'sp' and tegn <> 'nl' then prev_tegn := tegn;
until tegn = 'em';
for i:=1 step 1 until 5 do
outchar(z(i),'em');
for i:= 1 step 1 until 5 do close(z(i),true);
end;
▶EOF◀