Group.h revision 7c478bd95313f5f23a4c958a745db2134aa03244
// Copyright (c) 1994 James Clark
// See the file COPYING for copying permission.
#pragma ident "%Z%%M% %I% %E% SMI"
#ifndef Group_INCLUDED
#define Group_INCLUDED 1
#ifdef __GNUG__
#pragma interface
#endif
#include "Boolean.h"
#include "ContentToken.h"
#include "StringC.h"
#include "MessageArg.h"
#include "Owner.h"
#include "Syntax.h"
#include "Text.h"
#ifdef SP_NAMESPACE
#endif
GroupToken() { }
enum Type {
name,
dataTagLiteral, // data tag (padding) template
};
};
// modelGroup, dataTagTemplateGroup
unsigned flags_;
};
struct GroupConnector {
enum Type {
orGC,
};
};
unsigned flags_;
};
MessageArg *copy() const;
void append(MessageBuilder &) const;
};
MessageArg *copy() const;
void append(MessageBuilder &) const;
};
inline
{
return ((1 << i) & flags_) != 0;
}
inline
{
return GroupToken::modelGroup;
return GroupToken::dataTagTemplateGroup;
else
return GroupToken::invalid;
}
inline
{
return GroupToken::elementToken;
return GroupToken::nameToken;
return GroupToken::name;
else
return GroupToken::invalid;
}
inline
{
flags_ |= (1 << t);
}
inline
{
return (flags_ & (1 << c)) != 0;
}
inline
{
flags_ |= (1 << c);
}
#ifdef SP_NAMESPACE
}
#endif
#endif /* not Group_INCLUDED */