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

📄 sd.h

📁 html-->wml的转换,能实现html到wml的大量转换工作,但是存在些许缺陷,比如对于jpeg以及gif无法转换成wbmp格式
💻 H
字号:
// Copyright (c) 1994 James Clark// See the file COPYING for copying permission.#ifndef Sd_INCLUDED#define Sd_INCLUDED 1#ifdef __GNUG__#pragma interface#endif#include "types.h"#include "Boolean.h"#include "Resource.h"#include "CharsetInfo.h"#include "ExternalId.h"#include "ISet.h"#include "Syntax.h"#include "CharsetDecl.h"#include "HashTable.h"#include "EntityManager.h"#include "Ptr.h"// Information about the SGML declaration that is not syntax specific.#ifdef SP_NAMESPACEnamespace SP_NAMESPACE {#endifclass SP_API Sd : public Resource {public:  // These must be in the same order as in the SGML declaration.  enum BooleanFeature {    fDATATAG,    fOMITTAG,    fRANK,    fSTARTTAGEMPTY,    fSTARTTAGUNCLOSED,    fENDTAGEMPTY,    fENDTAGUNCLOSED,    fATTRIBDEFAULT,    fATTRIBOMITNAME,    fATTRIBVALUE,    fEMPTYNRM,    fIMPLYDEFATTLIST,    fIMPLYDEFDOCTYPE,    fIMPLYDEFELEMENT,    fIMPLYDEFENTITY,    fIMPLYDEFNOTATION,    fIMPLICIT,    fFORMAL,    fURN,    fKEEPRSRE    };  enum {    nBooleanFeature = fKEEPRSRE + 1,    fSHORTTAG_FIRST = fSTARTTAGEMPTY,    fSHORTTAG_LAST = fATTRIBVALUE  };  // These must be in the same order as in the SGML declaration.  enum NumberFeature {    fSIMPLE,    fEXPLICIT,    fCONCUR,    fSUBDOC  };  enum { nNumberFeature = fSUBDOC + 1 };  enum NetEnable {    netEnableNo,    netEnableImmednet,    netEnableAll  };  enum EntityRef {    entityRefAny,    entityRefInternal,    entityRefNone  };  // These are names used in the SGML declaration.  enum ReservedName {    rALL,    rANY,    rAPPINFO,    rATTLIST,    rATTRIB,    rBASESET,    rCAPACITY,    rCHARSET,    rCONCUR,    rCONTROLS,    rDATATAG,    rDEFAULT,    rDELIM,    rDESCSET,    rDOCTYPE,    rDOCUMENT,    rELEMENT,    rEMPTY,    rEMPTYNRM,    rENDTAG,    rENTITIES,    rENTITY,    rEXPLICIT,    rFEATURES,    rFORMAL,    rFUNCHAR,    rFUNCTION,    rGENERAL,    rIMMEDNET,    rIMPLICIT,    rIMPLYDEF,    rINSTANCE,    rINTEGRAL,    rINTERNAL,    rKEEPRSRE,    rLCNMCHAR,    rLCNMSTRT,    rLINK,    rMINIMIZE,    rMSICHAR,    rMSOCHAR,    rMSSCHAR,    rNAMECASE,    rNAMECHAR,    rNAMES,    rNAMESTRT,    rNAMING,    rNETENABL,    rNO,    rNOASSERT,    rNONE,    rNOTATION,    rOMITNAME,    rOMITTAG,    rOTHER,    rPUBLIC,    rQUANTITY,    rRANK,    rRE,    rREF,    rRS,    rSCOPE,    rSEEALSO,    rSEPCHAR,    rSGML,    rSGMLREF,    rSHORTREF,    rSHORTTAG,    rSHUNCHAR,    rSIMPLE,    rSPACE,    rSTARTTAG,    rSUBDOC,    rSWITCHES,    rSYNTAX,    rSYSTEM,    rTYPE,    rUCNMCHAR,    rUCNMSTRT,    rUNCLOSED,    rUNUSED,    rURN,    rVALIDITY,    rVALUE,    rYES  };  enum Capacity {    TOTALCAP,    ENTCAP,    ENTCHCAP,    ELEMCAP,    GRPCAP,    EXGRPCAP,    EXNMCAP,    ATTCAP,    ATTCHCAP,    AVGRPCAP,    NOTCAP,    NOTCHCAP,    IDCAP,    IDREFCAP,    MAPCAP,    LKSETCAP,    LKNMCAP  };  enum { nCapacity = LKNMCAP + 1 };  Sd(const Ptr<EntityManager> &);  void setDocCharsetDesc(const UnivCharsetDesc &);  Boolean matchesReservedName(const StringC &, ReservedName) const;  int digitWeight(Char) const;  int hexDigitWeight(Char) const;  Boolean link() const;  Number simpleLink() const;  Boolean implicitLink() const;  Number explicitLink() const;  Boolean startTagEmpty() const;  Boolean startTagUnclosed() const;  NetEnable startTagNetEnable() const;  void setStartTagNetEnable(NetEnable);  Boolean endTagEmpty() const;  Boolean endTagUnclosed() const;  Boolean attributeDefault() const;  Boolean attributeValueNotLiteral() const;  Boolean attributeOmitName() const;  Boolean emptyElementNormal() const;  Boolean implydefAttlist() const;  Boolean implydefDoctype() const;  Boolean implydefElement() const;  Boolean implydefEntity() const;  Boolean implydefNotation() const;  Number concur() const;  Boolean omittag() const;  Boolean rank() const;  Boolean datatag() const;  Boolean formal() const;  Boolean keeprsre() const;  Number subdoc() const;  StringC reservedName(int) const;  Boolean lookupQuantityName(const StringC &, Syntax::Quantity &) const;  Boolean lookupGeneralDelimiterName(const StringC &, Syntax::DelimGeneral &)       const;  Boolean lookupCapacityName(const StringC &, Sd::Capacity &) const;  StringC quantityName(Syntax::Quantity) const;  Boolean internalCharsetIsDocCharset() const;  const CharsetInfo &internalCharset() const;  const CharsetInfo &docCharset() const;  Char execToInternal(char) const;  StringC execToInternal(const char *) const;  Number capacity(int) const;  void setCapacity(int, Number);  StringC capacityName(int) const;  Boolean scopeInstance() const;  void setScopeInstance();  void setDocCharsetDecl(CharsetDecl &);  const CharsetDecl &docCharsetDecl() const;  void setBooleanFeature(BooleanFeature, Boolean);  void setShorttag(Boolean);  void setNumberFeature(NumberFeature, Number);  StringC generalDelimiterName(Syntax::DelimGeneral) const;  UnivChar nameToUniv(const StringC &);  Boolean www() const;  void setWww(Boolean);  EntityRef entityRef() const;  void setEntityRef(EntityRef);  Boolean typeValid() const;  void setTypeValid(Boolean);  Boolean integrallyStored() const;  void setIntegrallyStored(Boolean);private:  PackedBoolean booleanFeature_[nBooleanFeature];  Number numberFeature_[nNumberFeature];  Number capacity_[nCapacity];  PackedBoolean internalCharsetIsDocCharset_;  // if null, use docCharset_  const CharsetInfo *internalCharsetPtr_;  CharsetInfo docCharset_;  CharsetDecl docCharsetDecl_;  Boolean scopeInstance_;  Boolean www_;  NetEnable netEnable_;  EntityRef entityRef_;  Boolean typeValid_;  Boolean integrallyStored_;  HashTable<StringC,int> namedCharTable_;  Ptr<EntityManager> entityManager_;  static const char *const reservedName_[];  static const char *const generalDelimiterName_[];  static const char *const capacityName_[];  static const char *const quantityName_[];};inlineBoolean Sd::link() const{  return (numberFeature_[fSIMPLE]	  || booleanFeature_[fIMPLICIT]	  || numberFeature_[fEXPLICIT]);}inlineNumber Sd::explicitLink() const{  return numberFeature_[fEXPLICIT];}inlineBoolean Sd::implicitLink() const{  return booleanFeature_[fIMPLICIT];}inlineNumber Sd::simpleLink() const{  return numberFeature_[fSIMPLE];}inlineBoolean Sd::startTagEmpty() const{  return booleanFeature_[fSTARTTAGEMPTY];}inlineBoolean Sd::startTagUnclosed() const{  return booleanFeature_[fSTARTTAGUNCLOSED];}inlineSd::NetEnable Sd::startTagNetEnable() const{  return netEnable_;}inlinevoid Sd::setStartTagNetEnable(NetEnable e){  netEnable_ = e;}inlineBoolean Sd::endTagEmpty() const{  return booleanFeature_[fENDTAGEMPTY];}inlineBoolean Sd::endTagUnclosed() const{  return booleanFeature_[fENDTAGUNCLOSED];}inlineBoolean Sd::attributeDefault() const{  return booleanFeature_[fATTRIBDEFAULT];}inlineBoolean Sd::attributeValueNotLiteral() const{  return booleanFeature_[fATTRIBVALUE];}inlineBoolean Sd::attributeOmitName() const{  return booleanFeature_[fATTRIBOMITNAME];}inlineBoolean Sd::emptyElementNormal() const{  return booleanFeature_[fEMPTYNRM];}inlineBoolean Sd::implydefAttlist() const{  return booleanFeature_[fIMPLYDEFATTLIST];}inlineBoolean Sd::implydefDoctype() const{  return booleanFeature_[fIMPLYDEFDOCTYPE];}inlineBoolean Sd::implydefElement() const{  return booleanFeature_[fIMPLYDEFELEMENT];}inlineBoolean Sd::implydefEntity() const{  return booleanFeature_[fIMPLYDEFENTITY];}inlineBoolean Sd::implydefNotation() const{  return booleanFeature_[fIMPLYDEFNOTATION];}inlineNumber Sd::concur() const{  return numberFeature_[fCONCUR];}inlineNumber Sd::subdoc() const{  return numberFeature_[fSUBDOC];}inlineBoolean Sd::omittag() const{  return booleanFeature_[fOMITTAG];}inlineBoolean Sd::rank() const{  return booleanFeature_[fRANK];}inlineBoolean Sd::datatag() const{  return booleanFeature_[fDATATAG];}inlineBoolean Sd::formal() const{  return booleanFeature_[fFORMAL];}inlineBoolean Sd::keeprsre() const{  return booleanFeature_[fKEEPRSRE];}inlineconst CharsetInfo &Sd::internalCharset() const{  return internalCharsetPtr_ ? *internalCharsetPtr_ : docCharset_;}inlineChar Sd::execToInternal(char c) const{  return internalCharset().execToDesc(c);}inlineStringC Sd::execToInternal(const char *s) const{  return internalCharset().execToDesc(s);}inlineStringC Sd::reservedName(int i) const{  return execToInternal(reservedName_[i]);}inlineBoolean Sd::internalCharsetIsDocCharset() const{  return internalCharsetIsDocCharset_;}inlineconst CharsetInfo &Sd::docCharset() const{  return docCharset_;}inlineint Sd::digitWeight(Char c) const{  return internalCharset().digitWeight(c);}inlineint Sd::hexDigitWeight(Char c) const{  return internalCharset().hexDigitWeight(c);}inlineNumber Sd::capacity(int i) const{  return capacity_[i];}inlinevoid Sd::setCapacity(int i, Number n){  capacity_[i] = n;}inlineStringC Sd::capacityName(int i) const{  return execToInternal(capacityName_[i]);}inlineBoolean Sd::scopeInstance() const{  return scopeInstance_;}inlinevoid Sd::setScopeInstance(){  scopeInstance_ = 1;}inlinevoid Sd::setDocCharsetDecl(CharsetDecl &decl){  decl.swap(docCharsetDecl_);}inlineconst CharsetDecl &Sd::docCharsetDecl() const{  return docCharsetDecl_;}inlinevoid Sd::setBooleanFeature(BooleanFeature i, Boolean b){  booleanFeature_[i] = b;}inlinevoid Sd::setNumberFeature(NumberFeature i, Number n){  numberFeature_[i] = n;}inlineBoolean Sd::www() const{  return www_;}inlinevoid Sd::setWww(Boolean b){  www_ = b;}inlineSd::EntityRef Sd::entityRef() const{  return entityRef_;}inlinevoid Sd::setEntityRef(EntityRef r){  entityRef_ = r;}inlineBoolean Sd::typeValid() const{  return typeValid_;} inlinevoid Sd::setTypeValid(Boolean b){  typeValid_ = b;}inlineBoolean Sd::integrallyStored() const{  return integrallyStored_;}inlinevoid Sd::setIntegrallyStored(Boolean b){  integrallyStored_ = b;}#ifdef SP_NAMESPACE}#endif#endif /* Sd_INCLUDED */

⌨️ 快捷键说明

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