18 : maxLnk(maxLnk1), maxCtx(maxCtx1) {
21 for (
int i = 1; i <=
maxLnk; i++) comtList[i].resize(maxCtx);
41 int cLnk = e.
clMap->put(lnk,cli);
42 if (cLnk == 0)
return false;
59 if (!e.
clMap->valid(cLnk))
return false;
61 int lnk = e.
clMap->getKey(cLnk);
98 for (
int clx = e.
clMap->first(); clx != 0; clx = e.
clMap->next(clx)) {
99 int lnk = e.
clMap->getKey(clx);
106 int comt =
comtMap->getKey(ctx);
122 int cLnk = e.
clMap->find(lnk);
123 e.
clMap->remove(lnk);
150 if (!e.
clMap->valid(cLnk))
return false;
155 if (!e.
rtrLinks->member(cLnk))
return false;
160 if (plnk != 0 && !
isRtrLink(ctx,plnk))
return false;
164 if (plnk != 0 && !
isCoreLink(ctx,plnk))
return false;
168 if (n > 1)
return false;
170 if (n == 1 && !
isCoreLink(ctx,plnk))
return false;
187 if (!Util::readInt(in, comt) || comt < 1)
return false;
188 if (Util::verify(in,
'*')) e.
coreFlag =
true;
189 if (!Util::readInt(in,plnk))
return false;
191 if (!Util::verify(in,
'{'))
return false;
196 if (Util::verify(in,
'}'))
break;
198 if (!Util::readInt(in,lnk))
return false;
199 int cLnk = e.
clMap->put(lnk,cli);
200 if (Util::verify(in,
'+')) {
202 }
else if (Util::verify(in,
'*')) {
209 int ctx =
comtMap->put(comt,e);
210 if (ctx == 0)
return false;
233 if (!Util::readInt(in,num))
return false;
235 for (
int i = 1; i <= num; i++) {
237 cerr <<
"ComtreeTable::read: could not read "
238 << i <<
"-th comtree\n";
253 int comt =
comtMap->getKey(ctx);
265 ss <<
"# comtree coreFlag pLink links" << endl;