|
Packit |
8a864e |
// Copyright (c) 1994 James Clark
|
|
Packit |
8a864e |
// See the file COPYING for copying permission.
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
#ifndef Syntax_INCLUDED
|
|
Packit |
8a864e |
#define Syntax_INCLUDED 1
|
|
Packit |
8a864e |
#ifdef __GNUG__
|
|
Packit |
8a864e |
#pragma interface
|
|
Packit |
8a864e |
#endif
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
#include "types.h"
|
|
Packit |
8a864e |
#include "Boolean.h"
|
|
Packit |
8a864e |
#include "ISet.h"
|
|
Packit |
8a864e |
#include "StringC.h"
|
|
Packit |
8a864e |
#include "SubstTable.h"
|
|
Packit |
8a864e |
#include "HashTable.h"
|
|
Packit |
8a864e |
#include "Vector.h"
|
|
Packit |
8a864e |
#include "Resource.h"
|
|
Packit |
8a864e |
#include "XcharMap.h"
|
|
Packit |
8a864e |
#include "EntityCatalog.h"
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
#ifdef SP_NAMESPACE
|
|
Packit |
8a864e |
namespace SP_NAMESPACE {
|
|
Packit |
8a864e |
#endif
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
class Sd;
|
|
Packit |
8a864e |
class CharsetInfo;
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
class SP_API Syntax : public Resource, public EntityCatalog::Syntax {
|
|
Packit |
8a864e |
public:
|
|
Packit |
8a864e |
enum ReservedName {
|
|
Packit |
8a864e |
rALL,
|
|
Packit |
8a864e |
rANY,
|
|
Packit |
8a864e |
rATTLIST,
|
|
Packit |
8a864e |
rCDATA,
|
|
Packit |
8a864e |
rCONREF,
|
|
Packit |
8a864e |
rCURRENT,
|
|
Packit |
8a864e |
rDATA,
|
|
Packit |
8a864e |
rDEFAULT,
|
|
Packit |
8a864e |
rDOCTYPE,
|
|
Packit |
8a864e |
rELEMENT,
|
|
Packit |
8a864e |
rEMPTY,
|
|
Packit |
8a864e |
rENDTAG,
|
|
Packit |
8a864e |
rENTITIES,
|
|
Packit |
8a864e |
rENTITY,
|
|
Packit |
8a864e |
rFIXED,
|
|
Packit |
8a864e |
rID,
|
|
Packit |
8a864e |
rIDLINK,
|
|
Packit |
8a864e |
rIDREF,
|
|
Packit |
8a864e |
rIDREFS,
|
|
Packit |
8a864e |
rIGNORE,
|
|
Packit |
8a864e |
rIMPLICIT,
|
|
Packit |
8a864e |
rIMPLIED,
|
|
Packit |
8a864e |
rINCLUDE,
|
|
Packit |
8a864e |
rINITIAL,
|
|
Packit |
8a864e |
rLINK,
|
|
Packit |
8a864e |
rLINKTYPE,
|
|
Packit |
8a864e |
rMD,
|
|
Packit |
8a864e |
rMS,
|
|
Packit |
8a864e |
rNAME,
|
|
Packit |
8a864e |
rNAMES,
|
|
Packit |
8a864e |
rNDATA,
|
|
Packit |
8a864e |
rNMTOKEN,
|
|
Packit |
8a864e |
rNMTOKENS,
|
|
Packit |
8a864e |
rNOTATION,
|
|
Packit |
8a864e |
rNUMBER,
|
|
Packit |
8a864e |
rNUMBERS,
|
|
Packit |
8a864e |
rNUTOKEN,
|
|
Packit |
8a864e |
rNUTOKENS,
|
|
Packit |
8a864e |
rO,
|
|
Packit |
8a864e |
rPCDATA,
|
|
Packit |
8a864e |
rPI,
|
|
Packit |
8a864e |
rPOSTLINK,
|
|
Packit |
8a864e |
rPUBLIC,
|
|
Packit |
8a864e |
rRCDATA,
|
|
Packit |
8a864e |
rRE,
|
|
Packit |
8a864e |
rREQUIRED,
|
|
Packit |
8a864e |
rRESTORE,
|
|
Packit |
8a864e |
rRS,
|
|
Packit |
8a864e |
rSDATA,
|
|
Packit |
8a864e |
rSHORTREF,
|
|
Packit |
8a864e |
rSIMPLE,
|
|
Packit |
8a864e |
rSPACE,
|
|
Packit |
8a864e |
rSTARTTAG,
|
|
Packit |
8a864e |
rSUBDOC,
|
|
Packit |
8a864e |
rSYSTEM,
|
|
Packit |
8a864e |
rTEMP,
|
|
Packit |
8a864e |
rUSELINK,
|
|
Packit |
8a864e |
rUSEMAP
|
|
Packit |
8a864e |
};
|
|
Packit |
8a864e |
enum { nNames = rUSEMAP + 1 };
|
|
Packit |
8a864e |
enum Quantity {
|
|
Packit |
8a864e |
qATTCNT,
|
|
Packit |
8a864e |
qATTSPLEN,
|
|
Packit |
8a864e |
qBSEQLEN,
|
|
Packit |
8a864e |
qDTAGLEN,
|
|
Packit |
8a864e |
qDTEMPLEN,
|
|
Packit |
8a864e |
qENTLVL,
|
|
Packit |
8a864e |
qGRPCNT,
|
|
Packit |
8a864e |
qGRPGTCNT,
|
|
Packit |
8a864e |
qGRPLVL,
|
|
Packit |
8a864e |
qLITLEN,
|
|
Packit |
8a864e |
qNAMELEN,
|
|
Packit |
8a864e |
qNORMSEP,
|
|
Packit |
8a864e |
qPILEN,
|
|
Packit |
8a864e |
qTAGLEN,
|
|
Packit |
8a864e |
qTAGLVL
|
|
Packit |
8a864e |
};
|
|
Packit |
8a864e |
enum { nQuantity = qTAGLVL + 1 };
|
|
Packit |
8a864e |
enum { unlimited = 100000000 };
|
|
Packit |
8a864e |
enum DelimGeneral {
|
|
Packit |
8a864e |
dAND,
|
|
Packit |
8a864e |
dCOM,
|
|
Packit |
8a864e |
dCRO,
|
|
Packit |
8a864e |
dDSC,
|
|
Packit |
8a864e |
dDSO,
|
|
Packit |
8a864e |
dDTGC,
|
|
Packit |
8a864e |
dDTGO,
|
|
Packit |
8a864e |
dERO,
|
|
Packit |
8a864e |
dETAGO,
|
|
Packit |
8a864e |
dGRPC,
|
|
Packit |
8a864e |
dGRPO,
|
|
Packit |
8a864e |
dHCRO, // WWW TC addition
|
|
Packit |
8a864e |
dLIT,
|
|
Packit |
8a864e |
dLITA,
|
|
Packit |
8a864e |
dMDC,
|
|
Packit |
8a864e |
dMDO,
|
|
Packit |
8a864e |
dMINUS,
|
|
Packit |
8a864e |
dMSC,
|
|
Packit |
8a864e |
dNET,
|
|
Packit |
8a864e |
dNESTC, // WWW TC addition
|
|
Packit |
8a864e |
dOPT,
|
|
Packit |
8a864e |
dOR,
|
|
Packit |
8a864e |
dPERO,
|
|
Packit |
8a864e |
dPIC,
|
|
Packit |
8a864e |
dPIO,
|
|
Packit |
8a864e |
dPLUS,
|
|
Packit |
8a864e |
dREFC,
|
|
Packit |
8a864e |
dREP,
|
|
Packit |
8a864e |
dRNI,
|
|
Packit |
8a864e |
dSEQ,
|
|
Packit |
8a864e |
dSTAGO,
|
|
Packit |
8a864e |
dTAGC,
|
|
Packit |
8a864e |
dVI
|
|
Packit |
8a864e |
};
|
|
Packit |
8a864e |
enum { nDelimGeneral = dVI + 1 };
|
|
Packit |
8a864e |
enum StandardFunction {
|
|
Packit |
8a864e |
fRE,
|
|
Packit |
8a864e |
fRS,
|
|
Packit |
8a864e |
fSPACE
|
|
Packit |
8a864e |
};
|
|
Packit |
8a864e |
enum FunctionClass {
|
|
Packit |
8a864e |
cFUNCHAR,
|
|
Packit |
8a864e |
cSEPCHAR,
|
|
Packit |
8a864e |
cMSOCHAR,
|
|
Packit |
8a864e |
cMSICHAR,
|
|
Packit |
8a864e |
cMSSCHAR
|
|
Packit |
8a864e |
};
|
|
Packit |
8a864e |
enum Set {
|
|
Packit |
8a864e |
nameStart,
|
|
Packit |
8a864e |
digit,
|
|
Packit |
8a864e |
hexDigit,
|
|
Packit |
8a864e |
nmchar, // LCNMCHAR or UCNMCHAR
|
|
Packit |
8a864e |
s,
|
|
Packit |
8a864e |
blank,
|
|
Packit |
8a864e |
sepchar,
|
|
Packit |
8a864e |
minimumData,
|
|
Packit |
8a864e |
significant,
|
|
Packit |
8a864e |
functionChar, // function character
|
|
Packit |
8a864e |
sgmlChar
|
|
Packit |
8a864e |
};
|
|
Packit |
8a864e |
enum { nSet = sgmlChar + 1 };
|
|
Packit |
8a864e |
enum Category {
|
|
Packit |
8a864e |
otherCategory = 0,
|
|
Packit |
8a864e |
sCategory = 01,
|
|
Packit |
8a864e |
nameStartCategory = 02,
|
|
Packit |
8a864e |
digitCategory = 04,
|
|
Packit |
8a864e |
otherNameCategory = 010
|
|
Packit |
8a864e |
};
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
Syntax(const Sd &);
|
|
Packit |
8a864e |
virtual ~Syntax();
|
|
Packit |
8a864e |
Boolean lookupFunctionChar(const StringC &, Char *) const;
|
|
Packit |
8a864e |
HashTableIter<StringC,Char> functionIter() const;
|
|
Packit |
8a864e |
Boolean charFunctionName(Char c, const StringC *&name) const;
|
|
Packit |
8a864e |
Boolean lookupReservedName(const StringC &, ReservedName *) const;
|
|
Packit |
8a864e |
const StringC &reservedName(ReservedName) const;
|
|
Packit |
8a864e |
StringC rniReservedName(ReservedName) const;
|
|
Packit |
8a864e |
Number quantity(Quantity) const;
|
|
Packit |
8a864e |
Char standardFunction(int) const;
|
|
Packit |
8a864e |
Boolean getStandardFunction(int, Char &) const;
|
|
Packit |
8a864e |
const StringC &delim() const;
|
|
Packit |
8a864e |
const ISet<Char> *charSet(int i) const;
|
|
Packit |
8a864e |
const SubstTable *generalSubstTable() const;
|
|
Packit |
8a864e |
const SubstTable *entitySubstTable() const;
|
|
Packit |
8a864e |
const SubstTable &upperSubstTable() const;
|
|
Packit |
8a864e |
Boolean namecaseGeneral() const;
|
|
Packit |
8a864e |
Boolean namecaseEntity() const;
|
|
Packit |
8a864e |
const StringC &peroDelim() const;
|
|
Packit |
8a864e |
const StringC &delimGeneral(int) const;
|
|
Packit |
8a864e |
const StringC &delimShortrefComplex(size_t) const;
|
|
Packit |
8a864e |
const ISet<Char> &delimShortrefSimple() const;
|
|
Packit |
8a864e |
int nDelimShortrefComplex() const;
|
|
Packit |
8a864e |
Boolean isValidShortref(const StringC &) const;
|
|
Packit |
8a864e |
Boolean hasShortrefs() const;
|
|
Packit |
8a864e |
Boolean isNameCharacter(Xchar) const;
|
|
Packit |
8a864e |
Boolean isNameStartCharacter(Xchar) const;
|
|
Packit |
8a864e |
Boolean isDigit(Xchar) const;
|
|
Packit |
8a864e |
Boolean isHexDigit(Xchar) const;
|
|
Packit |
8a864e |
Boolean isS(Xchar) const;
|
|
Packit |
8a864e |
Boolean isB(Xchar c) const;
|
|
Packit |
8a864e |
Category charCategory(Xchar) const;
|
|
Packit |
8a864e |
Boolean isSgmlChar(Xchar) const;
|
|
Packit |
8a864e |
size_t attcnt() const;
|
|
Packit |
8a864e |
size_t attsplen() const;
|
|
Packit |
8a864e |
size_t namelen() const;
|
|
Packit |
8a864e |
size_t penamelen() const;
|
|
Packit |
8a864e |
size_t litlen() const;
|
|
Packit |
8a864e |
size_t normsep() const;
|
|
Packit |
8a864e |
size_t dtemplen() const;
|
|
Packit |
8a864e |
size_t grpcnt() const;
|
|
Packit |
8a864e |
size_t grpgtcnt() const;
|
|
Packit |
8a864e |
size_t grplvl() const;
|
|
Packit |
8a864e |
size_t taglvl() const;
|
|
Packit |
8a864e |
size_t taglen() const;
|
|
Packit |
8a864e |
size_t entlvl() const;
|
|
Packit |
8a864e |
size_t pilen() const;
|
|
Packit |
8a864e |
Char space() const;
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
void setStandardFunction(StandardFunction, Char);
|
|
Packit |
8a864e |
void enterStandardFunctionNames();
|
|
Packit |
8a864e |
void addFunctionChar(const StringC &, FunctionClass, Char);
|
|
Packit |
8a864e |
void setNamecaseGeneral(Boolean);
|
|
Packit |
8a864e |
void setNamecaseEntity(Boolean);
|
|
Packit |
8a864e |
void setDelimGeneral(int, const StringC &);
|
|
Packit |
8a864e |
void addDelimShortref(const StringC &, const CharsetInfo &);
|
|
Packit |
8a864e |
void addDelimShortrefs(const ISet<Char> &shortrefChars,
|
|
Packit |
8a864e |
const CharsetInfo &charset);
|
|
Packit |
8a864e |
void addNameCharacters(const ISet<Char> &);
|
|
Packit |
8a864e |
void addNameStartCharacters(const ISet<Char> &);
|
|
Packit |
8a864e |
void addSubst(Char lc, Char uc);
|
|
Packit |
8a864e |
void addShunchar(Char);
|
|
Packit |
8a864e |
void setShuncharControls();
|
|
Packit |
8a864e |
void setQuantity(int, Number);
|
|
Packit |
8a864e |
void setName(int, const StringC &);
|
|
Packit |
8a864e |
void setSgmlChar(const ISet<Char> &);
|
|
Packit |
8a864e |
void implySgmlChar(const Sd &);
|
|
Packit |
8a864e |
// :: is for Watcom 10.0a
|
|
Packit |
8a864e |
void checkSgmlChar(const Sd &,
|
|
Packit |
8a864e |
const ::SP_NAMESPACE_SCOPE Syntax *otherSyntax,
|
|
Packit |
8a864e |
Boolean invalidUseDocumentCharset,
|
|
Packit |
8a864e |
ISet<WideChar> &invalid)
|
|
Packit |
8a864e |
const;
|
|
Packit |
8a864e |
static int referenceQuantity(Quantity);
|
|
Packit |
8a864e |
const XcharMap<unsigned char> &markupScanTable() const;
|
|
Packit |
8a864e |
Boolean multicode() const;
|
|
Packit |
8a864e |
void addEntity(const StringC &, Char);
|
|
Packit |
8a864e |
size_t nEntities() const;
|
|
Packit |
8a864e |
const StringC &entityName(size_t) const;
|
|
Packit |
8a864e |
Char entityChar(size_t) const;
|
|
Packit |
8a864e |
private:
|
|
Packit |
8a864e |
void subst(Char, Char);
|
|
Packit |
8a864e |
void checkUnivControlChar(UnivChar univChar,
|
|
Packit |
8a864e |
const CharsetInfo &docCharset,
|
|
Packit |
8a864e |
const ::SP_NAMESPACE_SCOPE Syntax *otherSyntax,
|
|
Packit |
8a864e |
ISet<WideChar> &invalid) const;
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
ISet<Char> shunchar_;
|
|
Packit |
8a864e |
PackedBoolean shuncharControls_;
|
|
Packit |
8a864e |
ISet<Char> set_[nSet];
|
|
Packit |
8a864e |
Char standardFunction_[3];
|
|
Packit |
8a864e |
PackedBoolean standardFunctionValid_[3];
|
|
Packit |
8a864e |
Boolean namecaseGeneral_;
|
|
Packit |
8a864e |
Boolean namecaseEntity_;
|
|
Packit |
8a864e |
StringC delimGeneral_[nDelimGeneral];
|
|
Packit |
8a864e |
Vector<StringC> delimShortrefComplex_;
|
|
Packit |
8a864e |
ISet<Char> delimShortrefSimple_;
|
|
Packit |
8a864e |
StringC names_[nNames];
|
|
Packit |
8a864e |
Number quantity_[nQuantity];
|
|
Packit |
8a864e |
HashTable<StringC,int> nameTable_;
|
|
Packit |
8a864e |
HashTable<StringC,Char> functionTable_;
|
|
Packit |
8a864e |
SubstTable upperSubst_;
|
|
Packit |
8a864e |
SubstTable identitySubst_;
|
|
Packit |
8a864e |
const SubstTable *generalSubst_;
|
|
Packit |
8a864e |
const SubstTable *entitySubst_;
|
|
Packit |
8a864e |
XcharMap<unsigned char> categoryTable_;
|
|
Packit |
8a864e |
Boolean multicode_;
|
|
Packit |
8a864e |
XcharMap<unsigned char> markupScanTable_;
|
|
Packit |
8a864e |
Boolean hasMarkupScanTable_;
|
|
Packit |
8a864e |
Vector<StringC> entityNames_;
|
|
Packit |
8a864e |
StringC entityChars_;
|
|
Packit |
8a864e |
static const int referenceQuantity_[];
|
|
Packit |
8a864e |
};
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline Number Syntax::quantity(Quantity q) const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return quantity_[q];
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline void Syntax::setQuantity(int i, Number n)
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
quantity_[i] = n;
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline const SubstTable *Syntax::generalSubstTable() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return generalSubst_;
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline const SubstTable *Syntax::entitySubstTable() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return entitySubst_;
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline int Syntax::nDelimShortrefComplex() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return int(delimShortrefComplex_.size());
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline const StringC &Syntax::delimGeneral(int i) const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return delimGeneral_[i];
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline const StringC &Syntax::delimShortrefComplex(size_t i) const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return delimShortrefComplex_[i];
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline const ISet<Char> &Syntax::delimShortrefSimple() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return delimShortrefSimple_;
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline Boolean Syntax::hasShortrefs() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return delimShortrefComplex_.size() > 0 || !delimShortrefSimple_.isEmpty();
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline Char Syntax::standardFunction(int i) const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return standardFunction_[i];
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline Boolean Syntax::getStandardFunction(int i, Char &result) const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
if (standardFunctionValid_[i]) {
|
|
Packit |
8a864e |
result = standardFunction_[i];
|
|
Packit |
8a864e |
return 1;
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
else
|
|
Packit |
8a864e |
return 0;
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline const ISet<Char> *Syntax::charSet(int i) const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return &set_[i];
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline Boolean Syntax::isNameCharacter(Xchar c) const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return categoryTable_[c] >= nameStartCategory;
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline Boolean Syntax::isNameStartCharacter(Xchar c) const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return categoryTable_[c] == nameStartCategory;
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline Boolean Syntax::isDigit(Xchar c) const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return categoryTable_[c] == digitCategory;
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline Boolean Syntax::isS(Xchar c) const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return categoryTable_[c] == sCategory;
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline Boolean Syntax::isB(Xchar c) const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return (categoryTable_[c] == sCategory
|
|
Packit |
8a864e |
&& !(standardFunctionValid_[fRE] && c == standardFunction_[fRE])
|
|
Packit |
8a864e |
&& !(standardFunctionValid_[fRS] && c == standardFunction_[fRS]));
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline Syntax::Category Syntax::charCategory(Xchar c) const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return Category(categoryTable_[c]);
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline Boolean Syntax::isSgmlChar(Xchar c) const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return c >= 0 && set_[sgmlChar].contains(Char(c));
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline const StringC &Syntax::reservedName(ReservedName i) const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return names_[i];
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline size_t Syntax::attcnt() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return quantity(Syntax::qATTCNT);
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline size_t Syntax::attsplen() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return quantity(Syntax::qATTSPLEN);
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline size_t Syntax::namelen() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return quantity(Syntax::qNAMELEN);
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline size_t Syntax::penamelen() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return quantity(Syntax::qNAMELEN) - delimGeneral(Syntax::dPERO).size();
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline size_t Syntax::litlen() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return quantity(Syntax::qLITLEN);
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline size_t Syntax::normsep() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return quantity(Syntax::qNORMSEP);
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline size_t Syntax::dtemplen() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return quantity(Syntax::qDTEMPLEN);
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline size_t Syntax::grpcnt() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return quantity(Syntax::qGRPCNT);
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline size_t Syntax::grpgtcnt() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return quantity(Syntax::qGRPGTCNT);
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline size_t Syntax::grplvl() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return quantity(Syntax::qGRPLVL);
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline size_t Syntax::taglvl() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return quantity(Syntax::qTAGLVL);
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline size_t Syntax::taglen() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return quantity(Syntax::qTAGLEN);
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline size_t Syntax::entlvl() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return quantity(Syntax::qENTLVL);
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline size_t Syntax::pilen() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return quantity(Syntax::qPILEN);
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline Char Syntax::space() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return standardFunction(Syntax::fSPACE);
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline void Syntax::setSgmlChar(const ISet<Char> &set)
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
set_[sgmlChar] = set;
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline int Syntax::referenceQuantity(Quantity i)
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return referenceQuantity_[i];
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline void Syntax::setShuncharControls()
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
shuncharControls_ = 1;
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline const XcharMap<unsigned char> &Syntax::markupScanTable() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return markupScanTable_;
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline Boolean Syntax::multicode() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return multicode_;
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline Boolean Syntax::namecaseGeneral() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return namecaseGeneral_;
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline Boolean Syntax::namecaseEntity() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return namecaseEntity_;
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline size_t Syntax::nEntities() const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return entityNames_.size();
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline const StringC &Syntax::entityName(size_t i) const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return entityNames_[i];
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
inline Char Syntax::entityChar(size_t i) const
|
|
Packit |
8a864e |
{
|
|
Packit |
8a864e |
return entityChars_[i];
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
#ifdef SP_NAMESPACE
|
|
Packit |
8a864e |
}
|
|
Packit |
8a864e |
#endif
|
|
Packit |
8a864e |
|
|
Packit |
8a864e |
#endif /* Syntax_INCLUDED */
|