⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 attribute.h

📁 SP是一个基于GNU C++编译器
💻 H
📖 第 1 页 / 共 2 页
字号:
  void init(const ConstPtr<AttributeDefinitionList> &);  // was a conref attribute specified?  Boolean conref() const;  size_t size() const;  const StringC &name(unsigned) const;  const AttributeValue *value(unsigned) const;  size_t specIndex(size_t) const;  const ConstPtr<AttributeValue> &valuePointer(unsigned) const;  const AttributeSemantics *semantics(unsigned) const;  Boolean tokenized(unsigned index) const;  Boolean tokenIndex(const StringC &, unsigned &) const;  Boolean tokenIndexUnique(const StringC &, unsigned) const;  Boolean attributeIndex(const StringC &, unsigned &) const;  void finish(AttributeContext &);  Boolean setValue(unsigned index, Text &, AttributeContext &,		   unsigned &specLength);  void setValueToken(unsigned index, Text &, AttributeContext &,		     unsigned &specLength);  void setSpec(unsigned index, AttributeContext &);  Boolean recoverUnquoted(const StringC &, const Location &,			  AttributeContext &);  Boolean handleAsUnterminated(AttributeContext &context);  void swap(AttributeList &);  size_t nSpec() const;  size_t defIndex() const;  // is the attribute #current  Boolean current(unsigned) const;  Boolean anyCurrent() const;  Boolean specified(unsigned) const;  Boolean id(unsigned) const;  Boolean idref(unsigned) const;  const Vector<StringC> *getAllowedTokens(unsigned) const;  const StringC *getId() const;	// null if none  Boolean idIndex(unsigned &) const;  void noteInvalidSpec();  void changeDef(const ConstPtr<AttributeDefinitionList> &);  const ConstPtr<AttributeDefinitionList> &def() const;private:  const AttributeDefinition *def(size_t) const;  PackedBoolean conref_;  unsigned nIdrefs_;  unsigned nEntityNames_;  size_t nSpec_;  Vector<Attribute> vec_;  ConstPtr<AttributeDefinitionList> def_;};class SP_API AttributeContext : public Messenger {public:  AttributeContext();  virtual ~AttributeContext();  virtual Boolean defineId(const StringC &, const Location &, Location &);  virtual void noteIdref(const StringC &, const Location &);  virtual void noteCurrentAttribute(size_t, AttributeValue *);  virtual ConstPtr<AttributeValue> getCurrentAttribute(size_t) const;  virtual ConstPtr<Entity> getAttributeEntity(const StringC &,					      const Location &);  virtual ConstPtr<Notation> getAttributeNotation(const StringC &,						  const Location &);  virtual const Syntax &attributeSyntax() const = 0;  ConstPtr<AttributeValue> makeImpliedAttributeValue();  Boolean mayDefaultAttribute() const;  Boolean validate() const;protected:  Boolean mayDefaultAttribute_;  Boolean validate_;private:  ConstPtr<AttributeValue> impliedAttributeValue_;};inlineBoolean AttributeDefinition::tokenized() const{  return declaredValue_->tokenized();}inlineBoolean AttributeDefinition::isNotation() const{  return declaredValue_->isNotation();}inlineBoolean AttributeDefinition::isEntity() const{  return declaredValue_->isEntity();}inlineBoolean AttributeDefinition::isId() const{  return declaredValue_->isId();}inlineBoolean AttributeDefinition::isIdref() const{  return declaredValue_->isIdref();}inlineconst Vector<StringC> *AttributeDefinition::getTokens() const{  return declaredValue_->getTokens();}inlineAttributeSemantics *AttributeDefinition::makeSemantics(const AttributeValue *value,				   AttributeContext &context,				   unsigned &nIdrefs,				   unsigned &nEntityNames) const{  return value->makeSemantics(declaredValue_.pointer(), context, name_,			      nIdrefs, nEntityNames);}inlineAttributeValue *AttributeDefinition::makeValue(Text &text,					       AttributeContext &context,					       unsigned &specLength) const{  return checkValue(declaredValue_->makeValue(text, context, name_,					      specLength),		    context);}inlineAttributeValue *AttributeDefinition::makeValueFromToken(Text &text,					AttributeContext &context,					unsigned &specLength) const{  return checkValue(declaredValue_->makeValueFromToken(text, context,						       name_, specLength),		    context);}inlineBoolean AttributeDefinition::containsToken(const StringC &token) const{  return declaredValue_->containsToken(token);}inlineconst StringC &AttributeDefinition::name() const{  return name_;}inlinevoid AttributeDefinition::setDeclaredValue(DeclaredValue *declaredValue){  declaredValue_ = declaredValue;}inlinesize_t AttributeDefinitionList::size() const{  return defs_.size();}inlinesize_t AttributeDefinitionList::index() const{  return index_;}inlinevoid AttributeDefinitionList::setIndex(size_t index){  index_ = index;}inlinesize_t AttributeDefinitionList::idIndex() const{  return idIndex_;}inlinesize_t AttributeDefinitionList::notationIndex() const{  return notationIndex_;}inlineBoolean AttributeDefinitionList::anyCurrent() const{  return anyCurrent_;}inlineAttributeDefinition *AttributeDefinitionList::def(size_t i){  return defs_[i].pointer();}inlineconst AttributeDefinition *AttributeDefinitionList::def(size_t i) const{  return defs_[i].pointer();}inlinesize_t TokenizedAttributeValue::nTokens() const{  return spaceIndex_.size() + 1;}inlineconst StringC &TokenizedAttributeValue::string() const{  return text_.string();}inlinevoid TokenizedAttributeValue::token(size_t i,				    const Char *&ptr, size_t &len) const{  size_t startIndex = i == 0 ? 0 : spaceIndex_[i - 1] + 1;  ptr = text_.string().data() + startIndex;  len = (i == spaceIndex_.size() ? text_.size() : spaceIndex_[i]) - startIndex;}inlineStringC TokenizedAttributeValue::token(size_t i) const{  const Char *ptr;  size_t len;  token(i, ptr, len);  return StringC(ptr, len);}inlineLocation TokenizedAttributeValue::tokenLocation(size_t i) const{  return text_.charLocation(i == 0 ? 0 : spaceIndex_[i - 1] + 1);}inlineBoolean TokenizedAttributeValue::tokenLocation(size_t i,					       const ConstPtr<Origin> *&origin,					       Index &index) const{  return text_.charLocation(i == 0 ? 0 : spaceIndex_[i - 1] + 1, origin, index);}inlinesize_t Attribute::specIndex() const{  return specIndexPlus_ - 1;}inlineBoolean Attribute::specified() const{  return specIndexPlus_ != 0;}inlineconst AttributeValue *Attribute::value() const{  return value_.pointer();}inlineconst ConstPtr<AttributeValue> &Attribute::valuePointer() const{  return value_;}inlineconst AttributeSemantics *Attribute::semantics() const{  return semantics_.pointer();}inlinevoid Attribute::setSpec(size_t index){  specIndexPlus_ = index + 1;}inlinevoid Attribute::setValue(const ConstPtr<AttributeValue> &value){  value_ = value;}inlinevoid Attribute::setSemantics(AttributeSemantics *semantics){  semantics_ = semantics;}inlinesize_t AttributeList::size() const{  return vec_.size();}inlineconst AttributeDefinition *AttributeList::def(size_t i) const{  return def_->def(i);}inlineconst ConstPtr<AttributeDefinitionList> &AttributeList::def() const{  return def_;}inlineBoolean AttributeList::tokenized(unsigned i) const{  return def(i)->tokenized();}inlineBoolean AttributeList::tokenIndex(const StringC &name, unsigned &index) const{  return !def_.isNull() && def_->tokenIndex(name, index);}inlineBoolean AttributeList::tokenIndexUnique(const StringC &name, unsigned index) const{  return def_->tokenIndexUnique(name, index);}inlineBoolean AttributeList::attributeIndex(const StringC &name, unsigned &index) const{  return !def_.isNull() && def_->attributeIndex(name, index);}inlineconst StringC &AttributeList::name(unsigned i) const{  return def(i)->name();}inlineconst Vector<StringC> *AttributeList::getAllowedTokens(unsigned i) const{  return def(i)->getTokens();}inlineconst AttributeValue *AttributeList::value(unsigned i) const{  return vec_[i].value();}inlineconst ConstPtr<AttributeValue> &AttributeList::valuePointer(unsigned i)     const{  return vec_[i].valuePointer();}inlineconst AttributeSemantics *AttributeList::semantics(unsigned i) const{  return vec_[i].semantics();}inlinesize_t AttributeList::specIndex(size_t i) const{  return vec_[i].specIndex();}inlinesize_t AttributeList::nSpec() const{  return nSpec_;}inlineBoolean AttributeList::conref() const{  return conref_;}inlinesize_t AttributeList::defIndex() const{  return def_.isNull() ? size_t(-1) : def_->index();}inlineBoolean AttributeList::current(unsigned i) const{  return def(i)->isCurrent();}inlineBoolean AttributeList::anyCurrent() const{  return !def_.isNull() && def_->anyCurrent();}inlineconst AttributeValue *DefaultAttributeDefinition::defaultValue(const AttributeValue *)     const{  return value_.pointer();}inlineBoolean AttributeList::idIndex(unsigned &ind) const{  if (def_.isNull() || def_->idIndex() == size_t(-1))    return 0;  else {    ind = def_->idIndex();    return 1;  }}inlineBoolean AttributeList::id(unsigned i) const{  return def(i)->isId();}inlineBoolean AttributeList::idref(unsigned i) const{  return def(i)->isIdref();}inlineBoolean AttributeList::specified(unsigned i) const{  return vec_[i].specified();}inlineBoolean AttributeContext::mayDefaultAttribute() const{  return mayDefaultAttribute_;}inlineBoolean AttributeContext::validate() const{  return validate_;}#ifdef SP_NAMESPACE}#endif#endif /* not Attribute_INCLUDED */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -