Attribute.h revision 7c478bd95313f5f23a4c958a745db2134aa03244
// Copyright (c) 1994 James Clark
// See the file COPYING for copying permission.
#pragma ident "%Z%%M% %I% %E% SMI"
#ifndef Attribute_INCLUDED
#define Attribute_INCLUDED 1
#ifdef __GNUG__
#pragma interface
#endif
#include <stddef.h>
#include "Resource.h"
#include "Owner.h"
#include "StringC.h"
#include "Vector.h"
#include "CopyOwner.h"
#include "Boolean.h"
#include "Text.h"
#include "Ptr.h"
#include "Message.h"
#ifdef SP_NAMESPACE
#endif
AttributeDefinitionDesc() { }
enum DeclaredValue {
name,
id,
};
enum DefaultValueType {
};
// Attribute definitions whose default value type is current and
// which have the same currentIndex share current values.
};
virtual ~DeclaredValue();
// This performs syntactic checking on the value.
unsigned &specLength) const = 0;
// This is used to avoid unnecessary syntactic checking in the
// case where the attribute name and vi have been omitted.
unsigned &specLength) const;
// This performs semantic checking on the value.
const StringC &,
unsigned &nIdrefs,
unsigned &nEntityNames) const;
};
unsigned &) const;
void buildDesc(AttributeDefinitionDesc &) const;
DeclaredValue *copy() const;
};
// must be in same order as AttributeDefinitionDesc
enum TokenType {
name,
};
unsigned &) const;
const StringC &, unsigned &) const;
void buildDesc(AttributeDefinitionDesc &) const;
DeclaredValue *copy() const;
unsigned initialCategories_;
unsigned subsequentCategories_;
};
unsigned &) const;
unsigned &) const;
void buildDesc(AttributeDefinitionDesc &) const;
DeclaredValue *copy() const;
};
void buildDesc(AttributeDefinitionDesc &) const;
DeclaredValue *copy() const;
};
const StringC &,
unsigned &nIdrefs,
unsigned &nEntityNames) const;
Boolean isNotation() const;
void buildDesc(AttributeDefinitionDesc &) const;
DeclaredValue *copy() const;
};
const StringC &,
unsigned &nIdrefs,
unsigned &nEntityNames) const;
DeclaredValue *copy() const;
};
const StringC &,
unsigned &nIdrefs,
unsigned &nEntityNames) const;
void buildDesc(AttributeDefinitionDesc &) const;
DeclaredValue *copy() const;
};
const StringC &,
unsigned &nIdrefs,
unsigned &nEntityNames) const;
void buildDesc(AttributeDefinitionDesc &) const;
DeclaredValue *copy() const;
};
makeMissingValue(AttributeContext &) const = 0;
const AttributeContext &) const;
virtual const AttributeValue *
unsigned &) const;
unsigned &nIdrefs,
unsigned &nEntityNames) const;
Boolean isNotation() const;
void getDesc(AttributeDefinitionDesc &) const;
void setDeclaredValue(DeclaredValue *);
};
void buildDesc(AttributeDefinitionDesc &) const;
AttributeDefinition *copy() const;
};
void buildDesc(AttributeDefinitionDesc &) const;
AttributeDefinition *copy() const;
};
void buildDesc(AttributeDefinitionDesc &) const;
AttributeDefinition *copy() const;
};
void buildDesc(AttributeDefinitionDesc &) const;
AttributeDefinition *copy() const;
};
AttributeValue *);
void buildDesc(AttributeDefinitionDesc &) const;
AttributeDefinition *copy() const;
};
AttributeValue *);
// check that it's equal to the default
void buildDesc(AttributeDefinitionDesc &) const;
AttributeDefinition *copy() const;
};
Boolean anyCurrent = 0,
size_t notationIndex() const;
Boolean anyCurrent() const;
void append(AttributeDefinition *);
};
};
AttributeSemantics *copy() const;
};
AttributeSemantics *copy() const;
};
enum Type {
};
const StringC &,
unsigned &,
unsigned &) const;
AttributeContext &, const StringC &);
};
};
AttributeContext &, const StringC &);
};
const StringC &,
unsigned &,
unsigned &) const;
AttributeContext &, const StringC &);
// index into value of each space
// length is number of tokens - 1
};
Attribute();
const AttributeValue *value() const;
const AttributeSemantics *semantics() const;
void setSemantics(AttributeSemantics *);
void clear();
};
// was a conref attribute specified?
const AttributeValue *value(unsigned) const;
const AttributeSemantics *semantics(unsigned) const;
void finish(AttributeContext &);
unsigned &specLength);
unsigned &specLength);
AttributeContext &);
void swap(AttributeList &);
// is the attribute #current
Boolean anyCurrent() const;
void noteInvalidSpec();
unsigned nIdrefs_;
unsigned nEntityNames_;
};
const Location &);
const Location &);
Boolean mayDefaultAttribute() const;
};
inline
{
return declaredValue_->tokenized();
}
inline
{
return declaredValue_->isNotation();
}
inline
{
return declaredValue_->isEntity();
}
inline
{
return declaredValue_->isId();
}
inline
{
return declaredValue_->isIdref();
}
inline
{
return declaredValue_->getTokens();
}
inline
unsigned &nIdrefs,
unsigned &nEntityNames) const
{
}
inline
unsigned &specLength) const
{
context);
}
inline
unsigned &specLength) const
{
name_, specLength),
context);
}
inline
{
}
inline
{
return name_;
}
inline
{
}
inline
{
}
inline
{
return index_;
}
inline
{
}
inline
{
return idIndex_;
}
inline
{
return notationIndex_;
}
inline
{
return anyCurrent_;
}
inline
{
}
inline
{
}
inline
{
}
inline
{
}
inline
{
}
inline
{
}
inline
{
}
inline
{
}
inline
{
return specIndexPlus_ - 1;
}
inline
{
return specIndexPlus_ != 0;
}
inline
{
}
inline
{
return value_;
}
inline
{
return semantics_.pointer();
}
inline
{
}
inline
{
}
inline
{
}
inline
{
}
inline
{
}
inline
{
return def_;
}
inline
{
}
inline
{
}
inline
{
}
inline
{
}
inline
{
}
inline
{
}
inline
{
}
inline
const
{
return vec_[i].valuePointer();
}
inline
{
}
inline
{
}
inline
{
return nSpec_;
}
inline
{
return conref_;
}
inline
{
}
inline
{
}
inline
{
}
inline
const AttributeValue *
const
{
}
inline
{
return 0;
else {
return 1;
}
}
inline
{
}
inline
{
}
inline
{
}
inline
{
return mayDefaultAttribute_;
}
inline
{
return validate_;
}
#ifdef SP_NAMESPACE
}
#endif
#endif /* not Attribute_INCLUDED */