📄 param.h
字号:
// Copyright (c) 1994 James Clark// See the file COPYING for copying permission.#ifndef Param_INCLUDED#define Param_INCLUDED 1#ifdef __GNUG__#pragma interface#endif#include "Boolean.h"#include "ContentToken.h"#include "StringC.h"#include "Location.h"#include "MessageArg.h"#include "Mode.h"#include "NameToken.h"#include "Owner.h"#include "Ptr.h"#include "Syntax.h"#include "Text.h"#include "Vector.h"// This describes a markup declaration parameter.#ifdef SP_NAMESPACEnamespace SP_NAMESPACE {#endifclass ElementType;class Param {public: Param() { } typedef unsigned char Type; enum { invalid, dso, mdc, minus, pero, inclusions, exclusions, nameGroup, nameTokenGroup, modelGroup, number, minimumLiteral, attributeValueLiteral, tokenizedAttributeValueLiteral, systemIdentifier, paramLiteral, name, entityName, paramEntityName, attributeValue, reservedName, // Syntax::ReservedName is added to this // this is a reserved name preceded by the RNI delimiter indicatedReservedName = reservedName + Syntax::nNames }; enum { nTypes = indicatedReservedName + Syntax::nNames }; Type type; Location startLocation; Text literalText; Boolean lita; Owner<ModelGroup> modelGroupPtr; Vector<NameToken> nameTokenVector; StringC token; // name nameToken; with substitution Vector<const ElementType *> elementVector;private: Param(const Param &); // undefined void operator=(const Param &); // undefined};class AllowedParams {public: AllowedParams(Param::Type, Param::Type = Param::invalid, Param::Type = Param::invalid, Param::Type = Param::invalid, Param::Type = Param::invalid, Param::Type = Param::invalid, Param::Type = Param::invalid, Param::Type = Param::invalid, Param::Type = Param::invalid, Param::Type = Param::invalid); AllowedParams(const Param::Type *types, int nTypes); Mode mainMode() const; Boolean mdc() const; Boolean rni() const; Boolean dso() const; Boolean inclusions() const; Boolean exclusions() const; Boolean reservedName(Syntax::ReservedName) const; Param::Type group() const; Param::Type nameStart() const; Param::Type digit() const; Param::Type nmchar() const; Param::Type literal() const;private: void init(); void allow(Param::Type); PackedBoolean mdc_; PackedBoolean rni_; PackedBoolean dso_; PackedBoolean inclusions_; PackedBoolean exclusions_; // invalid, minus, pero Param::Type extraDelimiter_; // invalid, nameGroup, nameTokenGroup, modelGroup Param::Type group_; // invalid, reservedName, name, entityName, paramEntityName, attributeValue Param::Type nameStart_; // invalid, number, attributeValue Param::Type digit_; // invalid, attributeValue Param::Type nmchar_; // LCNMCHAR or UCNMCHAR // invalid, minimumLiteral, systemIdentifier, paramLiteral, // (tokenized)attributeValueLiteral Param::Type literal_; PackedBoolean reservedNames_[Syntax::nNames]; Mode mainMode_; // mdMode mdMinusMode mdPeroMode};class MessageBuilder;class AllowedParamsMessageArg : public MessageArg {public: AllowedParamsMessageArg(const AllowedParams &allow, const ConstPtr<Syntax> &syntax); MessageArg *copy() const; void append(MessageBuilder &) const;private: AllowedParams allow_; ConstPtr<Syntax> syntax_;};inlineMode AllowedParams::mainMode() const{ return mainMode_;}inlineBoolean AllowedParams::mdc() const{ return mdc_;}inlineBoolean AllowedParams::rni() const{ return rni_;}inlineBoolean AllowedParams::dso() const{ return dso_;}inlineBoolean AllowedParams::inclusions() const{ return inclusions_;}inlineBoolean AllowedParams::exclusions() const{ return exclusions_;}inlineBoolean AllowedParams::reservedName(Syntax::ReservedName i) const{ return reservedNames_[i];}inlineParam::Type AllowedParams::group() const{ return group_;}inlineParam::Type AllowedParams::nameStart() const{ return nameStart_;}inlineParam::Type AllowedParams::digit() const{ return digit_;}inlineParam::Type AllowedParams::nmchar() const{ return nmchar_;}inlineParam::Type AllowedParams::literal() const{ return literal_;}#ifdef SP_NAMESPACE}#endif#endif /* not Param_INCLUDED */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -