D=DOMFRD()
[
SACAlgebraicNumbers/domfrd.ea: DomainFile read. If next item read on
IUNIT is a filename, that file will be opened as unit DFIU,
IUNIT set to DFIU, and conitinue. In all cases, value of IUNIT
at exit will be same as at entry. D = ("DOMAINFILEFEB387", key, data)
is a domain specification, where key is either
"Z", "Q", "
ZMOD", or "QEXT", and data is either () (Z and Q),
(m) (
ZMOD), or (V, M, (u, v)) (QEXT).]
const DFIU=14.
(1) [Check header.] C=CREADB(); if C~='(' then go to 3;
SAVIU=IUNIT; H=GTTKN();
while EQUAL(H,"FILENAMEFEB387") do {
F=GTTKN(); C=CREADB(); if C~=')' then go to 3;
OPENF(DFIU,F); IUNIT=DFIU; H=GTTKN() };
if NOT EQUAL(H,"DOMAINFILEFEB387") then go to 3;
(2) [Key and data.] D=LIST1("DOMAINFILEFEB387"); K=GTTKN();
if EQUAL(K,"Z")|EQUAL(K,"Q") then D=COMP2((),K,D);
if EQUAL(K,"
ZMOD") then {
m=IREAD(); D=COMP2(m, K, D) };
if EQUAL(K,"
QEXT") then {
ANRD(;V,M,J); A=LIST3(V,M,J);
D=COMP2(A, K, D) };
D=inv(D);
C=CREADB(); if C~=')' then go to 3; return.
(3) [Error exit.]
print "syntax error in domfrd";
IUNIT=SAVIU; stop..