Partition.cxx revision 7c478bd95313f5f23a4c958a745db2134aa03244
// Copyright (c) 1994 James Clark
// See the file COPYING for copying permission.
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __GNUG__
#pragma implementation
#endif
#include "splib.h"
#include "Partition.h"
#include "ISet.h"
#include "ISetIter.h"
#include "SubstTable.h"
#include "Link.h"
#include "IList.h"
#include "IListIter.h"
#include "Owner.h"
#include "macros.h"
#include "EquivClass.h"
#include "constant.h"
#include "StringC.h"
#ifdef SP_NAMESPACE
namespace SP_NAMESPACE {
#endif
#if _MSC_VER == 900
// Work around MSVC 2.0 bug.
#endif
int nSets,
: map_(0) // eE gets code 0
{
{
do {
}
}
int i;
for (i = 0; i < nSets; i++)
maxCode_ = 0;
++maxCode_;
for (i = 0; i < nSets; i++)
if ((1 << i) & p->inSets)
}
{
do {
}
}
}
static
{
// Avoid modifying *classes, while there's an active iter on it.
EquivClass *found = 0;
{
break;
}
}
}
}
}
static
{
}
static
{
return allOut;
;
if (!oneOut) {
if (oneIn)
oneOut = 1;
}
if (oneIn)
break;
}
else {
if (oneIn)
}
}
else {
if (!oneIn) {
if (oneOut)
oneIn = 1;
}
if (oneOut)
break;
}
else {
// refMax < setMax
if (oneOut)
// avoid wrapping round
break;
}
}
}
}
if (oneIn)
else
return allOut;
}
static
unsigned setFlag)
{
for (;;) {
if (!p)
break;
if (!out)
out = new EquivClass;
case someInSomeOut:
break;
case allIn:
break;
case allOut:
break;
}
}
}
#ifdef SP_NAMESPACE
}
#endif