parseParam.cxx revision 7c478bd95313f5f23a4c958a745db2134aa03244
// Copyright (c) 1994 James Clark
// See the file COPYING for copying permission.
#pragma ident "%Z%%M% %I% %E% SMI"
#include "splib.h"
#include "Parser.h"
#include "Param.h"
#include "Group.h"
#include "Markup.h"
#include "ParserMessages.h"
#include "MessageArg.h"
#include "TokenMessageArg.h"
#include "token.h"
#include "macros.h"
#ifdef SP_NAMESPACE
namespace SP_NAMESPACE {
#endif
unsigned declInputLevel,
{
for (;;) {
switch (token) {
case tokenUnrecognized:
if (reportNonSgmlCharacter())
break;
{
}
return 0;
case tokenEe:
if (inputLevel() <= declInputLevel) {
return 0;
}
if (currentMarkup())
currentMarkup()->addEntityEnd();
break;
case tokenCom:
if (!parseComment(comMode))
return 0;
if (options().warnPsComment)
break;
case tokenDso:
return 0;
}
if (currentMarkup())
return 1;
case tokenGrpo:
if (currentMarkup())
return 0;
case Param::modelGroup:
{
return 0;
}
break;
return 0;
break;
case Param::nameTokenGroup:
return 0;
break;
default:
}
return 1;
case tokenLita:
case tokenLit:
return 0;
case Param::minimumLiteral:
return 0;
break;
case Param::attributeValueLiteral:
return 0;
break;
return 0;
break;
case Param::systemIdentifier:
return 0;
break;
case Param::paramLiteral:
return 0;
break;
}
if (currentMarkup())
return 1;
case tokenMdc:
return 0;
}
if (inputLevel() > declInputLevel)
if (currentMarkup())
return 1;
case tokenMinus:
if (currentMarkup())
return 1;
case tokenMinusGrpo:
if (!allow.exclusions()) {
return 0;
}
if (currentMarkup()) {
}
case tokenPero:
if (currentMarkup())
return 1;
case tokenPeroGrpo:
if (!inInstance())
// fall through
case tokenPeroNameStart:
{
if (inInstance()) {
}
else {
}
return 0;
}
break;
case tokenPlusGrpo:
if (!allow.inclusions()) {
return 0;
}
if (currentMarkup()) {
}
case tokenRni:
return 0;
}
case tokenS:
if (currentMarkup())
break;
case tokenNameStart:
return 0;
case Param::reservedName:
if (currentMarkup())
return 1;
case Param::entityName:
if (currentMarkup())
return 1;
case Param::paramEntityName:
if (currentMarkup())
return 1;
case Param::attributeValue:
return parseAttributeValueParam(parm);
}
break;
case tokenDigit:
return 0;
if (currentMarkup())
return 1;
case Param::attributeValue:
return parseAttributeValueParam(parm);
}
break;
case tokenLcUcNmchar:
return 0;
case Param::attributeValue:
return parseAttributeValueParam(parm);
}
break;
default:
}
}
}
{
syntaxPointer(), sdPointer()),
}
unsigned nestingLevel,
unsigned declInputLevel,
unsigned groupInputLevel,
GroupToken >)
{
for (;;) {
switch (token) {
case tokenEe:
if (inputLevel() <= groupInputLevel) {
if (inputLevel() <= declInputLevel)
return 0;
}
if (currentMarkup())
currentMarkup()->addEntityEnd();
break;
case tokenPeroGrpo:
if (!inInstance())
// fall through
case tokenPeroNameStart:
{
return 0;
}
break;
case tokenUnrecognized:
if (reportNonSgmlCharacter())
break;
{
}
return 0;
case tokenDtgo:
return 0;
}
if (currentMarkup())
case tokenGrpo:
if (currentMarkup())
case GroupToken::modelGroup:
{
grpMode))
return 0;
return 1;
}
case GroupToken::dataTagTemplateGroup:
default:
return 0;
}
break;
case tokenRni:
return 0;
}
if (!getIndicatedReservedName(&rn))
return 0;
return 0;
}
return 1;
case tokenS:
if (currentMarkup()) {
extendS();
}
break;
case tokenNameStart:
case GroupToken::elementToken:
{
if (currentMarkup())
return 1;
}
case GroupToken::name:
case GroupToken::nameToken:
if (currentMarkup()) {
else
}
return 1;
default:
return 0;
}
case tokenDigit:
case tokenLcUcNmchar:
return 0;
}
if (currentMarkup())
return 1;
case tokenLit:
case tokenLita:
// parameter literal in data tag pattern
return 0;
}
return 0;
if (currentMarkup())
return 1;
case tokenAnd:
case tokenSeq:
case tokenOr:
case tokenDtgc:
case tokenGrpc:
case tokenOpt:
case tokenPlus:
case tokenRep:
return 0;
}
}
}
{
}
unsigned declInputLevel,
unsigned groupInputLevel,
{
for (;;) {
switch (token) {
case tokenEe:
if (inputLevel() <= groupInputLevel) {
if (inputLevel() <= declInputLevel)
return 0;
}
if (currentMarkup())
currentMarkup()->addEntityEnd();
break;
case tokenS:
if (currentMarkup()) {
extendS();
}
break;
case tokenPeroGrpo:
if (inInstance()) {
break;
}
// fall through
case tokenPeroNameStart:
else {
return 0;
}
break;
case tokenUnrecognized:
if (reportNonSgmlCharacter())
break;
{
}
return 0;
case tokenAnd:
return 0;
}
if (currentMarkup())
return 1;
case tokenSeq:
return 0;
}
if (currentMarkup())
return 1;
case tokenOr:
return 0;
}
if (currentMarkup())
return 1;
case tokenDtgc:
return 0;
}
if (inputLevel() > groupInputLevel)
if (currentMarkup())
return 1;
case tokenGrpc:
return 0;
}
if (inputLevel() > groupInputLevel)
if (currentMarkup())
return 1;
default:
return 0;
}
}
}
const AllowedGroupConnectors &allow)
{
}
{
return 0;
return 1;
}
{
return 0;
if (inInstance()) {
ignore = 0;
return 1;
}
}
}
ignore = 1;
return 1;
}
{
return 0;
active = 0;
return 1;
}
{
}
{
}
static
{
return 1;
return 0;
}
unsigned declInputLevel,
{
unsigned groupInputLevel = inputLevel();
int nDuplicates = 0;
for (;;) {
return 0;
nDuplicates++;
}
else {
}
return 0;
break;
if (options().warnNameGroupNotOr) {
}
else if (options().warnShould) {
}
}
}
return 1;
}
{
unsigned groupInputLevel = inputLevel();
return 0;
return 0;
static AllowedGroupTokens
gt))
return 0;
else {
}
return 0;
gt))
return 0;
return 0;
}
else
return 1;
}
unsigned declInputLevel,
{
unsigned groupInputLevel = inputLevel();
for (;;) {
gt))
return 0;
return 0;
break;
}
return 1;
}
{
unsigned groupInputLevel = inputLevel();
Boolean pcdataCheck = 0;
do {
return 0;
else
return 0;
else
pcdataCheck = 1;
if (nestingLevel != 1)
}
else if (pcdataCheck) {
}
case GroupConnector::orGC:
break;
case GroupConnector::seqGC:
break;
case GroupConnector::andGC:
if (options().warnAndGroup)
break;
default:
break;
}
}
switch (connector) {
case GroupConnector::orGC:
break;
case GroupConnector::grpcGC:
// fall through
case GroupConnector::seqGC:
break;
case GroupConnector::andGC:
break;
default:
break;
}
return 1;
}
{
switch (token) {
case tokenPlus:
if (currentMarkup())
return ContentToken::plus;
case tokenOpt:
if (currentMarkup())
return ContentToken::opt;
case tokenRep:
if (currentMarkup())
return ContentToken::rep;
default:
currentInput()->ungetToken();
return ContentToken::none;
}
}
{
|(eventsWanted().wantPrologMarkup()
: 0),
text);
}
{
: 0), text);
}
{
: 0),
text);
}
{
| (eventsWanted().wantPrologMarkup()
: 0),
text);
}
{
if (!getIndicatedReservedName(&rn))
return 0;
return 0;
}
return 1;
}
{
if (!getReservedName(&rn))
return 0;
return 0;
}
return 1;
}
{
: 0,
currentLocation());
if (currentMarkup())
return 1;
}
{
if (currentMarkup())
in->startToken();
return 0;
}
return 0;
}
if (currentMarkup())
return 1;
}
{
return 0;
}
if (currentMarkup())
return 1;
}
#ifdef SP_NAMESPACE
}
#endif