#else /* not sparc */
#if defined (MSDOS) && !defined (__TURBOC__)
diff --git a/src/classdef.cpp b/src/classdef.cpp
index b6b453a..2f6fdd9 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -31,6 +31,7 @@
#include "htmlhelp.h"
#include "example.h"
#include "outputlist.h"
+#include "dot.h"
static QCString stripExtension(const char *fName)
{
@@ -71,11 +72,14 @@ ClassDef::ClassDef(const char *nm,CompoundType ct,const char *ref,const char *fN
visited=FALSE;
setReference(ref);
compType=ct;
- incFile=0;
+ incInfo=0;
tempArgs=0;
prot=Public;
nspace=0;
fileDef=0;
+ usesImplClassDict=0;
+ usesIntfClassDict=0;
+ //printf("*** New class `%s' *** \n",nm);
}
// destroy the class definition
@@ -87,12 +91,16 @@ ClassDef::~ClassDef()
delete allMemberNameInfoDict;
delete exampleList;
delete exampleDict;
+ delete usesImplClassDict;
+ delete usesIntfClassDict;
+ delete incInfo;
}
// inserts a base class in the inheritance list
void ClassDef::insertBaseClass(ClassDef *cd,Protection p,
Specifier s,const char *t)
{
+ //printf("*** insert base class %s into %s\n",cd->name().data(),name().data());
inherits->inSort(new BaseClassDef(cd,p,s,t));
}
@@ -100,6 +108,7 @@ void ClassDef::insertBaseClass(ClassDef *cd,Protection p,
void ClassDef::insertSuperClass(ClassDef *cd,Protection p,
Specifier s,const char *t)
{
+ //printf("*** insert super class %s into %s\n",cd->name().data(),name().data());
inheritedBy->inSort(new BaseClassDef(cd,p,s,t));
}
@@ -112,10 +121,12 @@ void ClassDef::insertMember(const MemberDef *md)
if (md->isRelated() && (Config::extractPrivateFlag || md->protection()!=Private))
{
related.append(md);
+ relatedMembers.inSort(md);
}
else if (md->isFriend())
{
friends.append(md);
+ relatedMembers.inSort(md);
}
else
{
@@ -123,13 +134,23 @@ void ClassDef::insertMember(const MemberDef *md)
{
case MemberDef::Signal:
signals.append(md);
+ functionMembers.inSort(md);
break;
case MemberDef::Slot:
switch (md->protection())
{
- case Protected: proSlots.append(md); break;
- case Public: pubSlots.append(md); break;
- case Private: priSlots.append(md); break;
+ case Protected:
+ proSlots.append(md);
+ functionMembers.inSort(md);
+ break;
+ case Public:
+ pubSlots.append(md);
+ functionMembers.inSort(md);
+ break;
+ case Private:
+ priSlots.append(md);
+ functionMembers.inSort(md);
+ break;
}
break;
default: // any of the other members
@@ -137,9 +158,15 @@ void ClassDef::insertMember(const MemberDef *md)
{
switch (md->protection())
{
- case Protected: proStaticMembers.append(md); break;
- case Public: pubStaticMembers.append(md); break;
- case Private: priStaticMembers.append(md); break;
+ case Protected:
+ proStaticMembers.append(md);
+ break;
+ case Public:
+ pubStaticMembers.append(md);
+ break;
+ case Private:
+ priStaticMembers.append(md);
+ break;
}
}
else
@@ -151,12 +178,38 @@ void ClassDef::insertMember(const MemberDef *md)
case Private: priMembers.append(md); break;
}
}
+ if (md->protection()!=Private || Config::extractPrivateFlag)
+ {
+ switch (md->memberType())
+ {
+ case MemberDef::Typedef:
+ typedefMembers.inSort(md);
+ break;
+ case MemberDef::Enumeration:
+ enumMembers.inSort(md);
+ break;
+ case MemberDef::EnumValue:
+ enumValMembers.inSort(md);
+ break;
+ case MemberDef::Function:
+ if (md->name()==name() || md->name().find('~')!=-1)
+ constructors.append(md);
+ else
+ functionMembers.inSort(md);
+ break;
+ case MemberDef::Variable:
+ variableMembers.inSort(md);
+ break;
+ default:
+ printf("Unexpected member type %d found!\n",md->memberType());
+ }
+ }
break;
}
}
}
// check if we should add this member in the `all members' list
- if (md->isFriend() || md->protection()!=Private || Config::extractPrivateFlag)
+ if (1 /*md->isFriend() || md->protection()!=Private || Config::extractPrivateFlag*/)
{
MemberInfo *mi = new MemberInfo((MemberDef *)md,Public,Normal);
MemberNameInfo *mni=0;
@@ -220,6 +273,19 @@ static void writeInheritanceSpecifier(OutputList &ol,BaseClassDef *bcd)
}
}
+void ClassDef::setIncludeFile(FileDef *fd,const char *incName,bool local)
+{
+ if (!incInfo) incInfo=new IncludeInfo;
+ if ((incName && incInfo->includeName.isEmpty()) ||
+ (fd!=0 && incInfo->fileDef==0)
+ )
+ {
+ incInfo->fileDef = fd;
+ incInfo->includeName = incName;
+ incInfo->local = local;
+ }
+}
+
// write all documentation for this class
void ClassDef::writeDocumentation(OutputList &ol)
{
@@ -241,6 +307,8 @@ void ClassDef::writeDocumentation(OutputList &ol)
parseText(ol,theTranslator->trCompoundReference(name(),compType));
endTitle(ol,getOutputFileBase(),name());
+ ol.startTextBlock();
+
// write brief description
OutputList briefOutput(&ol);
if (!briefDescription().isEmpty())
@@ -248,45 +316,50 @@ void ClassDef::writeDocumentation(OutputList &ol)
parseDoc(briefOutput,name(),0,briefDescription());
ol+=briefOutput;
ol.writeString(" \n");
+ ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
ol.startTextLink(0,"_details");
parseText(ol,theTranslator->trMore());
ol.endTextLink();
- ol.enableAll();
+ ol.popGeneratorState();
+ ol.disable(OutputGenerator::Man);
+ ol.newParagraph();
+ ol.enable(OutputGenerator::Man);
}
- ol.disable(OutputGenerator::Man);
- ol.newParagraph();
- ol.enable(OutputGenerator::Man);
ol.writeSynopsis();
- if (incFile)
+ if (incInfo)
{
- QCString nm=incName.copy();
- if (incName.isEmpty())
- {
- nm=incFile->name();
- if (Config::fullPathNameFlag)
- {
- nm.prepend(stripFromPath(incFile->getPath().copy()));
- }
- }
+ QCString nm=incInfo->includeName.isEmpty() ?
+ incInfo->fileDef->docName().data() :
+ incInfo->includeName.data();
ol.startTypewriter();
- ol.docify("#include <");
+ ol.docify("#include ");
+ if (incInfo->local)
+ ol.docify("\"");
+ else
+ ol.docify("<");
+ ol.pushGeneratorState();
ol.disable(OutputGenerator::Html);
ol.docify(nm);
- ol.enableAll();
ol.disableAllBut(OutputGenerator::Html);
- ol.writeObjectLink(0,fileName+"-include",0,nm);
- ol.enableAll();
- ol.docify(">");
+ ol.enable(OutputGenerator::Html);
+ ol.writeObjectLink(0,incInfo->fileDef->includeName(),0,nm);
+ ol.popGeneratorState();
+ if (incInfo->local)
+ ol.docify("\"");
+ else
+ ol.docify(">");
ol.endTypewriter();
ol.newParagraph();
}
- if (Config::genTagFile.length()>0) tagFile << ">" << name() << ":";
+
+ if (!Config::genTagFile.isEmpty()) tagFile << ">" << name() << ":";
if (Config::classDiagramFlag) ol.disableAllBut(OutputGenerator::Man);
+
// write superclasses
int count;
if ((count=inherits->count())>0)
@@ -308,7 +381,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
ClassDef *cd=bcd->classDef;
if (cd->isLinkable())
{
- if (Config::genTagFile.length()>0) tagFile << cd->getOutputFileBase() << "?";
+ if (!Config::genTagFile.isEmpty()) tagFile << cd->getOutputFileBase() << "?";
ol.writeObjectLink(cd->getReference(),cd->getOutputFileBase(),0,cd->name()+bcd->templSpecifiers);
}
else
@@ -326,7 +399,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol.newParagraph();
}
- if (Config::genTagFile.length()>0) tagFile << " \"" << fileName << ".html\"\n";
+ if (!Config::genTagFile.isEmpty()) tagFile << " \"" << fileName << ".html\"\n";
// write subclasses
if ((count=inheritedBy->count())>0)
@@ -362,6 +435,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
if (Config::classDiagramFlag) ol.enableAll();
+
count=0;
BaseClassDef *ibcd;
ibcd=inheritedBy->first();
@@ -389,6 +463,25 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol.endClassDiagram(diagram,fileName,name());
}
+ if (Config::haveDotFlag && Config::collGraphFlag)
+ {
+ DotGfxUsageGraph usageImplGraph(this,TRUE);
+ if (!usageImplGraph.isTrivial())
+ {
+ ol.disable(OutputGenerator::Latex);
+ ol.disable(OutputGenerator::Man);
+ ol.startCollaborationDiagram();
+ parseText(ol,theTranslator->trCollaborationDiagram(name()));
+ //usageImplGraph.writeGraph(Config::htmlOutputDir);
+ //ol.writeString((QCString)"Interface collaboration diagram for "
+ // "here");
+ //ol.writeString((QCString)"
Implementation collaboration diagram for "
+ // "here");
+ ol.endCollaborationDiagram(usageImplGraph);
+ ol.enableAll();
+ }
+ }
+
// write link to list of all members (HTML only)
if (allMemberNameInfoList->count()>0 /*&& compType==Class*/)
{
@@ -398,6 +491,8 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol.endTextLink();
ol.enableAll();
}
+
+ ol.endTextBlock();
// write member groups
ol.startMemberSections();
@@ -429,13 +524,15 @@ void ClassDef::writeDocumentation(OutputList &ol)
exampleFlag)
{
ol.writeRuler();
- bool latexOn = ol.isEnabled(OutputGenerator::Latex);
- if (latexOn) ol.disable(OutputGenerator::Latex);
- ol.writeAnchor("_details");
- if (latexOn) ol.enable(OutputGenerator::Latex);
+ ol.pushGeneratorState();
+ ol.disable(OutputGenerator::Latex);
+ ol.disable(OutputGenerator::RTF);
+ ol.writeAnchor("_details");
+ ol.popGeneratorState();
ol.startGroupHeader();
parseText(ol,theTranslator->trDetailedDescription());
ol.endGroupHeader();
+ ol.startTextBlock();
ArgumentList *al=0;
int ti;
@@ -486,6 +583,10 @@ void ClassDef::writeDocumentation(OutputList &ol)
// write documentation
if (!documentation().isEmpty())
{
+ ol.pushGeneratorState();
+ ol.disableAllBut(OutputGenerator::RTF);
+ ol.newParagraph();
+ ol.popGeneratorState();
parseDoc(ol,name(),0,documentation()+"\n");
}
// write examples
@@ -497,151 +598,90 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol.endBold();
ol.endDescTitle();
ol.writeDescItem();
+ ol.newParagraph();
writeExample(ol,exampleList);
//ol.endDescItem();
ol.endDescList();
}
+ ol.newParagraph();
writeSourceRef(ol,name());
+ ol.endTextBlock();
}
- pubMembers.countDocMembers();
- proMembers.countDocMembers();
- priMembers.countDocMembers();
- pubStaticMembers.countDocMembers();
- proStaticMembers.countDocMembers();
- priStaticMembers.countDocMembers();
- pubSlots.countDocMembers();
- proSlots.countDocMembers();
- priSlots.countDocMembers();
- related.countDocMembers();
- friends.countDocMembers();
- signals.countDocMembers();
-
- if ( pubMembers.typedefCount() + proMembers.typedefCount() +
- (Config::extractPrivateFlag ? priMembers.typedefCount() : 0 )
- )
+ typedefMembers.countDocMembers();
+ if (typedefMembers.totalCount()>0)
{
ol.writeRuler();
ol.startGroupHeader();
parseText(ol,theTranslator->trMemberTypedefDocumentation());
ol.endGroupHeader();
-
- pubMembers.writeDocumentation(ol,name(),MemberDef::Typedef);
- proMembers.writeDocumentation(ol,name(),MemberDef::Typedef);
- if (Config::extractPrivateFlag)
- {
- priMembers.writeDocumentation(ol,name(),MemberDef::Typedef);
- }
+ typedefMembers.writeDocumentation(ol,name());
}
- if (pubMembers.enumCount() +
- proMembers.enumCount() +
- ( Config::extractPrivateFlag ? priMembers.enumCount() : 0 )
- )
+ enumMembers.countDocMembers();
+ if (enumMembers.totalCount()>0)
{
ol.writeRuler();
ol.startGroupHeader();
parseText(ol,theTranslator->trMemberEnumerationDocumentation());
ol.endGroupHeader();
-
- pubMembers.writeDocumentation(ol,name(),MemberDef::Enumeration);
- proMembers.writeDocumentation(ol,name(),MemberDef::Enumeration);
- if (Config::extractPrivateFlag)
- {
- priMembers.writeDocumentation(ol,name(),MemberDef::Enumeration);
- }
+ enumMembers.writeDocumentation(ol,name());
}
-
- if (pubMembers.enumValueCount() +
- proMembers.enumValueCount() +
- ( Config::extractPrivateFlag ? priMembers.enumValueCount() : 0 )
- )
+
+ enumValMembers.countDocMembers();
+ if (enumValMembers.totalCount()>0)
{
ol.writeRuler();
ol.startGroupHeader();
parseText(ol,theTranslator->trEnumerationValueDocumentation());
ol.endGroupHeader();
-
- pubMembers.writeDocumentation(ol,name(),MemberDef::EnumValue);
- proMembers.writeDocumentation(ol,name(),MemberDef::EnumValue);
- if (Config::extractPrivateFlag)
- {
- priMembers.writeDocumentation(ol,name(),MemberDef::EnumValue);
- }
+ enumValMembers.writeDocumentation(ol,name());
}
- int func_count=0;
- if (
- (
- func_count =
- pubMembers.funcCount() + pubSlots.funcCount() +
- pubStaticMembers.funcCount() +
- proMembers.funcCount() + proSlots.funcCount() +
- proStaticMembers.funcCount() +
- (Config::extractPrivateFlag ?
- priMembers.funcCount() + priSlots.funcCount() +
- priStaticMembers.funcCount() : 0
- )
- )
- )
+ constructors.countDocMembers();
+ if (constructors.totalCount()>0)
{
ol.writeRuler();
ol.startGroupHeader();
- QCString countStr;
- //countStr.sprintf(" (%d)",func_count);
- parseText(ol,theTranslator->trMemberFunctionDocumentation()+countStr);
+ parseText(ol,theTranslator->trConstructorDocumentation());
ol.endGroupHeader();
-
- pubMembers.writeDocumentation(ol,name(),MemberDef::Function);
- pubSlots.writeDocumentation(ol,name(),MemberDef::Slot);
- signals.writeDocumentation(ol,name(),MemberDef::Signal);
- pubStaticMembers.writeDocumentation(ol,name(),MemberDef::Function);
- proMembers.writeDocumentation(ol,name(),MemberDef::Function);
- proSlots.writeDocumentation(ol,name(),MemberDef::Slot);
- proStaticMembers.writeDocumentation(ol,name(),MemberDef::Function);
- if (Config::extractPrivateFlag)
- {
- priMembers.writeDocumentation(ol,name(),MemberDef::Function);
- priSlots.writeDocumentation(ol,name(),MemberDef::Slot);
- priStaticMembers.writeDocumentation(ol,name(),MemberDef::Function);
- }
+ constructors.writeDocumentation(ol,name());
}
-
- if ( friends.friendCount() + related.count() )
+
+ functionMembers.countDocMembers();
+ if (functionMembers.totalCount()>0)
+ {
+ ol.writeRuler();
+ ol.startGroupHeader();
+ parseText(ol,theTranslator->trMemberFunctionDocumentation());
+ ol.endGroupHeader();
+ functionMembers.writeDocumentation(ol,name());
+ }
+
+ relatedMembers.countDocMembers();
+ if (relatedMembers.totalCount()>0)
{
ol.writeRuler();
ol.startGroupHeader();
parseText(ol,theTranslator->trRelatedFunctionDocumentation());
ol.endGroupHeader();
- friends.writeDocumentation(ol,name(),MemberDef::Friend);
- related.writeDocumentation(ol,name(),MemberDef::Function);
+ relatedMembers.writeDocumentation(ol,name());
}
-
-
- if ( pubMembers.varCount() + pubStaticMembers.varCount() +
- proMembers.varCount() + proStaticMembers.varCount() +
- (Config::extractPrivateFlag ?
- priMembers.varCount() + priStaticMembers.varCount() : 0
- )
- )
+
+ variableMembers.countDocMembers();
+ if (variableMembers.totalCount()>0)
{
ol.writeRuler();
ol.startGroupHeader();
parseText(ol,theTranslator->trMemberDataDocumentation());
ol.endGroupHeader();
-
- pubMembers.writeDocumentation(ol,name(),MemberDef::Variable);
- pubStaticMembers.writeDocumentation(ol,name(),MemberDef::Variable);
- proMembers.writeDocumentation(ol,name(),MemberDef::Variable);
- proStaticMembers.writeDocumentation(ol,name(),MemberDef::Variable);
- if (Config::extractPrivateFlag)
- {
- priMembers.writeDocumentation(ol,name(),MemberDef::Variable);
- priStaticMembers.writeDocumentation(ol,name(),MemberDef::Variable);
- }
+ variableMembers.writeDocumentation(ol,name());
}
- // write the list of used files (Html and LaTeX only)
+ ol.startTextBlock();
+
+ // write the list of used files (not for man pages)
+ ol.pushGeneratorState();
ol.disable(OutputGenerator::Man);
ol.writeRuler();
parseText(ol,theTranslator->trGeneratedFromFiles(compType,files.count()==1));
@@ -689,7 +729,9 @@ void ClassDef::writeDocumentation(OutputList &ol)
parseText(ol,theTranslator->trAuthor());
ol.endGroupHeader();
parseText(ol,theTranslator->trGeneratedAutomatically(Config::projectName));
- ol.enableAll();
+ ol.popGeneratorState();
+
+ ol.endTextBlock();
endFile(ol);
}
@@ -698,8 +740,10 @@ void ClassDef::writeDocumentation(OutputList &ol)
void ClassDef::writeMemberList(OutputList &ol)
{
if (allMemberNameInfoList->count()==0) return;
- // do not generate Latex output
+ // only for HTML
+ ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
+
startFile(ol,memListFileName,theTranslator->trMemberList());
startTitle(ol,0);
parseText(ol,name()+" "+theTranslator->trMemberList());
@@ -833,35 +877,36 @@ void ClassDef::writeMemberList(OutputList &ol)
}
ol.endItemList();
endFile(ol);
- ol.enableAll();
+ ol.popGeneratorState();
}
-void ClassDef::writeIncludeFile(OutputList &ol)
-{
- if (!incFile) return;
- //printf("incFile=%s\n",incFile->absFilePath().data());
- ol.disableAllBut(OutputGenerator::Html);
- startFile(ol,fileName+"-include",name()+" Include File");
- startTitle(ol,0);
- QCString n=incName.copy();
- if (incName.isEmpty())
- {
- n=incFile->name();
- if (Config::fullPathNameFlag)
- {
- n.prepend(stripFromPath(incFile->getPath().copy()));
- }
- }
- parseText(ol,n);
- endTitle(ol,0,0);
- parseText(ol,theTranslator->trVerbatimText(incFile->name()));
- //ol.writeRuler();
- ol.startCodeFragment();
- parseCode(ol,n,fileToString(incFile->absFilePath()),FALSE,0);
- ol.endCodeFragment();
- endFile(ol);
- ol.enableAll();
-}
+//void ClassDef::writeIncludeFile(OutputList &ol)
+//{
+// initParseCodeContext();
+// if (!incFile) return;
+// //printf("incFile=%s\n",incFile->absFilePath().data());
+// ol.disableAllBut(OutputGenerator::Html);
+// startFile(ol,fileName+"-include",name()+" Include File");
+// startTitle(ol,0);
+// QCString n=incName.copy();
+// if (incName.isEmpty())
+// {
+// n=incFile->name();
+// if (Config::fullPathNameFlag)
+// {
+// n.prepend(stripFromPath(incFile->getPath().copy()));
+// }
+// }
+// parseText(ol,n);
+// endTitle(ol,0,0);
+// parseText(ol,theTranslator->trVerbatimText(incFile->name()));
+// //ol.writeRuler();
+// ol.startCodeFragment();
+// parseCode(ol,n,fileToString(incFile->absFilePath()),FALSE,0);
+// ol.endCodeFragment();
+// endFile(ol);
+// ol.enableAll();
+//}
// add a reference to an example
bool ClassDef::addExample(const char *anchor,const char *nameStr,
@@ -890,7 +935,7 @@ bool ClassDef::hasExamples()
}
#if 0
-// write the list of all examples that are use this class.
+// write the list of all examples that are used in this class.
void ClassDef::writeExample(OutputList &ol)
{
QCString exampleLine=theTranslator->trWriteList(exampleList->count());
@@ -954,7 +999,7 @@ void ClassDef::setTemplateArguments(ArgumentList *al)
// Argument *a=tempArgs->first();
// while (a)
// {
-// if (a->name.length()>0) // add template argument name
+// if (!a->name.isEmpty()) // add template argument name
// {
// result+=a->name;
// }
@@ -1068,3 +1113,357 @@ bool ClassDef::isVisibleInHierarchy()
// documented or show anyway or documentation is external
(hasDocumentation() || !Config::hideClassFlag || isReference());
}
+
+//----------------------------------------------------------------------
+// recursive function:
+// returns TRUE iff class definition `bcd' represents an (in)direct base
+// class of class definition `cd'.
+
+bool ClassDef::isBaseClass(ClassDef *bcd)
+{
+ bool found=FALSE;
+ //printf("isBaseClass(cd=%s) looking for %s\n",cd->name().data(),bcd->name().data());
+ BaseClassListIterator bcli(*baseClasses());
+ for ( ; bcli.current() && !found ; ++bcli)
+ {
+ ClassDef *ccd=bcli.current()->classDef;
+ //printf("isBaseClass() baseclass %s\n",ccd->name().data());
+ if (ccd==bcd)
+ found=TRUE;
+ else
+ found=ccd->isBaseClass(bcd);
+ }
+ return found;
+}
+
+//----------------------------------------------------------------------------
+/*!
+ * recusively merges the `all members' lists of a class base
+ * with that of this class. Must only be called for classes without
+ * superclasses!
+ */
+
+void ClassDef::mergeMembers(/*ClassDef *cd,BaseClassList *bcl*/)
+{
+ BaseClassListIterator bcli(*baseClasses());
+ BaseClassDef *bcd;
+ for ( ; (bcd=bcli.current()) ; ++bcli )
+ {
+ ClassDef *bClass=bcd->classDef;
+ // merge the members of bClass with the onces from cd
+
+ bClass->mergeMembers();
+ // the all member list of the branch until bClass is now complete
+ // so we can merge it with cd
+
+ MemberNameInfoList *srcMnl = bClass->memberNameInfoList();
+ MemberNameInfoDict *dstMnd = memberNameInfoDict();
+ MemberNameInfoList *dstMnl = memberNameInfoList();
+
+ MemberNameInfoListIterator srcMnili(*srcMnl);
+ MemberNameInfo *srcMni;
+ for ( ; (srcMni=srcMnili.current()) ; ++srcMnili)
+ {
+ //printf("Base member name %s\n",srcMni->memberName());
+ MemberNameInfo *dstMni;
+ if ((dstMni=dstMnd->find(srcMni->memberName())))
+ // a member with that name is already in the class.
+ // the member may hide or reimplement the one in the super class
+ // or there may be another path to the base class that is already
+ // visited via another branch in the class hierarchy.
+ {
+ MemberNameInfoIterator srcMnii(*srcMni);
+ MemberInfo *srcMi;
+ for ( ; (srcMi=srcMnii.current()) ; ++srcMnii )
+ {
+ MemberDef *srcMd = srcMi->memberDef;
+ bool found=FALSE;
+ bool ambigue=FALSE;
+ bool hidden=FALSE;
+ MemberNameInfoIterator dstMnii(*dstMni);
+ MemberInfo *dstMi;
+ ClassDef *srcCd = srcMd->memberClass();
+ for ( ; (dstMi=dstMnii.current()) && !found; ++dstMnii )
+ {
+ MemberDef *dstMd = dstMi->memberDef;
+ if (srcMd!=dstMd) // different members
+ {
+ ClassDef *dstCd = dstMd->memberClass();
+ //printf("Is %s a base class of %s?\n",srcCd->name(),dstCd->name());
+ if (srcCd==dstCd || dstCd->isBaseClass(srcCd))
+ // member is in the same or a base class
+ {
+ found=matchArguments(srcMd->argumentList(),
+ dstMd->argumentList()
+ );
+ //ambigue = ambigue || !found;
+ hidden = hidden || !found;
+ }
+ else // member is in a non base class => multiple inheritance
+ // using the same base class.
+ {
+ //printf("$$ Existing member %s %s add scope %s\n",
+ // dstMi->ambiguityResolutionScope.data(),
+ // dstMd->name().data(),
+ // dstMi->scopePath.left(dstMi->scopePath.find("::")+2).data());
+
+ QCString scope=dstMi->scopePath.left(dstMi->scopePath.find("::")+2);
+ if (scope!=dstMi->ambiguityResolutionScope.left(scope.length()))
+ dstMi->ambiguityResolutionScope.prepend(scope);
+ ambigue=TRUE;
+ }
+ }
+ else // same members
+ {
+ // do not add if base class is virtual or
+ // if scope paths are equal
+ if ((srcMi->virt==Virtual && dstMi->virt==Virtual) ||
+ bClass->name()+"::"+srcMi->scopePath == dstMi->scopePath
+ )
+ {
+ found=TRUE;
+ }
+ else // member can be reached via multiple paths in the
+ // inheritance tree
+ {
+ //printf("$$ Existing member %s %s add scope %s\n",
+ // dstMi->ambiguityResolutionScope.data(),
+ // dstMd->name().data(),
+ // dstMi->scopePath.left(dstMi->scopePath.find("::")+2).data());
+
+ QCString scope=dstMi->scopePath.left(dstMi->scopePath.find("::")+2);
+ if (scope!=dstMi->ambiguityResolutionScope.left(scope.length()))
+ dstMi->ambiguityResolutionScope.prepend(scope);
+ ambigue=TRUE;
+ }
+ }
+ }
+ //printf("member %s::%s hidden %d ambigue %d srcMi->ambigClass=%p\n",
+ // srcCd->name().data(),srcMd->name().data(),hidden,ambigue,srcMi->ambigClass);
+
+ // TODO: fix the case where a member is hidden by inheritance
+ // of a member with the same name but with another prototype,
+ // while there is more than one path to the member in the
+ // base class due to multiple inheritance. In this case
+ // it seems that the member is not reachable by prefixing a
+ // scope name either (according to my compiler). Currently,
+ // this case is shown anyway.
+ if (!found && srcMd->protection()!=Private)
+ {
+ Specifier virt=srcMi->virt;
+ if (srcMi->virt==Normal && bcd->virt!=Normal) virt=bcd->virt;
+ MemberInfo *newMi = new MemberInfo(srcMd,bcd->prot,virt);
+ newMi->scopePath=bClass->name()+"::"+srcMi->scopePath;
+ if (ambigue)
+ {
+ //printf("$$ New member %s %s add scope %s::\n",
+ // srcMi->ambiguityResolutionScope.data(),
+ // srcMd->name().data(),
+ // bClass->name().data());
+
+ QCString scope=bClass->name()+"::";
+ if (scope!=srcMi->ambiguityResolutionScope.left(scope.length()))
+ newMi->ambiguityResolutionScope=
+ scope+srcMi->ambiguityResolutionScope.copy();
+ }
+ if (hidden)
+ {
+ if (srcMi->ambigClass==0)
+ {
+ newMi->ambigClass=bClass;
+ newMi->ambiguityResolutionScope=bClass->name()+"::";
+ }
+ else
+ {
+ newMi->ambigClass=srcMi->ambigClass;
+ newMi->ambiguityResolutionScope=srcMi->ambigClass->name()+"::";
+ }
+ }
+ //printf("Adding!\n");
+ dstMni->append(newMi);
+ }
+ }
+ }
+ else // base class has a member that is not in the super class => copy
+ {
+ // create a deep copy of the list (only the MemberInfo's will be
+ // copied, not the actual MemberDef's)
+ MemberNameInfo *newMni = new MemberNameInfo(srcMni->memberName());
+
+ // copy the member(s) from the base to the super class
+ MemberNameInfoIterator mnii(*srcMni);
+ MemberInfo *mi;
+ for (;(mi=mnii.current());++mnii)
+ {
+ if (mi->memberDef->protection()!=Private)
+ {
+ Specifier virt=mi->virt;
+ if (mi->virt==Normal && bcd->virt!=Normal) virt=bcd->virt;
+ MemberInfo *newMi=new MemberInfo(mi->memberDef,bcd->prot,virt);
+ //if (mi->memberDef->memberClass()!=bClass)
+ newMi->scopePath=bClass->name()+"::"+mi->scopePath;
+ newMi->ambigClass=mi->ambigClass;
+ newMi->ambiguityResolutionScope=mi->ambiguityResolutionScope.copy();
+ newMni->append(newMi);
+ }
+ }
+
+ // add it to the list and dictionary
+ dstMnl->inSort(newMni);
+ dstMnd->insert(newMni->memberName(),newMni);
+ }
+ }
+ }
+}
+
+//----------------------------------------------------------------------------
+/*! Builds up a dictionary of all classes that are used by the state of this
+ * class (the "implementation").
+ * Must be called before mergeMembers() is called!
+ */
+
+void ClassDef::determineImplUsageRelation()
+{
+ MemberNameInfoListIterator mnili(*allMemberNameInfoList);
+ MemberNameInfo *mni;
+ for (;(mni=mnili.current());++mnili)
+ {
+ MemberNameInfoIterator mnii(*mni);
+ MemberInfo *mi;
+ for (mnii.toFirst();(mi=mnii.current());++mnii)
+ {
+ MemberDef *md=mi->memberDef;
+ if (md->isVariable()) // for each member variable in this class
+ {
+ QCString type=md->typeString();
+ static const QRegExp re("[a-z_A-Z][a-z_A-Z0-9:]*");
+ //printf("in class %s found var type=`%s' name=`%s'\n",
+ // name().data(),type.data(),md->name().data());
+ int p=0,i,l;
+ while ((i=re.match(type,p,&l))!=-1) // for each class name in the type
+ {
+ ClassDef *cd=getClass(name()+"::"+type.mid(i,l));
+ if (cd==0) cd=getClass(type.mid(i,l)); // TODO: also try inbetween scopes!
+ if (cd && cd->isLinkable()) // class exists and is linkable
+ {
+ if (usesImplClassDict==0) usesImplClassDict = new UsesClassDict(257);
+ UsesClassDef *ucd=usesImplClassDict->find(cd->name());
+ if (ucd==0)
+ {
+ ucd = new UsesClassDef(cd);
+ usesImplClassDict->insert(cd->name(),ucd);
+ //printf("Adding used class %s to class %s\n",
+ // cd->name().data(),name().data());
+ }
+ ucd->addAccessor(md->name());
+ //printf("Adding accessor %s to class %s\n",
+ // md->name().data(),ucd->classDef->name().data());
+ }
+ p=i+l;
+ }
+ }
+ }
+ }
+#ifdef DUMP
+ if (usesClassDict)
+ {
+ printf("Class %s uses the following classes:\n",name().data());
+ UsesClassDictIterator ucdi(*usesClassDict);
+ UsesClassDef *ucd;
+ for (;(ucd=ucdi.current());++ucdi)
+ {
+ printf(" %s via ",ucd->classDef->name().data());
+ QDictIterator dvi(*ucd->accessors);
+ const char *s;
+ for (;(s=dvi.currentKey());++dvi)
+ {
+ printf("%s ",s);
+ }
+ printf("\n");
+ }
+ }
+#endif
+}
+
+//----------------------------------------------------------------------------
+
+#if 0
+// I have disabled this code because the graphs it renders quickly become
+// too large to be of practical use.
+
+void ClassDef::addUsedInterfaceClasses(MemberDef *md,const char *typeStr)
+{
+ QCString type = typeStr;
+ static const QRegExp re("[a-z_A-Z][a-z_A-Z0-9:]*");
+ int p=0,i,l;
+ while ((i=re.match(type,p,&l))!=-1) // for each class name in the type
+ {
+ ClassDef *cd=getClass(name()+"::"+type.mid(i,l));
+ if (cd==0) cd=getClass(type.mid(i,l)); // TODO: also try inbetween scopes!
+ if (cd && cd!=this && !isBaseClass(cd))
+ {
+ if (usesIntfClassDict==0)
+ {
+ usesIntfClassDict = new UsesClassDict(257);
+ }
+ UsesClassDef *ucd=usesIntfClassDict->find(cd->name());
+ if (ucd==0)
+ {
+ ucd = new UsesClassDef(cd);
+ usesIntfClassDict->insert(cd->name(),ucd);
+ //printf("in class `%s' adding used intf class `%s'\n",
+ // name().data(),cd->name().data());
+ }
+ ucd->addAccessor(md->name());
+ printf("in class `%s' adding accessor `%s' to class `%s'\n",
+ name().data(),md->name().data(),ucd->classDef->name().data());
+ }
+ p=i+l;
+ }
+}
+
+void ClassDef::determineIntfUsageRelation()
+{
+ MemberNameInfoListIterator mnili(*allMemberNameInfoList);
+ MemberNameInfo *mni;
+ for (;(mni=mnili.current());++mnili)
+ {
+ MemberNameInfoIterator mnii(*mni);
+ MemberInfo *mi;
+ for (mnii.toFirst();(mi=mnii.current());++mnii)
+ {
+ MemberDef *md=mi->memberDef;
+
+ // compute the protection level for this member
+ Protection protect=md->protection();
+ if (mi->prot==Protected) // inherited protection
+ {
+ if (protect==Public) protect=Protected;
+ else if (protect==Protected) protect=Private;
+ }
+
+ if (!md->name().isEmpty() && md->name()[0]!='@' &&
+ (mi->prot!=Private && protect!=Private)
+ )
+ {
+ // add classes found in the return type
+ addUsedInterfaceClasses(md,md->typeString());
+ ArgumentList *al = md->argumentList();
+ if (al) // member has arguments
+ {
+ // add classes found in the types of the argument list
+ ArgumentListIterator ali(*al);
+ Argument *a;
+ for (;(a=ali.current());++ali)
+ {
+ if (!a->type.isEmpty() && a->type.at(0)!='@')
+ {
+ addUsedInterfaceClasses(md,a->type);
+ }
+ }
+ }
+ }
+ }
+ }
+}
+#endif
diff --git a/src/classdef.h b/src/classdef.h
index 890cc4a..f891d8d 100644
--- a/src/classdef.h
+++ b/src/classdef.h
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -38,11 +38,12 @@ class MemberDef;
class ExampleList;
class MemberNameInfoList;
class MemberNameInfoDict;
+class UsesClassDict;
+struct IncludeInfo;
class ClassDef : public Definition
{
public:
-
enum CompoundType { Class=Entry::CLASS_SEC,
Struct=Entry::STRUCT_SEC,
Union=Entry::UNION_SEC,
@@ -56,9 +57,9 @@ class ClassDef : public Definition
BaseClassList *baseClasses() { return inherits; }
void insertSuperClass(ClassDef *,Protection p,Specifier s,const char *t=0);
BaseClassList *superClasses() { return inheritedBy; }
- void setIncludeFile(FileDef *fd) { incFile=fd; }
- FileDef *includeFile() const { return incFile; }
- void setIncludeName(const char *n_) { incName=n_; }
+ void setIncludeFile(FileDef *fd,const char *incName,bool local);
+ //FileDef *includeFile() const { return incFile; }
+ //void setIncludeName(const char *n_) { incName=n_; }
MemberNameInfoList *memberNameInfoList() { return allMemberNameInfoList; }
MemberNameInfoDict *memberNameInfoDict() { return allMemberNameInfoDict; }
void insertMember(const MemberDef *);
@@ -68,7 +69,7 @@ class ClassDef : public Definition
void dumpMembers();
void writeDocumentation(OutputList &ol);
void writeMemberList(OutputList &ol);
- void writeIncludeFile(OutputList &ol);
+ //void writeIncludeFile(OutputList &ol);
//void writeMembersToContents();
void writeDeclaration(OutputList &ol,MemberDef *md);
bool addExample(const char *anchor,const char *name, const char *file);
@@ -96,17 +97,34 @@ class ClassDef : public Definition
NamespaceDef *getNamespace() { return nspace; }
void setFileDef(FileDef *fd) { fileDef=fd; }
FileDef *getFileDef() const { return fileDef; }
+ void mergeMembers();
+ bool isBaseClass(ClassDef *bcd);
+ void determineImplUsageRelation();
+ void determineIntfUsageRelation();
+ UsesClassDict *usedImplementationClasses() const
+ {
+ return usesImplClassDict;
+ }
+ UsesClassDict *usedInterfaceClasses() const
+ {
+ return usesIntfClassDict;
+ }
bool visited;
+ protected:
+ void addUsedInterfaceClasses(MemberDef *md,const char *typeStr);
+
private:
QCString fileName; // HTML containing the class docs
- FileDef *incFile; // header file to refer to
+ IncludeInfo *incInfo; // header file to refer to
QCString incName; // alternative include file name
QCString memListFileName;
BaseClassList *inherits;
BaseClassList *inheritedBy;
NamespaceDef *nspace; // the namespace this class is in
+
+ /* member list by protection */
MemberList pubMembers;
MemberList proMembers;
MemberList priMembers;
@@ -119,6 +137,16 @@ class ClassDef : public Definition
MemberList related;
MemberList signals;
MemberList friends;
+
+ /* member list by types */
+ MemberList constructors;
+ MemberList typedefMembers;
+ MemberList enumMembers;
+ MemberList enumValMembers;
+ MemberList functionMembers;
+ MemberList relatedMembers;
+ MemberList variableMembers;
+
MemberNameInfoList *allMemberNameInfoList;
MemberNameInfoDict *allMemberNameInfoDict;
ArgumentList *tempArgs;
@@ -128,8 +156,45 @@ class ClassDef : public Definition
CompoundType compType;
Protection prot;
FileDef *fileDef;
+ UsesClassDict *usesImplClassDict;
+ UsesClassDict *usesIntfClassDict;
};
+struct UsesClassDef
+{
+ UsesClassDef(ClassDef *cd) : classDef(cd)
+ {
+ accessors = new QDict(17);
+ }
+ ~UsesClassDef()
+ {
+ delete accessors;
+ }
+ void addAccessor(const char *s)
+ {
+ if (accessors->find(s)==0)
+ {
+ accessors->insert(s,(void *)666);
+ }
+ }
+ ClassDef *classDef;
+ QDict *accessors;
+};
+
+class UsesClassDict : public QDict
+{
+ public:
+ UsesClassDict(int size) : QDict(size) {}
+ ~UsesClassDict() {}
+};
+
+class UsesClassDictIterator : public QDictIterator
+{
+ public:
+ UsesClassDictIterator(const QDict &d)
+ : QDictIterator(d) {}
+ ~UsesClassDictIterator() {}
+};
struct BaseClassDef
{
diff --git a/src/classlist.cpp b/src/classlist.cpp
index 518f757..d775679 100644
--- a/src/classlist.cpp
+++ b/src/classlist.cpp
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -15,6 +15,7 @@
*/
#include "classlist.h"
+#include "config.h"
ClassList::ClassList() : QList()
{
@@ -28,7 +29,11 @@ int ClassList::compareItems(GCI item1, GCI item2)
{
ClassDef *c1=(ClassDef *)item1;
ClassDef *c2=(ClassDef *)item2;
- return strcmp(c1->name(),c2->name());
+
+ int prefixLength = Config::ignorePrefix.length();
+ int i1 = c1->name().left(prefixLength)==Config::ignorePrefix ? prefixLength : 0;
+ int i2 = c2->name().left(prefixLength)==Config::ignorePrefix ? prefixLength : 0;
+ return strcmp(c1->name().data()+i1,c2->name().data()+i2);
}
ClassListIterator::ClassListIterator(const ClassList &cllist) :
diff --git a/src/classlist.h b/src/classlist.h
index 28d8454..c3269bd 100644
--- a/src/classlist.h
+++ b/src/classlist.h
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
diff --git a/src/code.cpp b/src/code.cpp
index 380e233..e754017 100644
--- a/src/code.cpp
+++ b/src/code.cpp
@@ -304,148 +304,146 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
*yy_cp = '\0'; \
yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 77
-#define YY_END_OF_BUFFER 78
-static yyconst short int yy_acclist[771] =
+#define YY_NUM_RULES 78
+#define YY_END_OF_BUFFER 79
+static yyconst short int yy_acclist[752] =
{ 0,
- 31, 31, 78, 76, 77, 66, 75, 77, 1, 76,
- 77, 76, 77, 76, 77, 76, 77, 31, 76, 77,
- 31, 66, 75, 77, 1, 31, 76, 77, 33, 76,
- 77, 31, 76, 77, 76, 77, 31, 76, 77, 31,
- 76, 77, 6, 76, 77, 8, 66, 75, 77, 1,
- 6, 76, 77, 6, 76, 77, 6, 76, 77, 6,
- 76, 77, 6, 76, 77, 56, 76, 77, 56, 76,
- 77, 1, 56, 76, 77, 76, 77, 76, 77, 56,
- 76, 77, 76, 77, 76, 77, 58, 66, 75, 77,
- 1, 76, 77, 76, 77, 76, 77, 76, 77, 62,
-
- 65, 76, 77, 64, 66, 75, 77, 1, 62, 65,
- 76, 77, 65, 76, 77, 62, 65, 76, 77, 62,
- 65, 76, 77, 62, 65, 76, 77, 76, 77, 66,
- 75, 77, 1, 76, 77, 30, 76, 77, 76, 77,
- 40, 76, 77, 76, 77, 37, 76, 77, 41, 76,
- 77, 35, 76, 77, 8220, 76, 77,16412,16413, 8220,
- 76, 77,16412,16413, 8220, 76, 77,16412,16413, 8220,
- 76, 77,16412,16413, 8220, 76, 77,16412,16413, 8220,
- 76, 77,16412,16413, 8220, 76, 77,16412,16413, 8220,
- 76, 77,16412,16413, 8220, 76, 77,16412,16413, 8220,
-
- 76, 77,16412,16413, 8220, 76, 77,16412,16413, 8220,
- 76, 77,16412,16413, 8220, 76, 77,16412,16413, 8220,
- 76, 77,16412,16413, 8220, 76, 77,16412,16413, 10,
- 76, 77, 11, 76, 77, 76, 77, 76, 77, 5,
- 76, 77, 44, 76, 77, 45, 76, 77, 43, 76,
- 77, 42, 76, 77,16436, 39, 76, 77, 39, 76,
- 77, 66, 75, 77, 1, 39, 76, 77, 30, 39,
- 76, 77, 39, 76, 77, 39, 76, 77, 39, 76,
- 77, 76, 77,16422, 39, 76, 77, 39, 76, 77,
- 39, 76, 77, 42, 76, 77,16437,16438, 50, 76,
-
- 77, 49, 76, 77, 76, 77, 66, 75, 77, 13,
- 76, 77, 15, 76, 77, 12, 76, 77, 14, 76,
- 77, 16, 76, 77, 76, 77, 76, 77, 25, 76,
- 77, 22, 76, 77, 21, 76, 77, 21, 76, 77,
- 21, 76, 77, 76, 77, 23, 76, 77, 24, 76,
- 77, 76, 77,16388, 73, 74, 73, 74, 31, 31,
- 31, 31, 32, 73, 31, 32, 74, 34, 31, 31,
- 31, 32, 73, 31, 32, 74, 9, 74, 7, 9,
- 74, 56, 56, 57, 55, 74, 56, 55, 74, 58,
- 73, 74, 73, 74, 62, 61, 63, 73, 62, 63,
-
- 74, 62, 62, 63, 73, 62, 63, 74, 37, 41,
- 8220, 8220, 8221, 8220,16412,16413, 8220,16412,16413, 8220,
+ 31, 31, 79, 77, 78, 67, 76, 78, 1, 77,
+ 78, 77, 78, 77, 78, 77, 78, 31, 77, 78,
+ 1, 31, 77, 78, 33, 77, 78, 31, 77, 78,
+ 77, 78, 31, 77, 78, 31, 77, 78, 6, 77,
+ 78, 8, 67, 76, 78, 1, 6, 77, 78, 6,
+ 77, 78, 6, 77, 78, 6, 77, 78, 6, 77,
+ 78, 57, 77, 78, 57, 77, 78, 1, 57, 77,
+ 78, 77, 78, 77, 78, 57, 77, 78, 77, 78,
+ 77, 78, 59, 67, 76, 78, 1, 77, 78, 77,
+ 78, 77, 78, 77, 78, 63, 66, 77, 78, 65,
+
+ 67, 76, 78, 1, 63, 66, 77, 78, 66, 77,
+ 78, 63, 66, 77, 78, 63, 66, 77, 78, 63,
+ 66, 77, 78, 77, 78, 67, 76, 78, 1, 77,
+ 78, 30, 77, 78, 77, 78, 41, 77, 78, 77,
+ 78, 38, 77, 78, 42, 77, 78, 35, 77, 78,
+ 8220, 77, 78,16412,16413, 8220, 77, 78,16412,16413,
+ 8220, 77, 78,16412,16413, 8220, 77, 78,16412,16413,
+ 8220, 77, 78,16412,16413, 8220, 77, 78,16412,16413,
+ 8220, 77, 78,16412,16413, 8220, 77, 78,16412,16413,
+ 8220, 77, 78,16412,16413, 8220, 77, 78,16412,16413,
+
+ 8220, 77, 78,16412,16413, 8220, 77, 78,16412,16413,
+ 8220, 77, 78,16412,16413, 8220, 77, 78,16412,16413,
+ 8220, 77, 78,16412,16413, 10, 77, 78, 11, 77,
+ 78, 77, 78, 77, 78, 5, 77, 78, 45, 77,
+ 78, 46, 77, 78, 44, 77, 78, 43, 77, 78,
+ 16437, 40, 77, 78, 40, 77, 78, 67, 76, 78,
+ 1, 40, 77, 78, 30, 40, 77, 78, 40, 77,
+ 78, 40, 77, 78, 40, 77, 78, 77, 78,16423,
+ 40, 77, 78, 40, 77, 78, 40, 77, 78, 43,
+ 77, 78,16438,16439, 51, 77, 78, 50, 77, 78,
+
+ 77, 78, 67, 76, 78, 13, 77, 78, 15, 77,
+ 78, 12, 77, 78, 14, 77, 78, 16, 77, 78,
+ 77, 78, 77, 78, 25, 77, 78, 22, 77, 78,
+ 21, 77, 78, 21, 77, 78, 21, 77, 78, 77,
+ 78, 23, 77, 78, 24, 77, 78, 77, 78,16388,
+ 74, 75, 74, 75, 31, 31, 32, 74, 31, 32,
+ 75, 34, 31, 31, 31, 32, 74, 31, 32, 75,
+ 9, 75, 7, 9, 75, 57, 57, 58, 56, 75,
+ 57, 56, 75, 59, 74, 75, 74, 75, 63, 62,
+ 64, 74, 63, 64, 75, 63, 63, 64, 74, 63,
+
+ 64, 75, 38, 42, 8220, 8220, 8221, 8220,16412,16413,
+ 8220,16412,16413, 8220,16412,16413, 8220,16412,16413, 8220,
16412,16413, 8220,16412,16413, 8220,16412,16413, 8220,16412,
- 16413, 8220,16412,16413, 8220,16412,16413, 27, 8220,16412,
+ 16413, 27, 8220,16412,16413, 8220,16412,16413, 8220,16412,
16413, 8220,16412,16413, 8220,16412,16413, 8220,16412,16413,
8220,16412,16413, 8220,16412,16413, 8220,16412,16413, 8220,
16412,16413, 8220,16412,16413, 8220,16412,16413, 8220,16412,
- 16413, 8220,16412,16413, 8220,16412,16413, 8220,16412,16413,
- 5, 48, 46, 47, 51, 8244, 42,16436, 42, 8230,
- 16422,16422, 8245, 8246, 42,16437,16438, 50, 15, 16,
+ 16413, 8220,16412,16413, 5, 49, 47, 48, 52, 8245,
+ 43,16437, 43, 8231,16423,16423, 8246, 8247, 43,16438,
+ 16439, 51, 15, 16, 13, 15, 14, 16, 21, 21,
- 13, 15, 14, 16, 21, 21, 21, 21, 8196,16388,
- 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
- 60, 62, 62, 62, 36, 36, 8220,16412,16413, 8220,
- 16412,16413, 8220,16412,16413, 8220,16412,16413, 8220,16412,
- 16413, 8220,16412,16413, 8220,16412,16413, 8220,16412,16413,
- 8220,16412,16413, 27, 8220, 27, 8220, 26, 8221, 8220,
- 16412,16413, 8220,16412,16413, 8220,16412,16413, 8220,16412,
+ 21, 21, 8196,16388, 31, 31, 31, 31, 31, 31,
+ 31, 31, 61, 63, 63, 63, 36, 36, 8220,16412,
16413, 8220,16412,16413, 8220,16412,16413, 8220,16412,16413,
8220,16412,16413, 8220,16412,16413, 8220,16412,16413, 8220,
- 8220, 8220,16412,16413,16422,16422, 21, 21, 21, 21,
-
- 16388, 71, 72, 68, 70, 71, 67, 68, 31, 31,
- 31, 71, 31, 31, 72, 31, 31, 68, 31, 31,
- 31, 70, 71, 31, 31, 67, 68, 71, 58, 71,
- 72, 58, 68, 70, 71, 58, 70, 71, 58, 67,
- 68, 60, 62, 62, 62, 8220,16412,16413, 8220,16412,
- 16413, 8220,16412,16413, 8220,16412,16413, 8220,16412,16413,
- 8220,16412,16413, 26, 8220,16412,16413, 8220,16412,16413,
+ 16412,16413, 8220,16412,16413, 27, 8220, 27, 8220, 26,
+ 8221, 8220,16412,16413, 8220,16412,16413, 8220,16412,16413,
8220,16412,16413, 8220,16412,16413, 8220,16412,16413, 8220,
- 16412,16413, 8220,16412,16413, 21, 21, 21, 21, 69,
- 66, 70, 67, 31, 69, 31, 31, 66, 31, 70,
+ 16412,16413, 8220,16412,16413, 8220,16412,16413, 8220,16412,
+ 16413, 8220, 8220, 8220,16412,16413,16423,16423, 21, 21,
+ 21, 21,16388, 72, 73, 69, 71, 72, 68, 69,
- 31, 31, 67, 70, 58, 70, 58, 67, 62, 8220,
+ 31, 72, 31, 31, 73, 31, 31, 31, 31, 71,
+ 72, 31, 72, 59, 72, 73, 59, 69, 71, 72,
+ 59, 71, 72, 59, 68, 69, 61, 63, 63, 63,
+ 8220,16412,16413, 8220,16412,16413, 8220,16412,16413, 8220,
+ 16412,16413, 8220,16412,16413, 8220,16412,16413, 26, 8220,
+ 16412,16413, 8220,16412,16413, 8220,16412,16413, 27, 8220,
16412,16413, 8220,16412,16413, 8220,16412,16413, 8220,16412,
- 16413, 8220,16412,16413, 8220,16412,16413, 8220,16412,16413,
- 8220,16412,16413, 21, 21, 21, 21, 31, 31, 3,
- 8220, 3, 8220, 8220,16412,16413, 8220,16412,16413, 8220,
- 16412,16413, 21, 21, 18, 21, 21, 59, 8220,16412,
- 16413, 20, 21, 21, 17, 21, 21, 19, 21, 2
+ 16413, 8220,16412,16413, 21, 21, 21, 21, 70, 67,
+ 71, 68, 31, 71, 31, 71, 59, 71, 59, 68,
+ 63, 8220,16412,16413, 8220,16412,16413, 8220,16412,16413,
+
+ 8220,16412,16413, 8220,16412,16413, 8220,16412,16413, 8220,
+ 16412,16413, 8220,16412,16413, 21, 21, 21, 21, 3,
+ 8220, 3, 8220, 8220,16412,16413, 8220,16412,16413, 37,
+ 8220,16412,16413, 21, 21, 18, 21, 21, 60, 8220,
+ 16412,16413, 20, 21, 21, 17, 21, 21, 19, 21,
+ 2
} ;
-static yyconst short int yy_accept[461] =
+static yyconst short int yy_accept[449] =
{ 0,
1, 1, 1, 2, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 4, 6, 9, 12, 14, 16, 18,
- 21, 25, 29, 32, 35, 37, 40, 43, 46, 50,
- 54, 57, 60, 63, 66, 69, 72, 76, 78, 80,
- 83, 85, 87, 91, 94, 96, 98, 100, 104, 108,
- 113, 116, 120, 124, 128, 130, 133, 136, 139, 141,
- 144, 146, 149, 152, 155, 160, 165, 170, 175, 180,
- 185, 190, 195, 200, 205, 210, 215, 220, 225, 230,
-
- 233, 236, 238, 240, 243, 246, 249, 252, 256, 259,
- 262, 265, 269, 273, 276, 279, 282, 285, 288, 291,
- 294, 299, 302, 305, 307, 310, 313, 316, 319, 322,
- 325, 327, 329, 332, 335, 338, 341, 344, 346, 349,
- 352, 355, 355, 355, 356, 357, 357, 357, 358, 359,
- 360, 361, 362, 365, 368, 369, 370, 371, 374, 377,
- 379, 380, 382, 383, 384, 384, 385, 387, 388, 390,
- 390, 391, 392, 393, 393, 393, 394, 395, 396, 397,
- 399, 402, 403, 404, 406, 409, 409, 409, 409, 409,
- 409, 410, 411, 411, 412, 413, 414, 417, 420, 423,
-
- 426, 429, 432, 435, 438, 442, 445, 448, 451, 454,
- 457, 460, 463, 466, 469, 472, 475, 478, 478, 481,
- 481, 482, 482, 482, 483, 484, 485, 486, 486, 487,
- 489, 490, 490, 490, 490, 490, 490, 491, 492, 492,
- 493, 493, 493, 494, 494, 495, 498, 499, 499, 499,
- 500, 501, 501, 502, 503, 504, 505, 505, 505, 506,
- 507, 508, 509, 509, 510, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 512, 513, 514,
- 515, 516, 517, 518, 519, 520, 521, 521, 521, 521,
- 521, 521, 521, 521, 521, 521, 522, 523, 524, 525,
-
- 526, 527, 527, 530, 530, 533, 536, 539, 542, 545,
- 548, 551, 554, 556, 558, 560, 563, 566, 569, 572,
- 575, 578, 581, 584, 587, 590, 591, 592, 595, 595,
- 595, 596, 596, 596, 597, 598, 599, 600, 601, 602,
- 602, 602, 603, 603, 604, 604, 605, 605, 605, 607,
- 607, 609, 610, 611, 613, 614, 616, 617, 619, 620,
- 621, 624, 625, 628, 629, 631, 631, 632, 632, 634,
- 634, 634, 636, 639, 639, 642, 642, 643, 643, 644,
- 645, 646, 649, 652, 655, 658, 661, 664, 665, 668,
- 671, 674, 677, 680, 683, 686, 686, 687, 688, 689,
-
- 690, 691, 691, 692, 693, 693, 694, 696, 697, 699,
- 701, 702, 704, 705, 707, 707, 709, 709, 710, 713,
- 716, 719, 722, 725, 728, 731, 734, 734, 735, 736,
- 737, 738, 738, 738, 739, 740, 740, 742, 744, 747,
- 750, 753, 753, 754, 755, 757, 758, 759, 762, 762,
- 764, 765, 767, 767, 768, 768, 770, 770, 771, 771
+ 21, 25, 28, 31, 33, 36, 39, 42, 46, 50,
+ 53, 56, 59, 62, 65, 68, 72, 74, 76, 79,
+ 81, 83, 87, 90, 92, 94, 96, 100, 104, 109,
+ 112, 116, 120, 124, 126, 129, 132, 135, 137, 140,
+ 142, 145, 148, 151, 156, 161, 166, 171, 176, 181,
+ 186, 191, 196, 201, 206, 211, 216, 221, 226, 229,
+
+ 232, 234, 236, 239, 242, 245, 248, 252, 255, 258,
+ 261, 265, 269, 272, 275, 278, 281, 284, 287, 290,
+ 295, 298, 301, 303, 306, 309, 312, 315, 318, 321,
+ 323, 325, 328, 331, 334, 337, 340, 342, 345, 348,
+ 351, 351, 351, 352, 353, 353, 353, 354, 355, 356,
+ 359, 362, 363, 364, 365, 368, 371, 373, 374, 376,
+ 377, 378, 378, 379, 381, 382, 384, 384, 385, 386,
+ 387, 387, 387, 388, 389, 390, 391, 393, 396, 397,
+ 398, 400, 403, 403, 403, 403, 403, 403, 404, 405,
+ 405, 406, 407, 408, 411, 414, 417, 420, 423, 426,
+
+ 429, 432, 436, 439, 442, 445, 448, 451, 454, 457,
+ 460, 463, 466, 469, 472, 472, 475, 475, 476, 476,
+ 476, 477, 478, 479, 480, 480, 481, 483, 484, 484,
+ 484, 484, 484, 484, 485, 486, 486, 487, 487, 487,
+ 488, 488, 489, 492, 493, 493, 493, 494, 495, 495,
+ 496, 497, 498, 499, 499, 499, 500, 501, 502, 503,
+ 503, 504, 505, 505, 505, 505, 505, 505, 505, 505,
+ 505, 505, 505, 505, 506, 507, 508, 509, 510, 511,
+ 512, 513, 513, 513, 513, 513, 513, 513, 513, 513,
+ 513, 514, 515, 516, 517, 518, 519, 519, 522, 522,
+
+ 525, 528, 531, 534, 537, 540, 543, 546, 548, 550,
+ 552, 555, 558, 561, 564, 567, 570, 573, 576, 579,
+ 582, 583, 584, 587, 587, 587, 588, 588, 588, 589,
+ 590, 591, 592, 593, 594, 594, 594, 595, 595, 596,
+ 596, 597, 597, 597, 599, 599, 601, 603, 604, 606,
+ 607, 608, 609, 612, 613, 614, 616, 616, 617, 617,
+ 619, 619, 619, 621, 624, 624, 627, 627, 628, 628,
+ 629, 630, 631, 634, 637, 640, 643, 646, 649, 650,
+ 653, 656, 659, 663, 666, 669, 672, 675, 675, 676,
+ 677, 678, 679, 680, 680, 681, 682, 682, 683, 685,
+
+ 686, 687, 689, 689, 691, 691, 692, 695, 698, 701,
+ 704, 707, 710, 713, 713, 716, 716, 717, 718, 719,
+ 720, 720, 720, 720, 722, 724, 727, 730, 731, 734,
+ 734, 735, 736, 738, 739, 740, 743, 743, 745, 746,
+ 748, 748, 749, 749, 751, 751, 752, 752
} ;
static yyconst int yy_ec[256] =
@@ -489,372 +487,364 @@ static yyconst int yy_meta[50] =
14, 14, 14, 14, 14, 14, 1, 1, 16
} ;
-static yyconst short int yy_base[514] =
+static yyconst short int yy_base[500] =
{ 0,
0, 3, 5, 11, 20, 29, 35, 38, 45, 53,
55, 60, 62, 71, 87, 18, 136, 10, 185, 44,
229, 66, 275, 68, 324, 234, 373, 235, 420, 423,
- 445, 237, 1529, 2037, 428, 2037, 6, 493, 65, 0,
- 494, 0, 2037, 67, 0, 495, 226, 2037, 496, 2037,
- 228, 1525, 497, 229, 0, 426, 0, 1511, 231, 502,
- 417, 1523, 499, 1522, 504, 503, 505, 0, 520, 0,
- 1508, 419, 521, 425, 522, 525, 528, 2037, 1499, 2037,
- 1500, 2037, 1500, 1496, 545, 548, 513, 532, 531, 536,
- 501, 521, 535, 539, 552, 542, 556, 549, 562, 2037,
-
- 2037, 531, 604, 1511, 2037, 598, 2037, 600, 2037, 621,
- 624, 628, 2037, 1488, 597, 1493, 631, 634, 648, 631,
- 653, 0, 2037, 651, 656, 636, 83, 2037, 0, 1507,
- 659, 498, 2037, 2037, 0, 206, 1471, 663, 2037, 2037,
- 654, 596, 666, 668, 676, 681, 672, 681, 680, 0,
- 685, 678, 690, 684, 2037, 689, 687, 699, 702, 703,
- 2037, 704, 0, 617, 1485, 2037, 707, 712, 710, 1495,
- 2037, 722, 726, 714, 729, 732, 733, 0, 500, 728,
- 734, 741, 735, 741, 743, 752, 1477, 758, 1485, 1484,
- 2037, 1475, 761, 765, 769, 2037, 391, 741, 747, 737,
-
- 750, 756, 757, 766, 801, 765, 772, 775, 778, 783,
- 787, 796, 800, 804, 793, 805, 816, 849, 852, 861,
- 1489, 1457, 864, 2037, 2037, 2037, 2037, 1467, 2037, 860,
- 0, 869, 1470, 882, 886, 889, 2037, 892, 910, 0,
- 913, 918, 2037, 1465, 2037, 924, 0, 858, 906, 719,
- 1480, 934, 823, 783, 0, 1477, 938, 711, 0, 868,
- 1452, 1437, 928, 2037, 937, 0, 790, 853, 1464, 906,
- 1471, 943, 941, 1445, 907, 1442, 946, 944, 955, 956,
- 960, 964, 965, 971, 976, 983, 962, 987, 1438, 993,
- 988, 994, 999, 1413, 878, 1006, 40, 996, 802, 2037,
-
- 1404, 1014, 779, 1017, 985, 988, 995, 998, 904, 992,
- 1002, 1001, 1044, 1047, 2037, 1023, 1015, 1018, 1026, 1029,
- 1032, 1036, 1039, 1040, 1049, 1083, 1085, 1092, 1372, 1094,
- 1097, 1101, 1104, 1106, 1349, 1347, 1344, 1235, 1103, 0,
- 1272, 2037, 1258, 2037, 1270, 2037, 0, 1269, 2037, 1268,
- 2037, 1105, 1107, 0, 1252, 0, 1117, 0, 1112, 1124,
- 0, 1129, 0, 1254, 2037, 1073, 1249, 1237, 2037, 1130,
- 1230, 1208, 2037, 1200, 2037, 1135, 1142, 1143, 961, 1137,
- 1144, 1116, 1120, 1119, 1131, 1124, 1127, 2037, 1135, 1139,
- 1144, 1136, 1145, 1152, 1155, 1127, 1114, 1105, 1093, 1079,
-
- 2037, 1088, 1181, 2037, 1057, 2037, 0, 1188, 1188, 0,
- 1196, 0, 1052, 2037, 1011, 2037, 1195, 1189, 1203, 1172,
- 1173, 1181, 1180, 1184, 1187, 1200, 959, 883, 876, 870,
- 831, 1216, 736, 1229, 641, 0, 1232, 1235, 1206, 1213,
- 1218, 578, 575, 519, 0, 503, 2037, 1222, 220, 0,
- 51, 0, 1, 0, 1256, 0, 1258, 2037, 2037, 1278,
- 1294, 1310, 1326, 1342, 1358, 1374, 1390, 1406, 1422, 1438,
- 1454, 1469, 1482, 1491, 1504, 1517, 1530, 1026, 1255, 1256,
- 1540, 1553, 1568, 1572, 1585, 1600, 1606, 1620, 1636, 1652,
- 1668, 1684, 1700, 1716, 1732, 1748, 1764, 1780, 1796, 1812,
-
- 1828, 1844, 1860, 1876, 1892, 1908, 1924, 1940, 1956, 1972,
- 1988, 2004, 2020
+ 445, 237, 1515, 1994, 428, 1994, 6, 493, 65, 0,
+ 0, 1994, 67, 0, 494, 226, 1994, 495, 1994, 228,
+ 1511, 496, 229, 0, 426, 0, 1497, 231, 501, 417,
+ 1509, 498, 1508, 503, 502, 504, 0, 506, 0, 1490,
+ 419, 519, 425, 521, 524, 527, 1994, 1479, 1994, 1480,
+ 1994, 1484, 1482, 534, 544, 510, 530, 520, 529, 536,
+ 537, 526, 547, 552, 541, 557, 564, 500, 1994, 1994,
+
+ 606, 609, 1496, 1994, 612, 1994, 608, 1994, 617, 630,
+ 634, 1994, 1469, 580, 1472, 637, 640, 647, 590, 654,
+ 0, 1994, 658, 664, 616, 83, 1994, 0, 1485, 668,
+ 557, 1994, 1994, 0, 206, 1451, 671, 1994, 1994, 669,
+ 672, 642, 678, 673, 677, 665, 687, 690, 0, 689,
+ 691, 1994, 695, 686, 698, 703, 704, 1994, 707, 0,
+ 702, 1467, 1994, 708, 714, 712, 1479, 1994, 722, 726,
+ 719, 729, 734, 733, 0, 499, 728, 738, 742, 735,
+ 743, 745, 760, 1463, 763, 1471, 1470, 1994, 1461, 766,
+ 770, 773, 1994, 391, 716, 744, 753, 756, 764, 763,
+
+ 760, 806, 769, 777, 780, 783, 788, 792, 801, 805,
+ 809, 798, 810, 821, 854, 857, 866, 1475, 1443, 869,
+ 1994, 1994, 1994, 1994, 1449, 1994, 865, 0, 874, 1450,
+ 887, 891, 894, 1994, 897, 915, 0, 918, 923, 1994,
+ 1445, 1994, 929, 0, 863, 911, 531, 1464, 939, 748,
+ 790, 0, 1463, 943, 615, 0, 561, 1437, 1406, 933,
+ 1994, 942, 0, 918, 797, 1422, 824, 1427, 948, 809,
+ 1393, 890, 1399, 959, 960, 964, 969, 858, 979, 986,
+ 990, 996, 997, 1395, 974, 1001, 1004, 1012, 1379, 883,
+ 1016, 40, 989, 554, 1994, 1369, 1019, 909, 1023, 913,
+
+ 1004, 1001, 1007, 990, 997, 1010, 1014, 1056, 1059, 1994,
+ 1035, 1011, 1024, 1029, 1038, 1030, 1044, 1054, 1048, 1049,
+ 1091, 925, 1096, 1331, 1100, 1105, 1108, 643, 809, 1322,
+ 1222, 1228, 1208, 1108, 0, 1230, 1994, 1212, 1994, 1218,
+ 1994, 0, 1211, 1994, 1210, 1994, 0, 1186, 0, 1110,
+ 1116, 1114, 0, 1123, 1198, 1994, 908, 1186, 1180, 1994,
+ 1130, 1138, 1132, 1994, 1128, 1994, 1134, 1141, 1109, 966,
+ 1093, 1136, 1111, 1119, 1084, 1120, 1115, 1123, 1994, 1127,
+ 1128, 1132, 1174, 1137, 1144, 1149, 1150, 1073, 1063, 1046,
+ 1023, 1003, 1994, 1038, 971, 1994, 1033, 1994, 0, 1192,
+
+ 998, 1994, 965, 1994, 1169, 1191, 1194, 1163, 1164, 1179,
+ 1182, 1168, 1186, 886, 1183, 826, 785, 756, 744, 728,
+ 995, 684, 0, 1228, 1237, 1193, 1201, 1994, 1215, 586,
+ 562, 518, 0, 464, 1994, 1218, 220, 0, 51, 0,
+ 1, 0, 1246, 0, 1247, 1994, 1994, 1267, 1283, 1299,
+ 1315, 1331, 1347, 1363, 1379, 1395, 1411, 1427, 1443, 1458,
+ 1471, 1480, 1493, 1506, 1519, 1240, 1246, 1251, 1529, 1542,
+ 1557, 1561, 1574, 1589, 1595, 1609, 1625, 1641, 1657, 1673,
+ 1689, 1705, 1721, 1737, 1753, 1769, 1785, 1801, 1817, 1833,
+ 1849, 1865, 1881, 1897, 1913, 1929, 1945, 1961, 1977
+
} ;
-static yyconst short int yy_def[514] =
+static yyconst short int yy_def[500] =
{ 0,
- 460, 460, 461, 461, 462, 462, 463, 463, 464, 464,
- 465, 465, 460, 460, 459, 15, 459, 17, 459, 19,
- 17, 21, 459, 23, 459, 25, 459, 27, 460, 460,
- 459, 31, 459, 459, 459, 459, 459, 459, 459, 466,
- 466, 466, 459, 466, 467, 466, 466, 459, 459, 459,
- 459, 459, 459, 459, 468, 468, 468, 459, 459, 468,
- 459, 469, 459, 469, 469, 469, 469, 470, 459, 470,
- 459, 470, 470, 470, 459, 459, 459, 459, 471, 459,
- 459, 459, 459, 459, 472, 472, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 459,
-
- 459, 473, 459, 459, 459, 459, 459, 474, 459, 459,
- 459, 459, 459, 471, 459, 459, 475, 476, 459, 459,
- 477, 478, 459, 459, 459, 459, 459, 459, 479, 459,
- 459, 459, 459, 459, 480, 480, 480, 459, 459, 459,
- 481, 459, 459, 459, 459, 459, 459, 459, 459, 466,
- 466, 466, 466, 466, 459, 466, 466, 466, 466, 459,
- 459, 459, 468, 468, 459, 459, 459, 468, 459, 469,
- 459, 469, 469, 469, 469, 469, 469, 470, 459, 459,
- 470, 470, 470, 459, 470, 459, 459, 459, 459, 471,
- 459, 459, 482, 459, 459, 459, 86, 86, 86, 86,
-
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 473, 483, 459,
- 459, 459, 459, 459, 459, 459, 459, 459, 459, 474,
- 484, 459, 459, 459, 485, 459, 459, 475, 476, 486,
- 459, 459, 459, 459, 459, 477, 478, 459, 459, 459,
- 459, 459, 459, 459, 479, 459, 459, 459, 480, 480,
- 480, 480, 459, 459, 481, 487, 459, 459, 488, 488,
- 489, 459, 459, 490, 490, 491, 466, 466, 492, 492,
- 493, 466, 466, 494, 494, 495, 496, 496, 497, 469,
- 469, 498, 498, 499, 459, 459, 500, 470, 501, 459,
-
- 459, 482, 86, 473, 86, 86, 86, 86, 86, 86,
- 86, 86, 459, 459, 459, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 459, 459, 483, 459, 485,
- 475, 476, 459, 486, 480, 480, 480, 480, 487, 502,
- 503, 459, 459, 459, 489, 459, 504, 505, 459, 491,
- 459, 506, 507, 466, 466, 466, 493, 466, 508, 509,
- 466, 495, 466, 469, 459, 469, 469, 497, 459, 510,
- 511, 469, 459, 499, 459, 459, 459, 459, 500, 512,
- 501, 86, 86, 86, 86, 86, 86, 459, 86, 86,
- 86, 86, 86, 86, 86, 459, 480, 480, 480, 480,
-
- 459, 503, 459, 459, 505, 459, 466, 507, 466, 466,
- 509, 466, 469, 459, 511, 459, 459, 512, 86, 86,
- 86, 86, 86, 86, 86, 86, 459, 480, 480, 480,
- 480, 459, 459, 466, 466, 513, 459, 459, 86, 86,
- 86, 459, 480, 480, 480, 480, 459, 86, 459, 480,
- 480, 480, 459, 480, 459, 480, 459, 459, 0, 459,
- 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
- 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
- 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
- 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
-
- 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
- 459, 459, 459
+ 448, 448, 449, 449, 450, 450, 451, 451, 452, 452,
+ 453, 453, 448, 448, 447, 15, 447, 17, 447, 19,
+ 17, 21, 447, 23, 447, 25, 447, 27, 448, 448,
+ 447, 31, 447, 447, 447, 447, 447, 447, 447, 454,
+ 454, 447, 454, 455, 454, 454, 447, 447, 447, 447,
+ 447, 447, 447, 456, 456, 456, 447, 447, 456, 447,
+ 457, 447, 457, 457, 457, 457, 458, 447, 458, 447,
+ 458, 458, 458, 447, 447, 447, 447, 459, 447, 447,
+ 447, 447, 447, 460, 460, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 85, 85, 447, 447,
+
+ 461, 447, 447, 447, 447, 447, 462, 447, 447, 447,
+ 447, 447, 459, 447, 447, 463, 464, 447, 447, 465,
+ 466, 447, 447, 447, 447, 447, 447, 467, 447, 447,
+ 447, 447, 447, 468, 468, 468, 447, 447, 447, 469,
+ 447, 447, 447, 447, 447, 447, 447, 447, 454, 454,
+ 454, 447, 454, 454, 454, 454, 447, 447, 447, 456,
+ 456, 447, 447, 447, 456, 447, 457, 447, 457, 457,
+ 457, 457, 457, 457, 458, 447, 447, 458, 458, 458,
+ 447, 458, 447, 447, 447, 447, 459, 447, 447, 470,
+ 447, 447, 447, 85, 85, 85, 85, 85, 85, 85,
+
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 461, 471, 447, 447, 447, 447,
+ 447, 447, 447, 447, 447, 447, 462, 472, 447, 447,
+ 447, 473, 447, 447, 463, 464, 474, 447, 447, 447,
+ 447, 447, 465, 466, 447, 447, 447, 447, 447, 447,
+ 447, 467, 447, 447, 447, 468, 468, 468, 468, 447,
+ 447, 469, 475, 447, 447, 476, 476, 477, 447, 447,
+ 478, 478, 479, 480, 480, 481, 454, 454, 482, 482,
+ 483, 484, 484, 485, 457, 457, 486, 486, 487, 447,
+ 447, 488, 458, 489, 447, 447, 470, 85, 461, 85,
+
+ 85, 85, 85, 85, 85, 85, 85, 447, 447, 447,
+ 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+ 447, 447, 471, 447, 473, 463, 464, 447, 474, 468,
+ 468, 468, 468, 475, 490, 491, 447, 447, 447, 477,
+ 447, 492, 493, 447, 479, 447, 454, 454, 454, 481,
+ 494, 495, 454, 483, 457, 447, 457, 457, 485, 447,
+ 496, 497, 457, 447, 487, 447, 447, 447, 447, 488,
+ 498, 489, 85, 85, 85, 85, 85, 85, 447, 85,
+ 85, 85, 85, 85, 85, 85, 85, 447, 468, 468,
+ 468, 468, 447, 491, 447, 447, 493, 447, 454, 495,
+
+ 457, 447, 497, 447, 447, 498, 85, 85, 85, 85,
+ 85, 85, 85, 447, 85, 447, 468, 468, 468, 468,
+ 447, 447, 499, 447, 447, 85, 85, 447, 85, 447,
+ 468, 468, 468, 468, 447, 85, 447, 468, 468, 468,
+ 447, 468, 447, 468, 447, 447, 0, 447, 447, 447,
+ 447, 447, 447, 447, 447, 447, 447, 447, 447, 447,
+ 447, 447, 447, 447, 447, 447, 447, 447, 447, 447,
+ 447, 447, 447, 447, 447, 447, 447, 447, 447, 447,
+ 447, 447, 447, 447, 447, 447, 447, 447, 447, 447,
+ 447, 447, 447, 447, 447, 447, 447, 447, 447
+
} ;
-static yyconst short int yy_nxt[2087] =
+static yyconst short int yy_nxt[2044] =
{ 0,
- 459, 333, 35, 36, 38, 35, 36, 41, 42, 237,
- 43, 38, 46, 41, 42, 37, 43, 144, 39, 103,
- 44, 145, 49, 50, 104, 39, 47, 456, 45, 455,
- 53, 49, 50, 39, 45, 51, 56, 35, 57, 60,
- 35, 57, 346, 52, 54, 119, 58, 63, 64, 58,
- 59, 345, 52, 61, 66, 63, 64, 69, 70, 120,
- 65, 73, 69, 70, 35, 36, 71, 38, 67, 38,
- 72, 71, 38, 35, 36, 74, 148, 37, 153, 454,
- 149, 39, 154, 39, 254, 254, 39, 34, 75, 76,
- 77, 34, 78, 34, 34, 79, 34, 34, 34, 80,
-
- 81, 82, 37, 83, 84, 80, 34, 80, 34, 85,
- 34, 86, 87, 88, 89, 90, 91, 92, 85, 93,
- 85, 85, 85, 94, 85, 85, 95, 96, 97, 98,
- 85, 99, 85, 100, 101, 102, 34, 34, 35, 36,
- 34, 78, 34, 34, 79, 105, 106, 34, 107, 34,
- 34, 37, 34, 34, 34, 34, 34, 34, 108, 34,
- 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 34, 34, 34, 109, 110, 111, 112, 109,
- 113, 109, 109, 114, 34, 109, 109, 109, 109, 109,
-
- 115, 34, 116, 109, 109, 109, 109, 117, 109, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 109, 109, 118, 34, 131, 138, 158, 38, 144,
- 148, 159, 144, 160, 162, 260, 167, 453, 261, 39,
- 39, 121, 39, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 121, 121, 121, 121, 121, 34, 34, 35, 36, 34,
+ 447, 328, 35, 36, 38, 35, 36, 35, 41, 234,
+ 42, 38, 45, 35, 41, 37, 42, 143, 39, 102,
+ 43, 144, 48, 49, 103, 39, 46, 444, 44, 443,
+ 52, 48, 49, 39, 44, 50, 55, 35, 56, 59,
+ 35, 56, 341, 51, 53, 118, 57, 62, 63, 57,
+ 58, 340, 51, 60, 65, 62, 63, 68, 69, 119,
+ 64, 72, 68, 69, 35, 36, 70, 38, 66, 38,
+ 71, 70, 38, 35, 36, 73, 147, 37, 150, 442,
+ 148, 39, 151, 39, 251, 251, 39, 34, 74, 75,
+ 76, 34, 77, 34, 34, 78, 34, 34, 34, 79,
+
+ 80, 81, 37, 82, 83, 79, 34, 79, 34, 84,
+ 34, 85, 86, 87, 88, 89, 90, 91, 84, 92,
+ 84, 84, 84, 93, 84, 84, 94, 95, 96, 97,
+ 84, 98, 84, 99, 100, 101, 34, 34, 35, 36,
+ 34, 77, 34, 34, 78, 104, 105, 34, 106, 34,
+ 34, 37, 34, 34, 34, 34, 34, 34, 107, 34,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 34, 34, 34, 108, 109, 110, 111, 108,
+ 112, 108, 108, 113, 34, 108, 108, 108, 108, 108,
+
+ 114, 34, 115, 108, 108, 108, 108, 116, 108, 116,
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
+ 116, 108, 108, 117, 34, 130, 137, 155, 38, 143,
+ 147, 156, 143, 157, 159, 257, 164, 441, 258, 39,
+ 39, 120, 39, 120, 120, 120, 120, 120, 120, 120,
+ 120, 120, 120, 120, 120, 120, 120, 120, 120, 120,
+ 120, 120, 120, 120, 120, 34, 34, 35, 36, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 37, 34, 34, 34, 34, 34, 34, 122, 34, 122,
-
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
- 122, 123, 34, 34, 34, 124, 125, 36, 34, 34,
- 34, 126, 34, 34, 34, 126, 34, 34, 34, 37,
- 34, 127, 128, 34, 34, 34, 129, 34, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 130, 34, 34, 34, 132, 35, 36, 34, 34, 34,
- 34, 34, 34, 34, 34, 133, 34, 34, 37, 34,
- 34, 34, 134, 34, 34, 135, 34, 135, 135, 135,
-
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 136, 135, 135, 135, 135, 137, 135, 135, 130,
- 34, 34, 35, 36, 38, 35, 36, 164, 148, 142,
- 180, 197, 169, 197, 181, 37, 184, 165, 39, 139,
- 185, 140, 139, 143, 140, 34, 34, 35, 36, 34,
- 34, 34, 34, 34, 34, 34, 34, 34, 34, 141,
- 37, 141, 34, 34, 34, 34, 34, 141, 34, 141,
- 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
- 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
- 141, 34, 34, 34, 146, 151, 156, 142, 146, 258,
-
- 142, 295, 296, 168, 174, 171, 171, 171, 147, 152,
- 157, 143, 147, 165, 143, 172, 176, 147, 175, 173,
- 177, 142, 182, 186, 186, 186, 188, 186, 186, 186,
- 186, 186, 218, 218, 218, 143, 183, 452, 207, 187,
- 143, 197, 187, 197, 251, 187, 194, 195, 186, 194,
- 195, 186, 200, 197, 196, 197, 201, 196, 208, 204,
- 451, 197, 187, 197, 205, 187, 202, 209, 205, 203,
- 206, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 210, 197, 197, 211, 197, 216, 212, 213, 198, 197,
- 199, 197, 197, 217, 197, 214, 197, 142, 197, 223,
-
- 223, 215, 197, 450, 197, 220, 186, 186, 144, 227,
- 221, 143, 145, 228, 229, 224, 225, 231, 164, 147,
- 449, 187, 232, 232, 232, 234, 232, 232, 165, 232,
- 232, 232, 236, 232, 232, 239, 239, 239, 233, 143,
- 237, 233, 148, 253, 226, 233, 149, 253, 233, 241,
- 232, 232, 248, 249, 242, 242, 278, 252, 249, 264,
- 257, 249, 243, 147, 263, 233, 244, 245, 250, 266,
- 231, 143, 269, 250, 147, 264, 250, 267, 147, 270,
- 271, 268, 146, 272, 276, 274, 151, 273, 281, 277,
- 156, 271, 275, 278, 279, 276, 147, 251, 282, 281,
-
- 152, 280, 283, 284, 157, 251, 286, 271, 276, 251,
- 285, 271, 258, 168, 276, 174, 171, 286, 271, 276,
- 254, 254, 271, 165, 171, 276, 287, 147, 171, 175,
- 289, 171, 269, 288, 171, 171, 292, 294, 297, 270,
- 290, 289, 182, 293, 291, 274, 272, 299, 294, 297,
- 298, 268, 275, 186, 186, 186, 183, 251, 299, 188,
- 186, 186, 302, 302, 302, 306, 194, 195, 186, 187,
- 195, 195, 186, 143, 196, 187, 205, 197, 187, 197,
- 309, 197, 187, 197, 254, 254, 187, 197, 305, 197,
- 307, 308, 197, 310, 340, 311, 197, 197, 197, 197,
-
- 312, 340, 313, 314, 351, 316, 197, 197, 197, 304,
- 315, 205, 197, 350, 197, 197, 317, 197, 197, 197,
- 197, 197, 205, 197, 318, 197, 319, 197, 320, 197,
- 253, 323, 321, 197, 253, 197, 197, 324, 197, 322,
- 197, 197, 197, 197, 197, 197, 197, 197, 325, 205,
- 218, 218, 218, 326, 327, 446, 197, 341, 197, 248,
- 249, 196, 220, 186, 186, 223, 223, 221, 341, 227,
- 232, 232, 232, 228, 229, 250, 147, 231, 187, 295,
- 296, 224, 225, 234, 232, 232, 233, 330, 330, 330,
- 236, 232, 232, 236, 232, 232, 445, 143, 237, 233,
-
- 335, 237, 444, 233, 251, 336, 233, 249, 249, 233,
- 226, 239, 239, 239, 241, 232, 232, 459, 459, 242,
- 242, 344, 344, 250, 443, 242, 242, 243, 147, 263,
- 233, 244, 245, 243, 332, 252, 249, 244, 245, 257,
- 249, 231, 264, 147, 384, 348, 197, 347, 353, 143,
- 352, 250, 266, 147, 347, 250, 348, 352, 264, 353,
- 342, 342, 358, 346, 365, 345, 355, 150, 359, 360,
- 150, 356, 345, 366, 251, 359, 349, 170, 342, 342,
- 360, 349, 355, 345, 251, 363, 150, 150, 350, 365,
- 171, 356, 371, 442, 349, 171, 373, 370, 170, 349,
-
- 380, 373, 367, 371, 370, 366, 350, 376, 377, 170,
- 170, 380, 382, 416, 367, 302, 302, 302, 218, 218,
- 218, 378, 205, 205, 383, 197, 386, 197, 197, 387,
- 197, 187, 197, 385, 197, 197, 247, 197, 197, 247,
- 197, 197, 197, 197, 197, 313, 314, 186, 314, 314,
- 186, 205, 205, 315, 171, 197, 388, 197, 197, 406,
- 389, 187, 304, 197, 187, 197, 197, 393, 390, 197,
- 391, 197, 205, 392, 197, 171, 197, 394, 197, 197,
- 197, 197, 197, 395, 326, 327, 327, 327, 367, 197,
- 403, 197, 196, 326, 327, 330, 330, 330, 236, 232,
-
- 232, 196, 239, 239, 239, 333, 237, 333, 264, 409,
- 401, 233, 402, 237, 233, 237, 150, 404, 266, 358,
- 150, 431, 345, 150, 264, 430, 412, 150, 401, 405,
- 402, 363, 414, 429, 350, 404, 376, 377, 428, 406,
- 345, 170, 332, 376, 377, 170, 351, 405, 405, 205,
- 378, 205, 350, 427, 417, 350, 197, 378, 197, 419,
- 197, 197, 197, 420, 197, 424, 421, 197, 422, 197,
- 425, 197, 426, 197, 423, 197, 197, 197, 197, 197,
- 205, 197, 432, 205, 197, 197, 197, 197, 419, 434,
- 409, 406, 197, 402, 197, 197, 433, 197, 412, 436,
-
- 405, 405, 375, 435, 437, 438, 436, 440, 439, 205,
- 171, 402, 197, 197, 197, 197, 205, 432, 205, 405,
- 197, 197, 197, 197, 197, 419, 197, 197, 441, 197,
- 434, 433, 416, 437, 438, 186, 438, 438, 186, 369,
- 197, 196, 197, 197, 435, 197, 197, 205, 448, 187,
- 205, 171, 187, 197, 205, 197, 171, 457, 197, 457,
- 197, 458, 197, 458, 197, 255, 259, 356, 255, 259,
- 351, 406, 346, 344, 403, 458, 400, 458, 34, 34,
+ 37, 34, 34, 34, 34, 34, 34, 121, 34, 121,
+
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 122, 34, 34, 34, 123, 124, 36, 34, 34,
+ 34, 125, 34, 34, 34, 125, 34, 34, 34, 37,
+ 34, 126, 127, 34, 34, 34, 128, 34, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+ 129, 34, 34, 34, 131, 35, 36, 34, 34, 34,
+ 34, 34, 34, 34, 34, 132, 34, 34, 37, 34,
+ 34, 34, 133, 34, 34, 134, 34, 134, 134, 134,
+
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 135, 134, 134, 134, 134, 136, 134, 134, 129,
+ 34, 34, 35, 36, 38, 35, 36, 161, 147, 141,
+ 177, 194, 166, 194, 178, 37, 181, 162, 39, 138,
+ 182, 139, 138, 142, 139, 34, 34, 35, 36, 34,
+ 34, 34, 34, 34, 34, 34, 34, 34, 34, 140,
+ 37, 140, 34, 34, 34, 34, 34, 140, 34, 140,
+ 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
+ 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
+ 140, 34, 34, 34, 145, 153, 141, 145, 440, 141,
+
+ 290, 291, 165, 171, 168, 168, 168, 141, 146, 154,
+ 142, 146, 162, 142, 169, 173, 146, 172, 170, 174,
+ 179, 142, 183, 183, 183, 185, 183, 183, 183, 183,
+ 183, 214, 251, 251, 180, 191, 192, 183, 184, 142,
+ 194, 184, 194, 193, 184, 191, 192, 183, 201, 197,
+ 194, 184, 194, 193, 198, 202, 346, 202, 255, 439,
+ 194, 184, 194, 203, 199, 345, 194, 200, 194, 194,
+ 194, 194, 194, 204, 205, 206, 194, 194, 194, 194,
+ 207, 194, 208, 194, 195, 209, 196, 194, 210, 194,
+ 438, 143, 194, 330, 194, 144, 211, 194, 331, 194,
+
+ 213, 147, 212, 248, 194, 148, 194, 215, 215, 215,
+ 217, 183, 183, 220, 220, 218, 255, 224, 229, 229,
+ 229, 225, 226, 250, 146, 228, 184, 250, 437, 221,
+ 222, 231, 229, 229, 230, 229, 229, 229, 233, 229,
+ 229, 236, 236, 236, 328, 142, 234, 230, 238, 229,
+ 229, 230, 234, 264, 230, 239, 239, 265, 223, 245,
+ 246, 248, 146, 240, 230, 249, 246, 241, 242, 254,
+ 246, 228, 260, 141, 261, 247, 269, 268, 145, 142,
+ 270, 247, 266, 146, 263, 247, 146, 142, 268, 267,
+ 261, 271, 146, 274, 273, 276, 153, 277, 272, 265,
+
+ 275, 278, 279, 161, 248, 273, 276, 281, 268, 280,
+ 154, 273, 268, 162, 248, 165, 273, 248, 281, 268,
+ 171, 168, 273, 268, 168, 162, 282, 273, 168, 146,
+ 284, 168, 266, 283, 172, 168, 168, 289, 287, 267,
+ 285, 284, 292, 179, 286, 288, 269, 271, 289, 294,
+ 293, 202, 434, 292, 272, 250, 194, 180, 194, 250,
+ 294, 183, 183, 183, 185, 183, 183, 297, 297, 297,
+ 433, 191, 192, 183, 192, 192, 183, 184, 142, 193,
+ 184, 301, 432, 184, 194, 300, 194, 184, 304, 306,
+ 184, 251, 251, 194, 307, 194, 302, 303, 194, 305,
+
+ 194, 336, 194, 194, 194, 194, 194, 308, 309, 311,
+ 328, 194, 336, 343, 299, 310, 202, 194, 234, 194,
+ 194, 312, 194, 194, 343, 194, 431, 202, 194, 313,
+ 194, 314, 194, 315, 194, 447, 318, 316, 194, 339,
+ 194, 194, 319, 194, 317, 194, 194, 194, 194, 194,
+ 194, 194, 194, 320, 202, 215, 215, 215, 321, 322,
+ 430, 194, 352, 194, 245, 246, 193, 217, 183, 183,
+ 220, 220, 218, 352, 224, 229, 229, 229, 225, 226,
+ 247, 146, 228, 184, 290, 291, 221, 222, 231, 229,
+ 229, 230, 325, 325, 325, 233, 229, 229, 233, 229,
+
+ 229, 447, 142, 234, 230, 339, 234, 428, 230, 248,
+ 168, 230, 246, 246, 230, 223, 236, 236, 236, 238,
+ 229, 229, 335, 358, 239, 239, 322, 322, 247, 335,
+ 239, 239, 240, 146, 260, 230, 241, 242, 240, 327,
+ 249, 246, 241, 242, 254, 246, 228, 261, 146, 194,
+ 202, 194, 342, 194, 142, 194, 247, 263, 146, 342,
+ 247, 337, 337, 261, 337, 337, 341, 404, 341, 340,
+ 348, 149, 421, 351, 149, 349, 168, 340, 361, 248,
+ 351, 344, 337, 337, 344, 361, 422, 340, 344, 248,
+ 348, 344, 346, 371, 149, 345, 421, 149, 356, 356,
+
+ 168, 349, 344, 168, 371, 362, 364, 357, 167, 344,
+ 422, 167, 358, 345, 364, 357, 362, 367, 368, 167,
+ 297, 297, 297, 167, 215, 215, 215, 358, 373, 202,
+ 375, 369, 194, 374, 377, 398, 184, 194, 376, 194,
+ 395, 194, 378, 194, 194, 420, 194, 194, 202, 194,
+ 194, 194, 194, 194, 194, 419, 194, 308, 309, 183,
+ 309, 309, 183, 202, 194, 310, 380, 299, 379, 194,
+ 383, 381, 194, 184, 418, 194, 184, 194, 194, 382,
+ 194, 384, 385, 387, 194, 386, 194, 417, 194, 194,
+ 194, 194, 321, 322, 194, 398, 194, 321, 322, 416,
+
+ 193, 325, 325, 325, 397, 193, 233, 229, 229, 236,
+ 236, 236, 341, 261, 234, 340, 398, 230, 396, 397,
+ 405, 396, 230, 263, 407, 346, 194, 149, 345, 261,
+ 366, 149, 402, 340, 168, 367, 368, 397, 346, 396,
+ 404, 167, 367, 368, 202, 167, 345, 345, 327, 369,
+ 202, 194, 408, 194, 412, 194, 369, 409, 413, 194,
+ 194, 194, 194, 194, 410, 194, 411, 194, 194, 194,
+ 194, 415, 194, 423, 194, 308, 309, 194, 202, 194,
+ 423, 202, 360, 310, 194, 407, 194, 414, 168, 194,
+ 194, 194, 194, 398, 398, 424, 425, 397, 427, 426,
+
+ 168, 349, 397, 194, 194, 194, 194, 202, 194, 407,
+ 194, 429, 346, 398, 194, 397, 194, 202, 202, 194,
+ 341, 194, 194, 194, 194, 194, 194, 339, 194, 424,
+ 425, 183, 395, 194, 194, 436, 194, 193, 425, 425,
+ 183, 194, 202, 194, 202, 184, 202, 445, 445, 392,
+ 244, 446, 446, 244, 184, 194, 252, 194, 194, 252,
+ 194, 256, 391, 390, 256, 446, 446, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 34, 40, 40, 40, 40, 40, 40,
-
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 55, 55, 55, 55,
- 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
- 55, 55, 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62, 68, 68,
- 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
- 68, 68, 68, 68, 150, 150, 150, 150, 399, 150,
- 150, 150, 150, 150, 150, 150, 150, 150, 398, 150,
- 155, 155, 397, 155, 155, 155, 155, 155, 155, 155,
-
- 155, 155, 155, 155, 155, 155, 163, 163, 396, 163,
- 163, 163, 300, 163, 163, 375, 163, 163, 163, 163,
- 163, 163, 170, 170, 170, 170, 170, 170, 170, 170,
- 170, 170, 170, 170, 170, 170, 170, 170, 178, 178,
- 369, 178, 178, 178, 351, 178, 178, 178, 178, 178,
- 178, 178, 178, 178, 189, 189, 343, 189, 189, 189,
- 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
- 197, 197, 197, 346, 197, 343, 338, 337, 256, 197,
- 197, 256, 197, 219, 219, 219, 245, 235, 229, 329,
- 222, 192, 301, 300, 193, 219, 230, 171, 230, 230,
-
- 166, 230, 230, 262, 230, 238, 238, 238, 256, 238,
- 235, 190, 222, 193, 238, 238, 192, 238, 240, 240,
- 240, 191, 190, 179, 171, 171, 166, 161, 459, 459,
- 240, 246, 246, 459, 459, 246, 459, 246, 246, 459,
- 246, 246, 459, 246, 265, 459, 459, 459, 265, 265,
- 265, 459, 265, 265, 303, 303, 303, 459, 459, 459,
- 459, 459, 459, 459, 303, 459, 303, 459, 303, 328,
- 328, 459, 459, 328, 459, 459, 459, 459, 328, 459,
- 459, 328, 231, 231, 459, 231, 331, 331, 331, 459,
- 459, 459, 459, 459, 459, 459, 331, 459, 331, 459,
-
- 331, 334, 459, 459, 459, 334, 459, 459, 459, 459,
- 334, 459, 459, 334, 339, 459, 339, 459, 459, 339,
- 342, 342, 342, 342, 342, 342, 342, 342, 342, 459,
- 342, 342, 342, 342, 342, 342, 345, 345, 345, 345,
+ 34, 34, 34, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40, 40, 47,
+
+ 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+ 47, 47, 47, 47, 47, 54, 54, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
+ 54, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 149, 149, 389, 149, 388, 149, 149,
+ 149, 149, 149, 149, 149, 149, 149, 295, 149, 152,
+ 152, 366, 152, 152, 152, 152, 152, 152, 152, 152,
+ 152, 152, 152, 152, 152, 160, 160, 360, 160, 160,
+
+ 160, 346, 160, 160, 338, 160, 160, 160, 160, 160,
+ 160, 167, 167, 167, 167, 167, 167, 167, 167, 167,
+ 167, 167, 167, 167, 167, 167, 167, 175, 175, 341,
+ 175, 175, 175, 338, 175, 175, 175, 175, 175, 175,
+ 175, 175, 175, 186, 186, 333, 186, 186, 186, 186,
+ 186, 186, 186, 186, 186, 186, 186, 186, 186, 194,
+ 194, 194, 332, 194, 253, 253, 242, 232, 194, 194,
+ 226, 194, 216, 216, 216, 324, 219, 189, 296, 295,
+ 190, 168, 163, 259, 216, 227, 253, 227, 227, 232,
+ 227, 227, 187, 227, 235, 235, 235, 219, 235, 190,
+
+ 189, 188, 187, 235, 235, 176, 235, 237, 237, 237,
+ 168, 168, 163, 158, 447, 447, 447, 447, 447, 237,
+ 243, 243, 447, 447, 243, 447, 243, 243, 447, 243,
+ 243, 447, 243, 262, 447, 447, 447, 262, 262, 262,
+ 447, 262, 262, 298, 298, 298, 447, 447, 447, 447,
+ 447, 447, 447, 298, 447, 298, 447, 298, 323, 323,
+ 447, 447, 323, 447, 447, 447, 447, 323, 447, 447,
+ 323, 228, 228, 447, 228, 326, 326, 326, 447, 447,
+ 447, 447, 447, 447, 447, 326, 447, 326, 447, 326,
+ 329, 447, 447, 447, 329, 447, 447, 447, 447, 329,
+
+ 447, 447, 329, 334, 447, 334, 447, 447, 334, 337,
+ 337, 337, 337, 337, 337, 337, 337, 337, 447, 337,
+ 337, 337, 337, 337, 337, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 344, 344, 344, 344, 344, 344, 344, 344, 344,
+ 447, 344, 344, 344, 344, 344, 344, 345, 345, 345,
345, 345, 345, 345, 345, 345, 345, 345, 345, 345,
- 345, 345, 349, 349, 349, 349, 349, 349, 349, 349,
- 349, 459, 349, 349, 349, 349, 349, 349, 350, 350,
+ 345, 345, 345, 347, 347, 347, 347, 347, 347, 347,
+ 347, 347, 347, 347, 347, 347, 347, 347, 347, 350,
350, 350, 350, 350, 350, 350, 350, 350, 350, 350,
- 350, 350, 350, 350, 354, 354, 354, 354, 354, 354,
- 354, 354, 354, 354, 354, 354, 354, 354, 354, 354,
-
- 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
- 357, 357, 357, 357, 357, 357, 361, 361, 361, 361,
- 361, 361, 361, 361, 361, 361, 361, 361, 361, 361,
- 361, 361, 362, 362, 362, 362, 362, 362, 362, 362,
- 362, 362, 362, 362, 362, 362, 362, 362, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 368, 368, 368, 368, 368, 368,
- 368, 368, 368, 368, 368, 368, 368, 368, 368, 368,
+
+ 350, 350, 350, 350, 350, 353, 353, 353, 353, 353,
+ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
+ 353, 354, 354, 354, 354, 354, 354, 354, 354, 354,
+ 354, 354, 354, 354, 354, 354, 354, 355, 355, 355,
+ 355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
+ 355, 355, 355, 359, 359, 359, 359, 359, 359, 359,
+ 359, 359, 359, 359, 359, 359, 359, 359, 359, 363,
+ 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
+ 363, 363, 363, 363, 363, 365, 365, 365, 365, 365,
+ 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
+
+ 365, 370, 370, 370, 370, 370, 370, 370, 370, 370,
+ 370, 370, 370, 370, 370, 370, 370, 372, 372, 372,
372, 372, 372, 372, 372, 372, 372, 372, 372, 372,
- 372, 372, 372, 372, 372, 372, 374, 374, 374, 374,
-
- 374, 374, 374, 374, 374, 374, 374, 374, 374, 374,
- 374, 374, 379, 379, 379, 379, 379, 379, 379, 379,
- 379, 379, 379, 379, 379, 379, 379, 379, 381, 381,
- 381, 381, 381, 381, 381, 381, 381, 381, 381, 381,
- 381, 381, 381, 381, 401, 401, 401, 401, 401, 401,
- 459, 401, 401, 459, 401, 401, 401, 401, 401, 401,
- 402, 402, 402, 402, 402, 402, 402, 402, 402, 402,
- 402, 402, 402, 402, 402, 402, 404, 404, 404, 404,
- 404, 404, 459, 404, 404, 459, 404, 404, 404, 404,
- 404, 404, 405, 405, 405, 405, 405, 405, 405, 405,
-
- 405, 405, 405, 405, 405, 405, 405, 405, 407, 407,
- 407, 407, 407, 407, 407, 407, 407, 407, 407, 407,
- 407, 407, 407, 407, 408, 408, 408, 408, 408, 408,
- 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
- 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
- 410, 410, 410, 410, 410, 410, 411, 411, 411, 411,
- 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
- 411, 411, 413, 413, 413, 413, 413, 413, 413, 413,
- 413, 413, 413, 413, 413, 413, 413, 413, 415, 415,
- 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
-
- 415, 415, 415, 415, 418, 418, 418, 418, 418, 418,
- 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
- 447, 447, 447, 447, 447, 447, 459, 447, 447, 459,
- 447, 447, 447, 447, 447, 447, 33, 459, 459, 459,
- 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
- 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
- 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
- 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
- 459, 459, 459, 459, 459, 459
+ 372, 372, 372, 393, 393, 393, 393, 393, 393, 447,
+ 393, 393, 447, 393, 393, 393, 393, 393, 393, 394,
+ 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
+ 394, 394, 394, 394, 394, 396, 396, 396, 396, 396,
+ 396, 447, 396, 396, 447, 396, 396, 396, 396, 396,
+ 396, 397, 397, 397, 397, 397, 397, 397, 397, 397,
+ 397, 397, 397, 397, 397, 397, 397, 399, 399, 399,
+
+ 399, 399, 399, 399, 399, 399, 399, 399, 399, 399,
+ 399, 399, 399, 400, 400, 400, 400, 400, 400, 400,
+ 400, 400, 400, 400, 400, 400, 400, 400, 400, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 406, 406, 406, 406, 406, 406, 406, 406, 406,
+ 406, 406, 406, 406, 406, 406, 406, 435, 435, 435,
+ 435, 435, 435, 447, 435, 435, 447, 435, 435, 435,
+ 435, 435, 435, 33, 447, 447, 447, 447, 447, 447,
+
+ 447, 447, 447, 447, 447, 447, 447, 447, 447, 447,
+ 447, 447, 447, 447, 447, 447, 447, 447, 447, 447,
+ 447, 447, 447, 447, 447, 447, 447, 447, 447, 447,
+ 447, 447, 447, 447, 447, 447, 447, 447, 447, 447,
+ 447, 447, 447
} ;
-static yyconst short int yy_chk[2087] =
+static yyconst short int yy_chk[2044] =
{ 0,
- 0, 240, 1, 1, 2, 2, 2, 3, 3, 240,
+ 0, 237, 1, 1, 2, 2, 2, 3, 3, 237,
3, 18, 4, 4, 4, 1, 4, 37, 2, 16,
- 3, 37, 5, 5, 16, 18, 4, 454, 3, 453,
+ 3, 37, 5, 5, 16, 18, 4, 442, 3, 441,
6, 6, 6, 16, 4, 5, 7, 7, 7, 8,
- 8, 8, 297, 5, 6, 20, 7, 9, 9, 8,
- 7, 297, 6, 8, 10, 10, 10, 11, 11, 20,
+ 8, 8, 292, 5, 6, 20, 7, 9, 9, 8,
+ 7, 292, 6, 8, 10, 10, 10, 11, 11, 20,
9, 12, 12, 12, 13, 13, 11, 22, 10, 24,
- 11, 12, 14, 14, 14, 12, 39, 13, 44, 451,
- 39, 22, 44, 24, 127, 127, 14, 15, 15, 15,
+ 11, 12, 14, 14, 14, 12, 39, 13, 43, 439,
+ 39, 22, 43, 24, 126, 126, 14, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
@@ -871,8 +861,8 @@ static yyconst short int yy_chk[2087] =
19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 21, 26, 28, 47, 32, 51,
- 54, 47, 59, 51, 54, 136, 59, 449, 136, 26,
+ 19, 19, 19, 19, 21, 26, 28, 46, 32, 50,
+ 53, 46, 58, 50, 53, 135, 58, 437, 135, 26,
28, 21, 32, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 23, 23, 23, 23, 23,
@@ -892,189 +882,185 @@ static yyconst short int yy_chk[2087] =
27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
- 27, 27, 29, 29, 30, 30, 30, 56, 61, 35,
- 72, 197, 61, 197, 72, 29, 74, 56, 30, 29,
- 74, 29, 30, 35, 30, 31, 31, 31, 31, 31,
+ 27, 27, 29, 29, 30, 30, 30, 55, 60, 35,
+ 71, 194, 60, 194, 71, 29, 73, 55, 30, 29,
+ 73, 29, 30, 35, 30, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
- 31, 31, 31, 31, 38, 41, 46, 49, 53, 132,
-
- 63, 179, 179, 60, 66, 66, 65, 67, 38, 41,
- 46, 49, 53, 60, 63, 65, 67, 60, 66, 65,
- 67, 69, 73, 75, 75, 75, 76, 76, 76, 77,
- 77, 77, 102, 102, 102, 69, 73, 446, 91, 75,
- 76, 91, 76, 91, 132, 77, 85, 85, 85, 86,
- 86, 86, 87, 87, 85, 87, 88, 86, 92, 89,
- 444, 92, 85, 92, 93, 86, 88, 94, 89, 88,
- 90, 89, 88, 89, 88, 93, 90, 93, 90, 94,
- 95, 94, 96, 96, 96, 98, 96, 97, 86, 98,
- 86, 98, 95, 99, 95, 97, 97, 142, 97, 106,
-
- 106, 97, 99, 443, 99, 103, 103, 103, 115, 108,
- 103, 142, 115, 108, 108, 106, 106, 108, 164, 103,
- 442, 103, 110, 110, 110, 111, 111, 111, 164, 112,
- 112, 112, 117, 117, 117, 118, 118, 118, 110, 111,
- 117, 111, 120, 126, 106, 112, 120, 126, 117, 119,
- 119, 119, 124, 124, 121, 121, 435, 125, 125, 141,
- 131, 131, 121, 119, 138, 119, 121, 121, 124, 141,
- 121, 125, 144, 125, 131, 141, 131, 143, 138, 144,
- 145, 143, 146, 147, 149, 148, 151, 147, 154, 152,
- 156, 145, 148, 152, 153, 149, 146, 124, 157, 154,
-
- 151, 153, 157, 158, 156, 131, 159, 160, 162, 138,
- 158, 167, 258, 168, 169, 174, 174, 159, 160, 162,
- 250, 250, 167, 168, 172, 169, 172, 168, 173, 174,
- 173, 175, 180, 172, 176, 177, 176, 177, 181, 180,
- 175, 173, 182, 176, 175, 184, 183, 185, 177, 181,
- 183, 433, 184, 186, 186, 186, 182, 258, 185, 188,
- 188, 188, 193, 193, 193, 200, 194, 194, 194, 186,
- 195, 195, 195, 188, 194, 188, 198, 200, 193, 200,
- 202, 198, 194, 198, 254, 254, 195, 199, 199, 199,
- 201, 201, 201, 203, 267, 204, 202, 203, 202, 203,
-
- 204, 267, 205, 205, 299, 206, 204, 206, 204, 193,
- 205, 207, 207, 299, 207, 208, 208, 208, 209, 303,
- 209, 303, 209, 210, 210, 210, 211, 211, 212, 211,
- 253, 215, 213, 215, 253, 215, 212, 216, 212, 213,
- 213, 205, 213, 205, 214, 216, 214, 216, 217, 214,
- 218, 218, 218, 219, 219, 431, 217, 268, 217, 248,
- 248, 219, 220, 220, 220, 223, 223, 220, 268, 230,
- 232, 232, 232, 230, 230, 248, 220, 230, 220, 295,
- 295, 223, 223, 234, 234, 234, 232, 235, 235, 235,
- 236, 236, 236, 238, 238, 238, 430, 234, 236, 234,
-
- 260, 238, 429, 235, 248, 260, 236, 249, 249, 238,
- 223, 239, 239, 239, 241, 241, 241, 270, 275, 242,
- 242, 270, 275, 249, 428, 246, 246, 242, 241, 263,
- 241, 242, 242, 246, 235, 252, 252, 246, 246, 257,
- 257, 246, 265, 263, 309, 273, 309, 272, 278, 252,
- 277, 252, 265, 257, 272, 257, 273, 277, 265, 278,
- 279, 280, 281, 379, 287, 281, 279, 280, 282, 283,
- 279, 280, 379, 287, 263, 282, 284, 287, 279, 280,
- 283, 285, 284, 281, 257, 286, 284, 285, 286, 288,
- 291, 285, 291, 427, 284, 290, 292, 290, 288, 285,
-
- 298, 293, 288, 291, 290, 292, 286, 296, 296, 292,
- 293, 298, 306, 415, 293, 302, 302, 302, 304, 304,
- 304, 296, 305, 307, 308, 305, 311, 305, 306, 312,
- 306, 302, 310, 310, 310, 307, 478, 307, 308, 478,
- 308, 312, 311, 312, 311, 313, 313, 313, 314, 314,
- 314, 316, 317, 313, 413, 317, 314, 317, 318, 405,
- 318, 313, 302, 316, 314, 316, 319, 323, 319, 320,
- 320, 320, 321, 322, 321, 366, 322, 324, 322, 323,
- 324, 323, 324, 325, 326, 326, 327, 327, 366, 325,
- 402, 325, 326, 328, 328, 330, 330, 330, 331, 331,
-
- 331, 328, 332, 332, 332, 333, 331, 334, 339, 353,
- 352, 330, 353, 333, 331, 334, 352, 359, 339, 357,
- 352, 400, 357, 359, 339, 399, 360, 359, 352, 360,
- 353, 362, 370, 398, 362, 359, 376, 376, 397, 380,
- 357, 370, 330, 377, 377, 370, 381, 360, 380, 382,
- 376, 383, 362, 396, 378, 381, 382, 377, 382, 384,
- 383, 384, 383, 385, 386, 390, 386, 387, 387, 387,
- 391, 385, 393, 385, 389, 389, 392, 389, 392, 390,
- 392, 390, 403, 395, 391, 393, 391, 393, 394, 409,
- 408, 418, 394, 408, 394, 395, 403, 395, 411, 417,
-
- 418, 411, 374, 409, 419, 419, 417, 421, 420, 422,
- 372, 408, 420, 421, 420, 421, 423, 432, 425, 411,
- 423, 422, 423, 422, 424, 424, 424, 425, 426, 425,
- 434, 432, 371, 437, 437, 437, 438, 438, 438, 368,
- 426, 437, 426, 419, 434, 419, 439, 441, 439, 437,
- 448, 367, 438, 440, 440, 440, 364, 455, 441, 457,
- 441, 455, 448, 457, 448, 479, 480, 355, 479, 480,
- 350, 348, 345, 343, 341, 455, 338, 457, 460, 460,
- 460, 460, 460, 460, 460, 460, 460, 460, 460, 460,
- 460, 460, 460, 460, 461, 461, 461, 461, 461, 461,
-
- 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
- 462, 462, 462, 462, 462, 462, 462, 462, 462, 462,
- 462, 462, 462, 462, 462, 462, 463, 463, 463, 463,
- 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
- 463, 463, 464, 464, 464, 464, 464, 464, 464, 464,
- 464, 464, 464, 464, 464, 464, 464, 464, 465, 465,
- 465, 465, 465, 465, 465, 465, 465, 465, 465, 465,
- 465, 465, 465, 465, 466, 466, 466, 466, 337, 466,
- 466, 466, 466, 466, 466, 466, 466, 466, 336, 466,
- 467, 467, 335, 467, 467, 467, 467, 467, 467, 467,
-
- 467, 467, 467, 467, 467, 467, 468, 468, 329, 468,
- 468, 468, 301, 468, 468, 294, 468, 468, 468, 468,
- 468, 468, 469, 469, 469, 469, 469, 469, 469, 469,
- 469, 469, 469, 469, 469, 469, 469, 469, 470, 470,
- 289, 470, 470, 470, 276, 470, 470, 470, 470, 470,
- 470, 470, 470, 470, 471, 471, 274, 471, 471, 471,
- 471, 471, 471, 471, 471, 471, 471, 471, 471, 471,
- 472, 472, 472, 271, 472, 269, 262, 261, 256, 472,
- 472, 251, 472, 473, 473, 473, 244, 233, 228, 222,
- 221, 192, 190, 189, 187, 473, 474, 170, 474, 474,
-
- 165, 474, 474, 137, 474, 475, 475, 475, 130, 475,
- 116, 114, 104, 84, 475, 475, 83, 475, 476, 476,
- 476, 81, 79, 71, 64, 62, 58, 52, 33, 0,
- 476, 477, 477, 0, 0, 477, 0, 477, 477, 0,
- 477, 477, 0, 477, 481, 0, 0, 0, 481, 481,
- 481, 0, 481, 481, 482, 482, 482, 0, 0, 0,
- 0, 0, 0, 0, 482, 0, 482, 0, 482, 483,
- 483, 0, 0, 483, 0, 0, 0, 0, 483, 0,
- 0, 483, 484, 484, 0, 484, 485, 485, 485, 0,
- 0, 0, 0, 0, 0, 0, 485, 0, 485, 0,
-
- 485, 486, 0, 0, 0, 486, 0, 0, 0, 0,
- 486, 0, 0, 486, 487, 0, 487, 0, 0, 487,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 0,
- 488, 488, 488, 488, 488, 488, 489, 489, 489, 489,
+ 31, 31, 31, 31, 38, 45, 48, 52, 434, 62,
+
+ 176, 176, 59, 65, 65, 64, 66, 68, 38, 45,
+ 48, 52, 59, 62, 64, 66, 59, 65, 64, 66,
+ 72, 68, 74, 74, 74, 75, 75, 75, 76, 76,
+ 76, 98, 247, 247, 72, 84, 84, 84, 74, 75,
+ 98, 75, 98, 84, 76, 85, 85, 85, 88, 86,
+ 86, 84, 86, 85, 87, 92, 294, 88, 131, 432,
+ 88, 85, 88, 89, 87, 294, 92, 87, 92, 89,
+ 87, 89, 87, 90, 91, 93, 90, 91, 90, 91,
+ 94, 95, 95, 95, 85, 95, 85, 93, 96, 93,
+ 431, 114, 94, 257, 94, 114, 96, 96, 257, 96,
+
+ 97, 119, 96, 131, 97, 119, 97, 101, 101, 101,
+ 102, 102, 102, 105, 105, 102, 255, 107, 109, 109,
+ 109, 107, 107, 125, 102, 107, 102, 125, 430, 105,
+ 105, 110, 110, 110, 109, 111, 111, 111, 116, 116,
+ 116, 117, 117, 117, 328, 110, 116, 110, 118, 118,
+ 118, 111, 328, 142, 116, 120, 120, 142, 105, 123,
+ 123, 255, 118, 120, 118, 124, 124, 120, 120, 130,
+ 130, 120, 137, 141, 140, 123, 146, 144, 145, 124,
+ 146, 124, 143, 130, 140, 130, 137, 141, 144, 143,
+ 140, 147, 145, 150, 148, 151, 153, 154, 147, 422,
+
+ 150, 154, 155, 161, 123, 148, 151, 156, 157, 155,
+ 153, 159, 164, 161, 130, 165, 166, 137, 156, 157,
+ 171, 171, 159, 164, 169, 165, 169, 166, 170, 165,
+ 170, 172, 177, 169, 171, 174, 173, 174, 173, 177,
+ 172, 170, 178, 179, 172, 173, 180, 181, 174, 182,
+ 180, 195, 420, 178, 181, 250, 195, 179, 195, 250,
+ 182, 183, 183, 183, 185, 185, 185, 190, 190, 190,
+ 419, 191, 191, 191, 192, 192, 192, 183, 185, 191,
+ 185, 197, 418, 190, 196, 196, 196, 191, 199, 201,
+ 192, 251, 251, 197, 201, 197, 198, 198, 198, 200,
+
+ 201, 265, 201, 200, 199, 200, 199, 202, 202, 203,
+ 329, 203, 265, 270, 190, 202, 204, 204, 329, 204,
+ 205, 205, 205, 206, 270, 206, 417, 206, 207, 207,
+ 207, 208, 208, 209, 208, 267, 212, 210, 212, 267,
+ 212, 209, 213, 209, 210, 210, 202, 210, 202, 211,
+ 213, 211, 213, 214, 211, 215, 215, 215, 216, 216,
+ 416, 214, 278, 214, 245, 245, 216, 217, 217, 217,
+ 220, 220, 217, 278, 227, 229, 229, 229, 227, 227,
+ 245, 217, 227, 217, 290, 290, 220, 220, 231, 231,
+ 231, 229, 232, 232, 232, 233, 233, 233, 235, 235,
+
+ 235, 272, 231, 233, 231, 272, 235, 414, 232, 245,
+ 357, 233, 246, 246, 235, 220, 236, 236, 236, 238,
+ 238, 238, 264, 357, 239, 239, 322, 322, 246, 264,
+ 243, 243, 239, 238, 260, 238, 239, 239, 243, 232,
+ 249, 249, 243, 243, 254, 254, 243, 262, 260, 298,
+ 300, 298, 269, 300, 249, 300, 249, 262, 254, 269,
+ 254, 274, 275, 262, 274, 275, 276, 403, 370, 276,
+ 274, 275, 395, 277, 274, 275, 285, 370, 285, 260,
+ 277, 279, 274, 275, 279, 285, 395, 276, 280, 254,
+ 279, 280, 281, 293, 279, 281, 421, 280, 282, 283,
+
+ 401, 280, 279, 286, 293, 286, 287, 282, 283, 280,
+ 421, 282, 283, 281, 288, 287, 286, 291, 291, 287,
+ 297, 297, 297, 288, 299, 299, 299, 288, 301, 302,
+ 304, 291, 304, 303, 306, 397, 297, 305, 305, 305,
+ 394, 302, 307, 302, 301, 392, 301, 303, 312, 303,
+ 306, 312, 306, 312, 307, 391, 307, 308, 308, 308,
+ 309, 309, 309, 311, 313, 308, 313, 297, 309, 314,
+ 316, 314, 316, 308, 390, 311, 309, 311, 315, 315,
+ 315, 317, 318, 320, 317, 319, 317, 389, 319, 320,
+ 319, 320, 321, 321, 318, 371, 318, 323, 323, 388,
+
+ 321, 325, 325, 325, 371, 323, 326, 326, 326, 327,
+ 327, 327, 350, 334, 326, 350, 352, 325, 351, 352,
+ 369, 351, 326, 334, 375, 354, 375, 351, 354, 334,
+ 365, 351, 361, 350, 363, 367, 367, 352, 372, 351,
+ 362, 361, 368, 368, 373, 361, 354, 372, 325, 367,
+ 374, 373, 376, 373, 381, 377, 368, 377, 382, 374,
+ 376, 374, 376, 378, 378, 378, 380, 380, 381, 380,
+ 381, 385, 382, 405, 382, 383, 383, 384, 387, 384,
+ 405, 384, 359, 383, 385, 386, 385, 383, 358, 386,
+ 387, 386, 387, 406, 400, 407, 407, 400, 409, 408,
+
+ 355, 348, 406, 408, 409, 408, 409, 410, 412, 412,
+ 412, 415, 345, 343, 383, 400, 383, 413, 411, 410,
+ 340, 410, 411, 415, 411, 415, 413, 338, 413, 424,
+ 424, 424, 336, 426, 407, 426, 407, 424, 425, 425,
+ 425, 427, 427, 427, 429, 424, 436, 443, 445, 333,
+ 466, 443, 445, 466, 425, 429, 467, 429, 436, 467,
+ 436, 468, 332, 331, 468, 443, 445, 448, 448, 448,
+ 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
+ 448, 448, 448, 449, 449, 449, 449, 449, 449, 449,
+ 449, 449, 449, 449, 449, 449, 449, 449, 449, 450,
+
+ 450, 450, 450, 450, 450, 450, 450, 450, 450, 450,
+ 450, 450, 450, 450, 450, 451, 451, 451, 451, 451,
+ 451, 451, 451, 451, 451, 451, 451, 451, 451, 451,
+ 451, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 453, 453, 453,
+ 453, 453, 453, 453, 453, 453, 453, 453, 453, 453,
+ 453, 453, 453, 454, 454, 330, 454, 324, 454, 454,
+ 454, 454, 454, 454, 454, 454, 454, 296, 454, 455,
+ 455, 289, 455, 455, 455, 455, 455, 455, 455, 455,
+ 455, 455, 455, 455, 455, 456, 456, 284, 456, 456,
+
+ 456, 273, 456, 456, 271, 456, 456, 456, 456, 456,
+ 456, 457, 457, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 458, 458, 268,
+ 458, 458, 458, 266, 458, 458, 458, 458, 458, 458,
+ 458, 458, 458, 459, 459, 259, 459, 459, 459, 459,
+ 459, 459, 459, 459, 459, 459, 459, 459, 459, 460,
+ 460, 460, 258, 460, 253, 248, 241, 230, 460, 460,
+ 225, 460, 461, 461, 461, 219, 218, 189, 187, 186,
+ 184, 167, 162, 136, 461, 462, 129, 462, 462, 115,
+ 462, 462, 113, 462, 463, 463, 463, 103, 463, 83,
+
+ 82, 80, 78, 463, 463, 70, 463, 464, 464, 464,
+ 63, 61, 57, 51, 33, 0, 0, 0, 0, 464,
+ 465, 465, 0, 0, 465, 0, 465, 465, 0, 465,
+ 465, 0, 465, 469, 0, 0, 0, 469, 469, 469,
+ 0, 469, 469, 470, 470, 470, 0, 0, 0, 0,
+ 0, 0, 0, 470, 0, 470, 0, 470, 471, 471,
+ 0, 0, 471, 0, 0, 0, 0, 471, 0, 0,
+ 471, 472, 472, 0, 472, 473, 473, 473, 0, 0,
+ 0, 0, 0, 0, 0, 473, 0, 473, 0, 473,
+ 474, 0, 0, 0, 474, 0, 0, 0, 0, 474,
+
+ 0, 0, 474, 475, 0, 475, 0, 0, 475, 476,
+ 476, 476, 476, 476, 476, 476, 476, 476, 0, 476,
+ 476, 476, 476, 476, 476, 477, 477, 477, 477, 477,
+ 477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
+ 477, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 0, 478, 478, 478, 478, 478, 478, 479, 479, 479,
+ 479, 479, 479, 479, 479, 479, 479, 479, 479, 479,
+ 479, 479, 479, 480, 480, 480, 480, 480, 480, 480,
+ 480, 480, 480, 480, 480, 480, 480, 480, 480, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 481, 481, 482, 482, 482, 482, 482,
+ 482, 482, 482, 482, 482, 482, 482, 482, 482, 482,
+ 482, 483, 483, 483, 483, 483, 483, 483, 483, 483,
+ 483, 483, 483, 483, 483, 483, 483, 484, 484, 484,
+ 484, 484, 484, 484, 484, 484, 484, 484, 484, 484,
+ 484, 484, 484, 485, 485, 485, 485, 485, 485, 485,
+ 485, 485, 485, 485, 485, 485, 485, 485, 485, 486,
+ 486, 486, 486, 486, 486, 486, 486, 486, 486, 486,
+ 486, 486, 486, 486, 486, 487, 487, 487, 487, 487,
+ 487, 487, 487, 487, 487, 487, 487, 487, 487, 487,
+
+ 487, 488, 488, 488, 488, 488, 488, 488, 488, 488,
+ 488, 488, 488, 488, 488, 488, 488, 489, 489, 489,
489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
- 489, 489, 490, 490, 490, 490, 490, 490, 490, 490,
- 490, 0, 490, 490, 490, 490, 490, 490, 491, 491,
+ 489, 489, 489, 490, 490, 490, 490, 490, 490, 0,
+ 490, 490, 0, 490, 490, 490, 490, 490, 490, 491,
491, 491, 491, 491, 491, 491, 491, 491, 491, 491,
- 491, 491, 491, 491, 492, 492, 492, 492, 492, 492,
- 492, 492, 492, 492, 492, 492, 492, 492, 492, 492,
+ 491, 491, 491, 491, 491, 492, 492, 492, 492, 492,
+ 492, 0, 492, 492, 0, 492, 492, 492, 492, 492,
+ 492, 493, 493, 493, 493, 493, 493, 493, 493, 493,
+ 493, 493, 493, 493, 493, 493, 493, 494, 494, 494,
- 493, 493, 493, 493, 493, 493, 493, 493, 493, 493,
- 493, 493, 493, 493, 493, 493, 494, 494, 494, 494,
494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
- 494, 494, 495, 495, 495, 495, 495, 495, 495, 495,
- 495, 495, 495, 495, 495, 495, 495, 495, 496, 496,
+ 494, 494, 494, 495, 495, 495, 495, 495, 495, 495,
+ 495, 495, 495, 495, 495, 495, 495, 495, 495, 496,
496, 496, 496, 496, 496, 496, 496, 496, 496, 496,
- 496, 496, 496, 496, 497, 497, 497, 497, 497, 497,
+ 496, 496, 496, 496, 496, 497, 497, 497, 497, 497,
497, 497, 497, 497, 497, 497, 497, 497, 497, 497,
- 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
- 498, 498, 498, 498, 498, 498, 499, 499, 499, 499,
-
- 499, 499, 499, 499, 499, 499, 499, 499, 499, 499,
- 499, 499, 500, 500, 500, 500, 500, 500, 500, 500,
- 500, 500, 500, 500, 500, 500, 500, 500, 501, 501,
- 501, 501, 501, 501, 501, 501, 501, 501, 501, 501,
- 501, 501, 501, 501, 502, 502, 502, 502, 502, 502,
- 0, 502, 502, 0, 502, 502, 502, 502, 502, 502,
- 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
- 503, 503, 503, 503, 503, 503, 504, 504, 504, 504,
- 504, 504, 0, 504, 504, 0, 504, 504, 504, 504,
- 504, 504, 505, 505, 505, 505, 505, 505, 505, 505,
-
- 505, 505, 505, 505, 505, 505, 505, 505, 506, 506,
- 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
- 506, 506, 506, 506, 507, 507, 507, 507, 507, 507,
- 507, 507, 507, 507, 507, 507, 507, 507, 507, 507,
- 508, 508, 508, 508, 508, 508, 508, 508, 508, 508,
- 508, 508, 508, 508, 508, 508, 509, 509, 509, 509,
- 509, 509, 509, 509, 509, 509, 509, 509, 509, 509,
- 509, 509, 510, 510, 510, 510, 510, 510, 510, 510,
- 510, 510, 510, 510, 510, 510, 510, 510, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
-
- 511, 511, 511, 511, 512, 512, 512, 512, 512, 512,
- 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
- 513, 513, 513, 513, 513, 513, 0, 513, 513, 0,
- 513, 513, 513, 513, 513, 513, 459, 459, 459, 459,
- 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
- 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
- 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
- 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
- 459, 459, 459, 459, 459, 459
+ 497, 498, 498, 498, 498, 498, 498, 498, 498, 498,
+ 498, 498, 498, 498, 498, 498, 498, 499, 499, 499,
+ 499, 499, 499, 0, 499, 499, 0, 499, 499, 499,
+ 499, 499, 499, 447, 447, 447, 447, 447, 447, 447,
+
+ 447, 447, 447, 447, 447, 447, 447, 447, 447, 447,
+ 447, 447, 447, 447, 447, 447, 447, 447, 447, 447,
+ 447, 447, 447, 447, 447, 447, 447, 447, 447, 447,
+ 447, 447, 447, 447, 447, 447, 447, 447, 447, 447,
+ 447, 447, 447
} ;
static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
@@ -1105,7 +1091,7 @@ char *yytext;
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -1179,7 +1165,7 @@ typedef QList CodeVarList;
*/
static CodeClassList g_codeClassList;
-static CodeClassDict g_codeClassDict(17);
+static CodeClassDict g_codeClassDict(1009);
static CodeVarList g_codeVarList;
static CodeVarList g_codeParmList;
static const char * g_inputString; //!< the code fragment as text
@@ -1305,10 +1291,10 @@ static void writeMultiLineCodeLink(OutputList &ol,
static void addType()
{
if (g_name=="const") { g_name.resize(0); return; }
- if (g_type.length()) g_type += ' ' ;
+ if (!g_type.isEmpty()) g_type += ' ' ;
g_type += g_name ;
g_name.resize(0) ;
- if (g_type.length()) g_type += ' ' ;
+ if (!g_type.isEmpty()) g_type += ' ' ;
g_type += g_args ;
g_args.resize(0) ;
}
@@ -1316,7 +1302,7 @@ static void addType()
static void addParmType()
{
if (g_parmName=="const") { g_parmName.resize(0); return; }
- if (g_parmType.length()) g_parmType += ' ' ;
+ if (!g_parmType.isEmpty()) g_parmType += ' ' ;
g_parmType += g_parmName ;
g_parmName.resize(0) ;
}
@@ -1338,7 +1324,7 @@ static void addVariable()
{
g_cvd.name=g_name.copy().simplifyWhiteSpace();
g_cvd.type=g_type.copy().simplifyWhiteSpace();
- if (g_type.length()==0)
+ if (g_type.isEmpty())
return;
else if ((getClass(g_cvd.type)) || (g_codeClassDict[g_cvd.type]))
{
@@ -1351,7 +1337,7 @@ static void addParameter()
{
g_cvd.name=g_parmName.copy().simplifyWhiteSpace();
g_cvd.type=g_parmType.copy().simplifyWhiteSpace();
- if (g_cvd.type.length()==0)
+ if (g_cvd.type.isEmpty())
return;
else if ((getClass(g_cvd.type)) || (g_codeClassDict[g_cvd.type]))
{
@@ -1363,7 +1349,7 @@ static void addParameter()
static void generateClassLink(OutputList &ol,char *clName)
{
QCString className=clName;
- if (className.length()==0) return;
+ if (className.isEmpty()) return;
ClassDef *cd;
if ((cd=getClass(className)) && cd->isLinkable())
{
@@ -1375,10 +1361,14 @@ static void generateClassLink(OutputList &ol,char *clName)
// g_exampleFile.data());
if (cd->addExample(anchor,g_exampleName,g_exampleFile))
{
- bool latexOn = ol.isEnabled(OutputGenerator::Latex);
- if (latexOn) ol.disable(OutputGenerator::Latex);
+ ol.pushGeneratorState();
+ //bool latexOn = ol.isEnabled(OutputGenerator::Latex);
+ //if (latexOn) ol.disable(OutputGenerator::Latex);
+ ol.disable(OutputGenerator::Latex);
+ ol.disable(OutputGenerator::RTF);
ol.writeAnchor(anchor);
- if (latexOn) ol.enable(OutputGenerator::Latex);
+ //if (latexOn) ol.enable(OutputGenerator::Latex);
+ ol.popGeneratorState();
g_anchorCount++;
}
}
@@ -1413,10 +1403,13 @@ static bool getLink(const char *className,
// g_exampleFile.data());
if (md->addExample(anchor,g_exampleName,g_exampleFile))
{
- bool latexEnabled = result.isEnabled(OutputGenerator::Latex);
- if (latexEnabled) result.disable(OutputGenerator::Latex);
+ //bool latexEnabled = result.isEnabled(OutputGenerator::Latex);
+ result.pushGeneratorState();
+ //if (latexEnabled) result.disable(OutputGenerator::Latex);
+ result.disable(OutputGenerator::Latex);
result.writeAnchor(anchor);
- if (latexEnabled) result.enable(OutputGenerator::Latex);
+ result.popGeneratorState();
+ //if (latexEnabled) result.enable(OutputGenerator::Latex);
g_anchorCount++;
}
}
@@ -1439,7 +1432,7 @@ static bool getLink(const char *className,
static ClassDef *stripClassName(const char *s)
{
QCString tmp=s;
- QRegExp re("[a-z_A-Z][a-z_A-Z0-9]*");
+ static const QRegExp re("[a-z_A-Z][a-z_A-Z0-9:]*");
int p=0,i,l;
while ((i=re.match(tmp,p,&l))!=-1)
{
@@ -1577,7 +1570,7 @@ static void generateFunctionLink(OutputList &ol,char *funcName)
locFunc=locFunc.right(locFunc.length()-i-2);
}
//printf("generateFunctionLink(%s) classScope=%s\n",locFunc.data(),locScope.data());
- if (locScope.length()>0 && (ccd=g_codeClassDict[locScope]))
+ if (!locScope.isEmpty() && (ccd=g_codeClassDict[locScope]))
{
//printf("using classScope %s\n",g_classScope.data());
char *s=ccd->bases.first();
@@ -1811,7 +1804,7 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 554 "code.l"
+#line 561 "code.l"
@@ -1862,14 +1855,14 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 460 )
+ if ( yy_current_state >= 448 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
*yy_state_ptr++ = yy_current_state;
++yy_cp;
}
- while ( yy_base[yy_current_state] != 2037 );
+ while ( yy_base[yy_current_state] != 1994 );
yy_find_action:
yy_current_state = *--yy_state_ptr;
@@ -1920,12 +1913,12 @@ do_action: /* This label is used only to access EOF actions. */
{ /* beginning of action switch */
case 1:
YY_RULE_SETUP
-#line 556 "code.l"
+#line 563 "code.l"
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 557 "code.l"
+#line 564 "code.l"
{
g_code->codify(yytext);
BEGIN( ReadInclude );
@@ -1933,7 +1926,7 @@ YY_RULE_SETUP
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 561 "code.l"
+#line 568 "code.l"
{
codifyLines(yytext);
//g_code->codify(yytext);
@@ -1942,7 +1935,7 @@ YY_RULE_SETUP
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 566 "code.l"
+#line 573 "code.l"
{
//FileInfo *f;
bool ambig;
@@ -1965,7 +1958,7 @@ YY_RULE_SETUP
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 585 "code.l"
+#line 592 "code.l"
{
g_code->codify(yytext);
BEGIN( SkipCPP ) ;
@@ -1973,21 +1966,21 @@ YY_RULE_SETUP
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 589 "code.l"
+#line 596 "code.l"
{
g_code->codify(yytext);
}
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 592 "code.l"
+#line 599 "code.l"
{
codifyLines(yytext);
}
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 595 "code.l"
+#line 602 "code.l"
{
codifyLines(yytext);
BEGIN( Body ) ;
@@ -1995,14 +1988,14 @@ YY_RULE_SETUP
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 599 "code.l"
+#line 606 "code.l"
{
g_code->codify(yytext);
}
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 602 "code.l"
+#line 609 "code.l"
{
g_code->codify(yytext);
g_curlyCount++;
@@ -2012,7 +2005,7 @@ YY_RULE_SETUP
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 608 "code.l"
+#line 615 "code.l"
{
g_code->codify(yytext);
g_inClass=FALSE;
@@ -2025,7 +2018,7 @@ YY_RULE_SETUP
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 617 "code.l"
+#line 624 "code.l"
{
g_code->codify(yytext);
BEGIN( Body );
@@ -2033,7 +2026,7 @@ YY_RULE_SETUP
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 621 "code.l"
+#line 628 "code.l"
{
addType();
g_code->codify(yytext);
@@ -2041,7 +2034,7 @@ YY_RULE_SETUP
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 625 "code.l"
+#line 632 "code.l"
{
g_ccd.name=yytext;
addType();
@@ -2050,7 +2043,7 @@ YY_RULE_SETUP
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 630 "code.l"
+#line 637 "code.l"
{
codifyLines(yytext);
BEGIN( Bases );
@@ -2058,12 +2051,12 @@ YY_RULE_SETUP
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 634 "code.l"
+#line 641 "code.l"
{
g_code->codify(yytext);
g_curlyCount++;
g_inClass=TRUE;
- if (g_ccd.name.length()>0)
+ if (!g_ccd.name.isEmpty())
{
g_classScope=g_ccd.name.copy();
CodeClassDef *cd=new CodeClassDef(g_ccd);
@@ -2075,35 +2068,35 @@ YY_RULE_SETUP
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 647 "code.l"
+#line 654 "code.l"
{
g_code->codify(yytext);
}
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 650 "code.l"
+#line 657 "code.l"
{
g_code->codify(yytext);
}
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 653 "code.l"
+#line 660 "code.l"
{
g_code->codify(yytext);
}
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 656 "code.l"
+#line 663 "code.l"
{
g_code->codify(yytext);
}
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 659 "code.l"
+#line 666 "code.l"
{
//printf("%s:addBase(%s)\n",g_ccd.name.data(),yytext);
g_ccd.bases.inSort(yytext);
@@ -2112,7 +2105,7 @@ YY_RULE_SETUP
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 664 "code.l"
+#line 671 "code.l"
{
g_code->codify(yytext);
g_sharpCount=1;
@@ -2121,7 +2114,7 @@ YY_RULE_SETUP
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 669 "code.l"
+#line 676 "code.l"
{
g_code->codify(yytext);
++g_sharpCount;
@@ -2129,7 +2122,7 @@ YY_RULE_SETUP
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 673 "code.l"
+#line 680 "code.l"
{
g_code->codify(yytext);
if (--g_sharpCount<=0)
@@ -2138,7 +2131,7 @@ YY_RULE_SETUP
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 678 "code.l"
+#line 685 "code.l"
{
g_code->codify(yytext);
}
@@ -2148,7 +2141,7 @@ case 26:
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 683 "code.l"
+#line 690 "code.l"
{
codifyLines(yytext);
g_name.resize(0);g_type.resize(0);
@@ -2156,7 +2149,7 @@ YY_RULE_SETUP
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 687 "code.l"
+#line 694 "code.l"
{
codifyLines(yytext);
g_name.resize(0);g_type.resize(0);
@@ -2171,7 +2164,7 @@ YY_RULE_SETUP
*/
case 28:
YY_RULE_SETUP
-#line 698 "code.l"
+#line 705 "code.l"
{
generateClassLink(*g_code,yytext);
//codifyLines(yytext);
@@ -2181,10 +2174,10 @@ YY_RULE_SETUP
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 704 "code.l"
+#line 711 "code.l"
{
addType();
- //if (type.length()==0)
+ //if (type.isEmpty())
QCString tmp=yytext;
generateFunctionLink(*g_code,yytext);
//else
@@ -2197,7 +2190,7 @@ YY_RULE_SETUP
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 716 "code.l"
+#line 723 "code.l"
{
g_code->codify(yytext);
g_lastStringContext=YY_START;
@@ -2206,21 +2199,21 @@ YY_RULE_SETUP
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 721 "code.l"
+#line 728 "code.l"
{
g_code->codify(yytext);
}
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 724 "code.l"
+#line 731 "code.l"
{
g_code->codify(yytext);
}
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 727 "code.l"
+#line 734 "code.l"
{
g_code->codify(yytext);
BEGIN( g_lastStringContext );
@@ -2228,14 +2221,14 @@ YY_RULE_SETUP
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 731 "code.l"
+#line 738 "code.l"
{
g_code->codify(yytext);
}
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 734 "code.l"
+#line 741 "code.l"
{
g_code->codify(yytext);
g_name.resize(0);g_type.resize(0);
@@ -2243,24 +2236,29 @@ YY_RULE_SETUP
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 738 "code.l"
+#line 745 "code.l"
{
g_code->codify(yytext);
}
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 741 "code.l"
+#line 748 "code.l"
+{ g_code->codify(yytext); }
+ YY_BREAK
+case 38:
+YY_RULE_SETUP
+#line 749 "code.l"
{
g_code->codify(yytext);
BEGIN( MemberCall );
}
YY_BREAK
-case 38:
+case 39:
YY_RULE_SETUP
-#line 745 "code.l"
+#line 753 "code.l"
{
- if (g_name.length()>0)
+ if (!g_name.isEmpty())
generateMemberLink(*g_code,g_name,yytext);
else
g_code->codify(yytext);
@@ -2269,9 +2267,9 @@ YY_RULE_SETUP
BEGIN(FuncCall);
}
YY_BREAK
-case 39:
+case 40:
YY_RULE_SETUP
-#line 754 "code.l"
+#line 762 "code.l"
{
g_code->codify(yytext);
g_type.resize(0);
@@ -2279,54 +2277,54 @@ YY_RULE_SETUP
BEGIN(Body);
}
YY_BREAK
-case 40:
+case 41:
YY_RULE_SETUP
-#line 760 "code.l"
+#line 768 "code.l"
{
g_code->codify(yytext);
- if (g_type.length()>0)
+ if (!g_type.isEmpty())
addVariable();
g_name.resize(0);
if (*yytext!=',') g_type.resize(0);
g_args.resize(0);
}
YY_BREAK
-case 41:
+case 42:
YY_RULE_SETUP
-#line 768 "code.l"
+#line 776 "code.l"
{
g_code->codify(yytext);
}
YY_BREAK
-case 42:
+case 43:
YY_RULE_SETUP
-#line 771 "code.l"
+#line 779 "code.l"
{
addParmType();
g_parmName=yytext;
generateClassLink(*g_code,yytext);
}
YY_BREAK
-case 43:
+case 44:
YY_RULE_SETUP
-#line 776 "code.l"
+#line 784 "code.l"
{
g_code->codify(yytext);
addParameter();
g_parmType.resize(0);g_parmName.resize(0);
}
YY_BREAK
-case 44:
+case 45:
YY_RULE_SETUP
-#line 781 "code.l"
+#line 789 "code.l"
{
g_code->codify(yytext);
g_bracketCount++;
}
YY_BREAK
-case 45:
+case 46:
YY_RULE_SETUP
-#line 785 "code.l"
+#line 793 "code.l"
{
g_code->codify(yytext);
if (--g_bracketCount<=0)
@@ -2335,22 +2333,22 @@ YY_RULE_SETUP
BEGIN( Body );
}
YY_BREAK
-case 46:
+case 47:
YY_RULE_SETUP
-#line 792 "code.l"
+#line 800 "code.l"
{
codifyLines(yytext);
g_bracketCount=0;
- if (!g_inClass && g_type.length()>0)
+ if (!g_inClass && !g_type.isEmpty())
addVariable();
g_name.resize(0);g_type.resize(0);
g_parmType.resize(0);g_parmName.resize(0);
BEGIN( Body );
}
YY_BREAK
-case 47:
+case 48:
YY_RULE_SETUP
-#line 801 "code.l"
+#line 809 "code.l"
{
addParameter();
g_parmType.resize(0);g_parmName.resize(0);
@@ -2361,9 +2359,9 @@ YY_RULE_SETUP
BEGIN( Body );
}
YY_BREAK
-case 48:
+case 49:
YY_RULE_SETUP
-#line 810 "code.l"
+#line 818 "code.l"
{
addParameter();
g_parmType.resize(0);g_parmName.resize(0);
@@ -2373,46 +2371,46 @@ YY_RULE_SETUP
BEGIN( SkipInits );
}
YY_BREAK
-case 49:
+case 50:
YY_RULE_SETUP
-#line 818 "code.l"
+#line 826 "code.l"
{
g_code->codify(yytext);
g_curlyCount++;
BEGIN( Body );
}
YY_BREAK
-case 50:
+case 51:
YY_RULE_SETUP
-#line 823 "code.l"
+#line 831 "code.l"
{
generateClassLink(*g_code,yytext);
}
YY_BREAK
-case 51:
+case 52:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 826 "code.l"
+#line 834 "code.l"
{
generateFunctionLink(*g_code,yytext);
}
YY_BREAK
-case 52:
+case 53:
YY_RULE_SETUP
-#line 829 "code.l"
+#line 837 "code.l"
{
g_code->codify(yytext);
g_args=yytext;
BEGIN( MemberCall2 );
}
YY_BREAK
-case 53:
+case 54:
YY_RULE_SETUP
-#line 834 "code.l"
+#line 842 "code.l"
{
- if (g_args.length()>0)
+ if (!g_args.isEmpty())
generateMemberLink(*g_code,g_args,yytext);
else
g_code->codify(yytext);
@@ -2420,61 +2418,61 @@ YY_RULE_SETUP
BEGIN( FuncCall );
}
YY_BREAK
-case 54:
+case 55:
YY_RULE_SETUP
-#line 842 "code.l"
+#line 850 "code.l"
{
g_code->codify(yytext);
g_args=yytext;
}
YY_BREAK
-case 55:
+case 56:
YY_RULE_SETUP
-#line 846 "code.l"
+#line 854 "code.l"
{
g_code->codify(yytext);
}
YY_BREAK
-case 56:
+case 57:
YY_RULE_SETUP
-#line 849 "code.l"
+#line 857 "code.l"
{
g_code->codify(yytext);
}
YY_BREAK
-case 57:
+case 58:
YY_RULE_SETUP
-#line 852 "code.l"
+#line 860 "code.l"
{
g_code->codify(yytext);
BEGIN( g_lastCContext ) ;
}
YY_BREAK
-case 58:
+case 59:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 856 "code.l"
+#line 864 "code.l"
{
//codifyLines(yytext);
g_code->codify(yytext);
BEGIN( g_lastCContext ) ;
}
YY_BREAK
-case 59:
+case 60:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 861 "code.l"
+#line 869 "code.l"
{
g_yyLineNr+=QCString(yytext).contains('\n');
}
YY_BREAK
-case 60:
+case 61:
YY_RULE_SETUP
-#line 864 "code.l"
+#line 872 "code.l"
{
g_yyLineNr+=QCString(yytext).contains('\n');
g_code->endCodeLine();
@@ -2485,31 +2483,31 @@ YY_RULE_SETUP
BEGIN(g_lastSpecialCContext);
}
YY_BREAK
-case 61:
+case 62:
YY_RULE_SETUP
-#line 873 "code.l"
+#line 881 "code.l"
{
BEGIN(g_lastSpecialCContext);
}
YY_BREAK
-case 62:
+case 63:
YY_RULE_SETUP
-#line 876 "code.l"
+#line 884 "code.l"
YY_BREAK
-case 63:
+case 64:
YY_RULE_SETUP
-#line 877 "code.l"
+#line 885 "code.l"
YY_BREAK
-case 64:
+case 65:
YY_RULE_SETUP
-#line 878 "code.l"
+#line 886 "code.l"
{ g_yyLineNr++; }
YY_BREAK
-case 65:
+case 66:
YY_RULE_SETUP
-#line 879 "code.l"
+#line 887 "code.l"
YY_BREAK
/*
@@ -2536,9 +2534,9 @@ YY_RULE_SETUP
codifyLines(yytext);
}
*/
-case 66:
+case 67:
YY_RULE_SETUP
-#line 904 "code.l"
+#line 912 "code.l"
{ // remove special one-line comment
g_yyLineNr+=((QCString)yytext).contains('\n');
g_code->endCodeLine();
@@ -2548,9 +2546,9 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 67:
+case 68:
YY_RULE_SETUP
-#line 912 "code.l"
+#line 920 "code.l"
{ // remove special one-line comment
g_yyLineNr++;
g_code->endCodeLine();
@@ -2560,81 +2558,81 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 68:
+case 69:
YY_RULE_SETUP
-#line 920 "code.l"
+#line 928 "code.l"
{ // strip special one-line comment
char c[2]; c[0]='\n'; c[1]=0;
codifyLines(c);
}
YY_BREAK
-case 69:
+case 70:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 924 "code.l"
+#line 932 "code.l"
{
g_lastSpecialCContext = YY_START;
g_yyLineNr++;
BEGIN(RemoveSpecialCComment);
}
YY_BREAK
-case 70:
+case 71:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 929 "code.l"
+#line 937 "code.l"
{ // special C comment block at a new line
g_lastSpecialCContext = YY_START;
BEGIN(RemoveSpecialCComment);
}
YY_BREAK
-case 71:
+case 72:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp = yy_bp + 3;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 933 "code.l"
+#line 941 "code.l"
{ // special C comment block half way a line
g_lastSpecialCContext = YY_START;
BEGIN(RemoveSpecialCComment);
}
YY_BREAK
-case 72:
+case 73:
YY_RULE_SETUP
-#line 937 "code.l"
+#line 945 "code.l"
{}
YY_BREAK
-case 73:
+case 74:
YY_RULE_SETUP
-#line 938 "code.l"
+#line 946 "code.l"
{
g_code->codify(yytext);
g_lastCContext = YY_START ;
BEGIN( SkipComment ) ;
}
YY_BREAK
-case 74:
+case 75:
YY_RULE_SETUP
-#line 943 "code.l"
+#line 951 "code.l"
{
g_code->codify(yytext);
g_lastCContext = YY_START ;
BEGIN( SkipCxxComment ) ;
}
YY_BREAK
-case 75:
+case 76:
YY_RULE_SETUP
-#line 948 "code.l"
+#line 956 "code.l"
{
codifyLines(yytext);
}
YY_BREAK
-case 76:
+case 77:
YY_RULE_SETUP
-#line 951 "code.l"
+#line 959 "code.l"
{
g_code->codify(yytext);
}
@@ -2648,9 +2646,9 @@ YY_RULE_SETUP
codifyLines(yytext);
}
*/
-case 77:
+case 78:
YY_RULE_SETUP
-#line 964 "code.l"
+#line 972 "code.l"
ECHO;
YY_BREAK
case YY_STATE_EOF(INITIAL):
@@ -2957,7 +2955,7 @@ static yy_state_type yy_get_previous_state()
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 460 )
+ if ( yy_current_state >= 448 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2987,11 +2985,11 @@ yy_state_type yy_current_state;
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 460 )
+ if ( yy_current_state >= 448 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 459);
+ yy_is_jam = (yy_current_state == 447);
if ( ! yy_is_jam )
*yy_state_ptr++ = yy_current_state;
@@ -3549,7 +3547,7 @@ int main()
return 0;
}
#endif
-#line 964 "code.l"
+#line 972 "code.l"
/*@ ----------------------------------------------------------------------------
diff --git a/src/code.h b/src/code.h
index 494978e..e13483a 100644
--- a/src/code.h
+++ b/src/code.h
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
diff --git a/src/code.l b/src/code.l
index e81a968..39750ce 100644
--- a/src/code.l
+++ b/src/code.l
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -77,7 +77,7 @@ typedef QList CodeVarList;
*/
static CodeClassList g_codeClassList;
-static CodeClassDict g_codeClassDict(17);
+static CodeClassDict g_codeClassDict(1009);
static CodeVarList g_codeVarList;
static CodeVarList g_codeParmList;
static const char * g_inputString; //!< the code fragment as text
@@ -203,10 +203,10 @@ static void writeMultiLineCodeLink(OutputList &ol,
static void addType()
{
if (g_name=="const") { g_name.resize(0); return; }
- if (g_type.length()) g_type += ' ' ;
+ if (!g_type.isEmpty()) g_type += ' ' ;
g_type += g_name ;
g_name.resize(0) ;
- if (g_type.length()) g_type += ' ' ;
+ if (!g_type.isEmpty()) g_type += ' ' ;
g_type += g_args ;
g_args.resize(0) ;
}
@@ -214,7 +214,7 @@ static void addType()
static void addParmType()
{
if (g_parmName=="const") { g_parmName.resize(0); return; }
- if (g_parmType.length()) g_parmType += ' ' ;
+ if (!g_parmType.isEmpty()) g_parmType += ' ' ;
g_parmType += g_parmName ;
g_parmName.resize(0) ;
}
@@ -236,7 +236,7 @@ static void addVariable()
{
g_cvd.name=g_name.copy().simplifyWhiteSpace();
g_cvd.type=g_type.copy().simplifyWhiteSpace();
- if (g_type.length()==0)
+ if (g_type.isEmpty())
return;
else if ((getClass(g_cvd.type)) || (g_codeClassDict[g_cvd.type]))
{
@@ -249,7 +249,7 @@ static void addParameter()
{
g_cvd.name=g_parmName.copy().simplifyWhiteSpace();
g_cvd.type=g_parmType.copy().simplifyWhiteSpace();
- if (g_cvd.type.length()==0)
+ if (g_cvd.type.isEmpty())
return;
else if ((getClass(g_cvd.type)) || (g_codeClassDict[g_cvd.type]))
{
@@ -261,7 +261,7 @@ static void addParameter()
static void generateClassLink(OutputList &ol,char *clName)
{
QCString className=clName;
- if (className.length()==0) return;
+ if (className.isEmpty()) return;
ClassDef *cd;
if ((cd=getClass(className)) && cd->isLinkable())
{
@@ -273,10 +273,14 @@ static void generateClassLink(OutputList &ol,char *clName)
// g_exampleFile.data());
if (cd->addExample(anchor,g_exampleName,g_exampleFile))
{
- bool latexOn = ol.isEnabled(OutputGenerator::Latex);
- if (latexOn) ol.disable(OutputGenerator::Latex);
+ ol.pushGeneratorState();
+ //bool latexOn = ol.isEnabled(OutputGenerator::Latex);
+ //if (latexOn) ol.disable(OutputGenerator::Latex);
+ ol.disable(OutputGenerator::Latex);
+ ol.disable(OutputGenerator::RTF);
ol.writeAnchor(anchor);
- if (latexOn) ol.enable(OutputGenerator::Latex);
+ //if (latexOn) ol.enable(OutputGenerator::Latex);
+ ol.popGeneratorState();
g_anchorCount++;
}
}
@@ -311,10 +315,13 @@ static bool getLink(const char *className,
// g_exampleFile.data());
if (md->addExample(anchor,g_exampleName,g_exampleFile))
{
- bool latexEnabled = result.isEnabled(OutputGenerator::Latex);
- if (latexEnabled) result.disable(OutputGenerator::Latex);
+ //bool latexEnabled = result.isEnabled(OutputGenerator::Latex);
+ result.pushGeneratorState();
+ //if (latexEnabled) result.disable(OutputGenerator::Latex);
+ result.disable(OutputGenerator::Latex);
result.writeAnchor(anchor);
- if (latexEnabled) result.enable(OutputGenerator::Latex);
+ result.popGeneratorState();
+ //if (latexEnabled) result.enable(OutputGenerator::Latex);
g_anchorCount++;
}
}
@@ -337,7 +344,7 @@ static bool getLink(const char *className,
static ClassDef *stripClassName(const char *s)
{
QCString tmp=s;
- QRegExp re("[a-z_A-Z][a-z_A-Z0-9]*");
+ static const QRegExp re("[a-z_A-Z][a-z_A-Z0-9:]*");
int p=0,i,l;
while ((i=re.match(tmp,p,&l))!=-1)
{
@@ -475,7 +482,7 @@ static void generateFunctionLink(OutputList &ol,char *funcName)
locFunc=locFunc.right(locFunc.length()-i-2);
}
//printf("generateFunctionLink(%s) classScope=%s\n",locFunc.data(),locScope.data());
- if (locScope.length()>0 && (ccd=g_codeClassDict[locScope]))
+ if (!locScope.isEmpty() && (ccd=g_codeClassDict[locScope]))
{
//printf("using classScope %s\n",g_classScope.data());
char *s=ccd->bases.first();
@@ -635,7 +642,7 @@ SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
g_code->codify(yytext);
g_curlyCount++;
g_inClass=TRUE;
- if (g_ccd.name.length()>0)
+ if (!g_ccd.name.isEmpty())
{
g_classScope=g_ccd.name.copy();
CodeClassDef *cd=new CodeClassDef(g_ccd);
@@ -703,7 +710,7 @@ SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
}
{SCOPENAME}/{B}*"(" {
addType();
- //if (type.length()==0)
+ //if (type.isEmpty())
QCString tmp=yytext;
generateFunctionLink(*g_code,yytext);
//else
@@ -718,7 +725,7 @@ SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
g_lastStringContext=YY_START;
BEGIN( SkipString );
}
-[^\"\\]* {
+[^\"\\\n]* {
g_code->codify(yytext);
}
"//"|"/*" {
@@ -738,12 +745,13 @@ SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
"'"((\\.)|(.))"'" {
g_code->codify(yytext);
}
+"this->" { g_code->codify(yytext); }
"."|"->" {
g_code->codify(yytext);
BEGIN( MemberCall );
}
{SCOPENAME}/{B}*"(" {
- if (g_name.length()>0)
+ if (!g_name.isEmpty())
generateMemberLink(*g_code,g_name,yytext);
else
g_code->codify(yytext);
@@ -759,7 +767,7 @@ SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
}
[,=;\[] {
g_code->codify(yytext);
- if (g_type.length()>0)
+ if (!g_type.isEmpty())
addVariable();
g_name.resize(0);
if (*yytext!=',') g_type.resize(0);
@@ -792,7 +800,7 @@ SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
")"[ \t\n]*";" {
codifyLines(yytext);
g_bracketCount=0;
- if (!g_inClass && g_type.length()>0)
+ if (!g_inClass && !g_type.isEmpty())
addVariable();
g_name.resize(0);g_type.resize(0);
g_parmType.resize(0);g_parmName.resize(0);
@@ -832,7 +840,7 @@ SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
BEGIN( MemberCall2 );
}
([a-z_A-Z][a-z_A-Z0-9]*)/([ \t\n]*"(") {
- if (g_args.length()>0)
+ if (!g_args.isEmpty())
generateMemberLink(*g_code,g_args,yytext);
else
g_code->codify(yytext);
diff --git a/src/config.cpp b/src/config.cpp
index 1760948..b6b421c 100644
--- a/src/config.cpp
+++ b/src/config.cpp
@@ -302,113 +302,124 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
*yy_cp = '\0'; \
yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 93
-#define YY_END_OF_BUFFER 94
-static yyconst short int yy_accept[938] =
+#define YY_NUM_RULES 102
+#define YY_END_OF_BUFFER 103
+static yyconst short int yy_accept[1039] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 94, 91, 92, 91,
- 91, 2, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 88, 91, 79, 76, 80, 2, 91,
- 79, 79, 86, 87, 78, 77, 87, 87, 85, 83,
- 83, 85, 85, 85, 91, 0, 90, 0, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
-
- 75, 75, 75, 0, 89, 79, 81, 79, 86, 87,
- 78, 87, 84, 82, 0, 0, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 79, 87, 1, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
-
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 1, 1, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
-
- 75, 75, 75, 75, 0, 29, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 0,
- 40, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 0, 13, 75, 75, 75,
-
- 75, 75, 0, 14, 75, 75, 0, 30, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 0, 12,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
-
- 75, 75, 75, 75, 75, 75, 75, 75, 0, 23,
- 0, 35, 75, 0, 41, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 0, 17, 75, 75, 75, 0,
- 42, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
-
- 75, 75, 75, 75, 75, 75, 75, 75, 0, 28,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 0, 7, 75, 75, 0, 20, 75, 0,
- 37, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 0, 15, 75, 75, 75, 75, 75, 75,
- 0, 16, 75, 75, 75, 75, 75, 0, 45, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 0, 10, 0, 9, 0, 6, 75, 75, 75,
- 75, 0, 73, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
-
- 75, 75, 0, 43, 75, 75, 75, 75, 75, 75,
- 75, 75, 75, 0, 27, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 0, 50, 75, 75, 75,
- 75, 75, 75, 0, 26, 0, 72, 75, 0, 19,
- 75, 75, 0, 11, 0, 8, 75, 75, 75, 75,
- 75, 0, 3, 75, 0, 62, 0, 44, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 75, 0, 61,
- 0, 47, 75, 75, 75, 75, 75, 75, 0, 36,
- 0, 31, 75, 0, 49, 75, 75, 75, 75, 75,
- 75, 75, 75, 75, 0, 63, 75, 75, 0, 22,
-
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 75, 75, 0, 60, 75, 75, 75, 75, 75, 75,
- 0, 38, 75, 75, 0, 48, 75, 75, 75, 75,
- 75, 0, 34, 0, 74, 75, 75, 75, 75, 0,
- 71, 0, 4, 75, 0, 67, 75, 75, 75, 75,
- 75, 75, 75, 75, 75, 75, 75, 0, 46, 0,
- 59, 75, 75, 75, 75, 75, 0, 24, 75, 0,
- 52, 75, 0, 21, 0, 53, 0, 39, 75, 75,
- 75, 75, 0, 64, 75, 75, 0, 33, 0, 32,
- 75, 75, 0, 18, 75, 75, 75, 75, 0, 5,
-
- 0, 65, 75, 75, 0, 54, 75, 75, 75, 0,
- 69, 75, 75, 75, 0, 68, 0, 70, 75, 75,
- 75, 0, 58, 0, 57, 0, 56, 0, 66, 0,
- 55, 0, 25, 75, 0, 51, 0
+ 0, 0, 0, 0, 0, 0, 103, 100, 101, 100,
+ 100, 2, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 97, 100, 88, 85, 89, 2, 100,
+ 88, 88, 95, 96, 87, 86, 96, 96, 94, 92,
+ 92, 94, 94, 94, 100, 0, 99, 0, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+
+ 84, 84, 84, 84, 84, 84, 84, 0, 98, 88,
+ 90, 88, 95, 96, 87, 96, 93, 91, 0, 0,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 88, 96, 1, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 1,
+ 1, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 0, 31, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 0, 42, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 0, 14, 84, 84,
+ 84, 84, 84, 84, 0, 15, 84, 84, 0, 32,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 0, 13, 84, 84, 84,
+
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 0, 77, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 0, 24, 0, 37, 84, 0,
+ 43, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 0, 18, 84, 84,
+ 84, 0, 44, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 0, 30, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 0, 7, 84, 84, 0, 21, 84, 0,
+ 39, 84, 84, 84, 84, 0, 9, 84, 84, 84,
+
+ 84, 84, 84, 84, 84, 0, 16, 84, 84, 84,
+ 84, 84, 84, 0, 82, 84, 0, 17, 84, 84,
+ 84, 84, 84, 0, 47, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 0,
+ 11, 0, 10, 0, 6, 84, 84, 84, 84, 84,
+ 84, 0, 75, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 0, 45, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 0, 29, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 0, 52, 0,
+
+ 81, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 0, 28, 0, 74, 84, 0, 20, 84, 84, 0,
+ 12, 0, 8, 84, 84, 84, 84, 84, 0, 3,
+ 84, 0, 64, 84, 0, 46, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 0, 63, 0,
+ 49, 84, 84, 84, 84, 84, 84, 0, 38, 0,
+ 33, 84, 0, 51, 84, 84, 84, 84, 84, 84,
+ 84, 84, 0, 27, 84, 0, 79, 84, 0, 65,
+ 84, 84, 0, 23, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 0, 62, 84,
+
+ 84, 84, 84, 84, 84, 84, 0, 40, 84, 84,
+ 0, 50, 84, 84, 84, 84, 84, 84, 0, 36,
+ 0, 76, 84, 84, 84, 84, 0, 73, 0, 4,
+ 0, 83, 84, 0, 69, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 0, 48, 0,
+ 61, 84, 84, 84, 84, 84, 84, 0, 25, 84,
+ 0, 54, 84, 0, 22, 0, 55, 0, 41, 84,
+ 84, 84, 84, 0, 66, 84, 84, 84, 0, 35,
+ 0, 34, 84, 84, 0, 19, 84, 84, 84, 84,
+ 84, 0, 5, 0, 67, 84, 84, 0, 56, 84,
+
+ 84, 84, 84, 0, 71, 84, 84, 84, 84, 0,
+ 70, 0, 72, 84, 84, 84, 84, 0, 60, 84,
+ 0, 59, 0, 58, 0, 68, 0, 57, 0, 78,
+ 0, 26, 84, 0, 80, 0, 53, 0
} ;
static yyconst int yy_ec[256] =
@@ -452,510 +463,560 @@ static yyconst int yy_meta[45] =
6, 6, 6, 1
} ;
-static yyconst short int yy_base[949] =
+static yyconst short int yy_base[1050] =
{ 0,
0, 1, 45, 0, 87, 88, 131, 174, 218, 262,
- 305, 348, 100, 101, 392, 436, 1237, 1238, 1238, 3,
- 1193, 1238, 0, 1211, 0, 0, 1, 0, 2, 1217,
- 10, 7, 1220, 1219, 1218, 1197, 79, 1196, 1211, 83,
- 1214, 1209, 1212, 1238, 6, 0, 1238, 1238, 0, 1216,
- 12, 1180, 0, 0, 1220, 1238, 95, 1178, 1238, 1238,
- 1238, 1212, 109, 1176, 1209, 114, 1238, 1207, 0, 95,
- 1190, 1194, 1183, 1192, 1199, 13, 1180, 1195, 1196, 128,
- 1184, 1183, 1180, 1189, 1179, 1190, 127, 1168, 1169, 3,
- 1168, 1171, 1180, 1167, 131, 1175, 134, 1182, 1161, 1163,
-
- 6, 1162, 1161, 118, 1238, 0, 1238, 1180, 0, 0,
- 1187, 1178, 1238, 1238, 1178, 1144, 1168, 1164, 1170, 1142,
- 1164, 1163, 1139, 1147, 1146, 1148, 1162, 1134, 1159, 1147,
- 1147, 1157, 123, 1152, 1144, 1150, 1149, 1141, 1145, 1139,
- 1145, 1140, 1127, 1142, 1145, 1140, 1126, 1115, 1126, 1136,
- 1112, 1127, 1134, 1127, 1131, 1114, 1129, 1115, 1114, 1122,
- 1102, 1123, 1126, 1113, 1096, 1095, 1238, 1100, 1122, 1097,
- 1120, 1114, 1091, 8, 1099, 1089, 1115, 1113, 133, 1102,
- 1097, 1091, 1097, 1109, 1105, 1080, 1079, 1088, 1077, 1076,
- 1098, 1081, 1083, 1086, 1079, 1080, 1093, 1072, 1080, 137,
-
- 1073, 1075, 1084, 1063, 1085, 1084, 1068, 1069, 1085, 1082,
- 1081, 1067, 1063, 1072, 1079, 1070, 0, 0, 1058, 1075,
- 1057, 1073, 1046, 1054, 1071, 1053, 1042, 1060, 1065, 1055,
- 1064, 1047, 1059, 1051, 1058, 1057, 110, 1045, 1043, 1042,
- 1056, 1035, 169, 1027, 1050, 1044, 1047, 155, 1037, 1035,
- 1021, 1020, 1023, 1025, 1025, 1016, 1018, 1026, 1035, 1037,
- 0, 1020, 1018, 1029, 1031, 1007, 1025, 1021, 1012, 1017,
- 1025, 1024, 1000, 1008, 1013, 1020, 1011, 1011, 1018, 1007,
- 1000, 1014, 999, 1005, 988, 1010, 1009, 985, 992, 995,
- 1007, 1008, 1007, 987, 992, 993, 989, 998, 981, 981,
-
- 984, 994, 978, 969, 159, 1238, 990, 994, 991, 74,
- 988, 972, 971, 962, 969, 972, 986, 977, 965, 171,
- 1238, 975, 955, 112, 954, 975, 954, 974, 969, 970,
- 958, 955, 970, 957, 967, 957, 965, 172, 960, 940,
- 939, 938, 949, 186, 948, 935, 191, 947, 933, 959,
- 931, 938, 937, 951, 951, 945, 938, 951, 931, 925,
- 948, 920, 919, 170, 937, 933, 916, 938, 921, 917,
- 935, 923, 170, 913, 932, 916, 921, 906, 911, 930,
- 917, 921, 927, 910, 922, 907, 912, 905, 909, 913,
- 916, 919, 906, 899, 190, 195, 1238, 916, 915, 903,
-
- 905, 912, 197, 1238, 894, 895, 202, 1238, 894, 895,
- 177, 905, 891, 886, 897, 876, 888, 895, 881, 896,
- 883, 886, 877, 880, 891, 880, 878, 880, 863, 889,
- 888, 868, 871, 872, 864, 875, 882, 866, 863, 872,
- 874, 864, 872, 858, 868, 860, 855, 857, 204, 230,
- 843, 231, 869, 866, 848, 847, 864, 860, 232, 1238,
- 857, 851, 861, 847, 840, 854, 857, 856, 844, 843,
- 836, 842, 851, 846, 822, 215, 846, 834, 842, 841,
- 824, 839, 216, 842, 827, 835, 819, 819, 834, 816,
- 832, 819, 833, 814, 812, 813, 816, 824, 816, 239,
-
- 823, 152, 243, 817, 816, 821, 808, 809, 244, 1238,
- 247, 1238, 813, 248, 1238, 808, 818, 817, 809, 811,
- 787, 796, 797, 792, 807, 802, 793, 788, 787, 781,
- 793, 795, 802, 782, 783, 786, 779, 797, 796, 795,
- 767, 766, 775, 774, 771, 771, 273, 784, 768, 784,
- 771, 767, 779, 768, 762, 776, 759, 765, 769, 274,
- 772, 769, 275, 766, 276, 1238, 277, 761, 760, 278,
- 1238, 767, 757, 758, 746, 740, 762, 747, 753, 755,
- 279, 745, 748, 760, 752, 754, 753, 280, 739, 263,
- 736, 727, 282, 732, 746, 744, 737, 749, 736, 728,
-
- 733, 739, 278, 732, 302, 303, 311, 736, 314, 1238,
- 725, 734, 722, 315, 737, 721, 735, 722, 718, 715,
- 715, 718, 316, 1238, 729, 710, 317, 1238, 710, 318,
- 1238, 718, 715, 665, 0, 10, 62, 74, 111, 319,
- 88, 144, 320, 1238, 129, 159, 183, 197, 175, 176,
- 322, 1238, 188, 323, 200, 220, 210, 331, 1238, 239,
- 236, 223, 230, 271, 273, 281, 334, 281, 276, 320,
- 321, 345, 1238, 346, 1238, 354, 1238, 322, 314, 357,
- 358, 359, 1238, 324, 360, 311, 331, 361, 362, 344,
- 341, 336, 362, 353, 376, 360, 377, 378, 365, 365,
-
- 370, 368, 400, 1238, 364, 369, 375, 378, 374, 366,
- 405, 406, 394, 408, 1238, 381, 383, 384, 383, 385,
- 417, 420, 404, 444, 387, 422, 1238, 404, 413, 402,
- 403, 413, 402, 445, 1238, 447, 1238, 404, 448, 1238,
- 449, 422, 451, 1238, 453, 1238, 427, 456, 435, 447,
- 436, 467, 1238, 440, 469, 1238, 470, 1238, 456, 444,
- 444, 460, 452, 467, 467, 468, 484, 466, 486, 1238,
- 487, 1238, 473, 465, 466, 476, 477, 493, 495, 1238,
- 498, 1238, 470, 500, 1238, 486, 502, 482, 477, 495,
- 497, 481, 513, 514, 515, 1238, 497, 493, 518, 1238,
-
- 491, 505, 521, 522, 497, 527, 511, 502, 519, 496,
- 506, 507, 538, 1238, 515, 511, 512, 513, 529, 544,
- 545, 1238, 546, 525, 549, 1238, 535, 522, 537, 538,
- 557, 558, 1238, 560, 1238, 546, 562, 528, 564, 565,
- 1238, 566, 1238, 569, 571, 1238, 573, 548, 563, 551,
- 569, 584, 571, 557, 587, 588, 574, 590, 1238, 591,
- 1238, 566, 593, 580, 568, 571, 602, 1238, 588, 605,
- 1238, 606, 607, 1238, 608, 1238, 609, 1238, 610, 577,
- 598, 614, 621, 1238, 607, 604, 625, 1238, 626, 1238,
- 611, 628, 629, 1238, 601, 603, 604, 634, 637, 1238,
-
- 640, 1238, 641, 629, 643, 1238, 611, 622, 648, 649,
- 1238, 652, 654, 655, 656, 1238, 657, 1238, 660, 661,
- 646, 668, 1238, 669, 1238, 672, 1238, 673, 1238, 674,
- 1238, 675, 1238, 676, 677, 1238, 1238, 689, 695, 701,
- 707, 713, 719, 721, 727, 676, 733, 736
+ 305, 348, 100, 101, 392, 436, 1357, 1358, 1358, 3,
+ 1313, 1358, 0, 1331, 0, 0, 1, 0, 2, 1,
+ 79, 76, 1341, 1340, 1339, 1318, 80, 1317, 0, 82,
+ 1336, 1331, 1334, 1358, 6, 0, 1358, 1358, 0, 1338,
+ 12, 1302, 0, 0, 1342, 1358, 39, 1300, 1358, 1358,
+ 1358, 1334, 113, 1298, 1331, 117, 1358, 1329, 0, 118,
+ 1312, 1316, 1305, 1314, 1321, 9, 1302, 1317, 1318, 115,
+ 1306, 1305, 1302, 1314, 1292, 1309, 1299, 1297, 1309, 134,
+ 1287, 1288, 97, 1287, 1290, 1299, 1286, 124, 1294, 10,
+
+ 1296, 1300, 1279, 1281, 110, 1280, 1279, 153, 1358, 0,
+ 1358, 1298, 0, 0, 1305, 1296, 1358, 1358, 1296, 1262,
+ 1286, 1282, 1288, 1260, 1282, 1281, 1257, 1265, 128, 1267,
+ 1281, 1253, 1278, 1266, 1266, 1276, 120, 1271, 1263, 1269,
+ 1257, 1267, 1266, 1258, 1254, 1261, 1255, 1261, 1256, 1243,
+ 1258, 1261, 1256, 1242, 1231, 1242, 1252, 1228, 1243, 1250,
+ 1243, 1247, 1230, 1245, 1221, 1230, 1229, 1237, 1217, 1238,
+ 1241, 1228, 1211, 1210, 1358, 1215, 1237, 1212, 1235, 1229,
+ 1206, 135, 1214, 1231, 1203, 1229, 1227, 150, 1216, 1211,
+ 1205, 1211, 1223, 1219, 1194, 1193, 1202, 1211, 1190, 1189,
+
+ 1188, 1197, 1209, 1192, 1194, 1197, 1190, 1191, 1204, 1183,
+ 1191, 147, 1184, 1186, 1195, 1174, 1196, 1195, 1179, 1180,
+ 1196, 145, 1193, 1192, 1178, 1174, 1183, 1190, 1181, 0,
+ 0, 1169, 1186, 1168, 1184, 1157, 1165, 1182, 1164, 1153,
+ 1178, 1170, 1175, 1165, 1174, 1157, 1169, 1161, 1168, 1167,
+ 133, 1155, 1153, 1152, 1166, 1157, 1161, 1143, 169, 1158,
+ 1134, 1157, 1151, 1154, 191, 1144, 1142, 1128, 1127, 1130,
+ 1132, 1132, 1123, 1125, 1133, 1142, 1144, 0, 1127, 1125,
+ 1119, 1122, 1134, 1136, 1112, 1130, 1126, 1117, 1122, 1130,
+ 1129, 1105, 1113, 1118, 1125, 1116, 1116, 1123, 1111, 1111,
+
+ 1104, 1118, 1103, 1109, 1092, 1114, 1113, 1089, 1096, 1099,
+ 1111, 1112, 1111, 1091, 1107, 1094, 1094, 1095, 1091, 1100,
+ 1083, 1083, 1074, 1085, 1095, 1079, 1070, 182, 1358, 1091,
+ 1095, 1092, 165, 1089, 1073, 1072, 1063, 1070, 1073, 1087,
+ 1078, 1066, 186, 1358, 1076, 1056, 1067, 1062, 150, 1053,
+ 1074, 1053, 1073, 1068, 1069, 1057, 1054, 1069, 1056, 1066,
+ 1056, 1064, 189, 1059, 1049, 1038, 1037, 1036, 1047, 193,
+ 1046, 1033, 195, 1045, 1031, 1057, 1029, 1036, 1035, 1049,
+ 1052, 1032, 1047, 1041, 1034, 1047, 1027, 1021, 1029, 1043,
+ 1015, 1014, 178, 1032, 1028, 1011, 1033, 1016, 1012, 1030,
+
+ 1018, 13, 1008, 1027, 1011, 1016, 1001, 1006, 1025, 1021,
+ 1009, 1010, 1014, 1020, 1003, 1015, 1000, 1005, 998, 1002,
+ 1006, 1009, 1012, 999, 992, 200, 202, 1358, 1009, 1008,
+ 1007, 186, 998, 1005, 230, 1358, 987, 988, 231, 1358,
+ 987, 988, 85, 998, 984, 979, 990, 969, 984, 232,
+ 980, 987, 973, 988, 975, 978, 971, 968, 187, 983,
+ 972, 970, 972, 955, 981, 980, 960, 963, 964, 956,
+ 967, 974, 958, 955, 964, 966, 956, 964, 950, 949,
+ 945, 958, 950, 945, 947, 234, 235, 933, 236, 959,
+ 956, 938, 937, 954, 950, 237, 1358, 947, 933, 940,
+
+ 950, 930, 935, 928, 942, 945, 944, 932, 931, 924,
+ 930, 939, 934, 910, 255, 909, 238, 1358, 933, 921,
+ 929, 928, 911, 926, 925, 221, 911, 927, 912, 920,
+ 904, 904, 919, 901, 917, 904, 918, 899, 897, 898,
+ 901, 909, 901, 243, 908, 243, 249, 902, 898, 889,
+ 899, 904, 891, 892, 276, 1358, 279, 1358, 896, 280,
+ 1358, 891, 901, 900, 892, 894, 870, 879, 887, 879,
+ 874, 887, 888, 883, 874, 869, 868, 862, 874, 876,
+ 883, 863, 864, 867, 860, 878, 877, 857, 875, 867,
+ 846, 845, 854, 853, 850, 850, 862, 281, 862, 865,
+
+ 845, 861, 848, 844, 856, 845, 839, 853, 836, 842,
+ 840, 282, 843, 835, 284, 792, 287, 1358, 288, 787,
+ 786, 293, 1358, 793, 788, 301, 782, 70, 87, 85,
+ 152, 140, 162, 187, 302, 181, 191, 239, 227, 239,
+ 243, 313, 260, 314, 267, 297, 266, 278, 318, 285,
+ 302, 302, 297, 311, 302, 296, 305, 314, 314, 313,
+ 320, 311, 335, 336, 344, 319, 319, 355, 1358, 311,
+ 314, 323, 327, 357, 345, 331, 347, 336, 334, 333,
+ 335, 341, 368, 1358, 356, 339, 371, 1358, 348, 373,
+ 1358, 359, 363, 360, 353, 379, 1358, 365, 351, 355,
+
+ 360, 376, 400, 350, 379, 403, 1358, 366, 394, 383,
+ 383, 397, 375, 411, 1358, 378, 414, 1358, 390, 416,
+ 402, 403, 393, 420, 1358, 411, 408, 396, 398, 405,
+ 409, 417, 444, 445, 417, 432, 426, 434, 435, 451,
+ 1358, 452, 1358, 453, 1358, 441, 423, 434, 441, 460,
+ 464, 465, 1358, 451, 467, 439, 457, 471, 472, 457,
+ 455, 450, 472, 463, 485, 471, 487, 467, 489, 476,
+ 476, 481, 479, 494, 1358, 477, 483, 486, 478, 473,
+ 465, 467, 506, 507, 495, 509, 1358, 482, 483, 484,
+ 483, 485, 515, 518, 505, 521, 488, 523, 1358, 524,
+
+ 1358, 507, 499, 518, 507, 509, 520, 536, 508, 538,
+ 540, 1358, 541, 1358, 513, 543, 1358, 544, 517, 547,
+ 1358, 549, 1358, 527, 555, 531, 541, 531, 561, 1358,
+ 534, 563, 1358, 535, 566, 1358, 552, 540, 539, 555,
+ 548, 560, 560, 562, 578, 562, 561, 581, 1358, 582,
+ 1358, 568, 560, 561, 571, 572, 589, 590, 1358, 593,
+ 1358, 565, 595, 1358, 581, 597, 576, 590, 573, 592,
+ 594, 578, 609, 1358, 610, 611, 1358, 612, 613, 1358,
+ 595, 591, 616, 1358, 589, 603, 624, 625, 627, 599,
+ 629, 612, 603, 618, 595, 607, 609, 640, 1358, 613,
+
+ 618, 614, 615, 616, 632, 647, 648, 1358, 649, 629,
+ 652, 1358, 638, 626, 626, 641, 645, 661, 663, 1358,
+ 664, 1358, 650, 666, 632, 668, 669, 1358, 670, 1358,
+ 672, 1358, 675, 677, 1358, 681, 654, 669, 657, 675,
+ 689, 679, 678, 664, 694, 695, 681, 697, 1358, 698,
+ 1358, 674, 701, 689, 688, 678, 681, 710, 1358, 696,
+ 713, 1358, 714, 715, 1358, 716, 1358, 717, 1358, 718,
+ 685, 706, 722, 729, 1358, 704, 716, 714, 734, 1358,
+ 735, 1358, 720, 737, 738, 1358, 722, 712, 713, 714,
+ 746, 749, 1358, 750, 1358, 751, 739, 753, 1358, 736,
+
+ 721, 733, 758, 762, 1358, 729, 765, 766, 767, 769,
+ 1358, 770, 1358, 771, 773, 774, 761, 782, 1358, 785,
+ 786, 1358, 787, 1358, 788, 1358, 789, 1358, 790, 1358,
+ 791, 1358, 793, 794, 1358, 802, 1358, 1358, 814, 820,
+ 826, 832, 838, 844, 846, 852, 801, 858, 861
} ;
-static yyconst short int yy_def[949] =
+static yyconst short int yy_def[1050] =
{ 0,
- 938, 938, 937, 3, 938, 938, 939, 939, 940, 940,
- 941, 941, 942, 942, 943, 943, 937, 937, 937, 937,
- 937, 937, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 937, 937, 945, 937, 937, 945, 937,
- 945, 945, 946, 947, 937, 937, 947, 947, 937, 937,
- 937, 937, 937, 937, 948, 937, 937, 937, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
-
- 944, 944, 944, 937, 937, 945, 937, 945, 946, 947,
- 937, 947, 937, 937, 948, 937, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 945, 947, 937, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
-
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 945, 947, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
-
- 944, 944, 944, 944, 937, 937, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 937,
- 937, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 937, 937, 944, 944, 944,
-
- 944, 944, 937, 937, 944, 944, 937, 937, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 937, 937,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
-
- 944, 944, 944, 944, 944, 944, 944, 944, 937, 937,
- 937, 937, 944, 937, 937, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 937, 937, 944, 944, 944, 937,
- 937, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
-
- 944, 944, 944, 944, 944, 944, 944, 944, 937, 937,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 937, 937, 944, 944, 937, 937, 944, 937,
- 937, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 937, 937, 944, 944, 944, 944, 944, 944,
- 937, 937, 944, 944, 944, 944, 944, 937, 937, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 937, 937, 937, 937, 937, 937, 944, 944, 944,
- 944, 937, 937, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
-
- 944, 944, 937, 937, 944, 944, 944, 944, 944, 944,
- 944, 944, 944, 937, 937, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 937, 937, 944, 944, 944,
- 944, 944, 944, 937, 937, 937, 937, 944, 937, 937,
- 944, 944, 937, 937, 937, 937, 944, 944, 944, 944,
- 944, 937, 937, 944, 937, 937, 937, 937, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 944, 937, 937,
- 937, 937, 944, 944, 944, 944, 944, 944, 937, 937,
- 937, 937, 944, 937, 937, 944, 944, 944, 944, 944,
- 944, 944, 944, 944, 937, 937, 944, 944, 937, 937,
-
- 944, 944, 944, 944, 944, 944, 944, 944, 944, 944,
- 944, 944, 937, 937, 944, 944, 944, 944, 944, 944,
- 937, 937, 944, 944, 937, 937, 944, 944, 944, 944,
- 944, 937, 937, 937, 937, 944, 944, 944, 944, 937,
- 937, 937, 937, 944, 937, 937, 944, 944, 944, 944,
- 944, 944, 944, 944, 944, 944, 944, 937, 937, 937,
- 937, 944, 944, 944, 944, 944, 937, 937, 944, 937,
- 937, 944, 937, 937, 937, 937, 937, 937, 944, 944,
- 944, 944, 937, 937, 944, 944, 937, 937, 937, 937,
- 944, 944, 937, 937, 944, 944, 944, 944, 937, 937,
-
- 937, 937, 944, 944, 937, 937, 944, 944, 944, 937,
- 937, 944, 944, 944, 937, 937, 937, 937, 944, 944,
- 944, 937, 937, 937, 937, 937, 937, 937, 937, 937,
- 937, 937, 937, 944, 937, 937, 0, 937, 937, 937,
- 937, 937, 937, 937, 937, 937, 937, 937
+ 1039, 1039, 1038, 3, 1039, 1039, 1040, 1040, 1041, 1041,
+ 1042, 1042, 1043, 1043, 1044, 1044, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1038, 1038, 1046, 1038, 1038, 1046, 1038,
+ 1046, 1046, 1047, 1048, 1038, 1038, 1048, 1048, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1049, 1038, 1038, 1038, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1038, 1038, 1046,
+ 1038, 1046, 1047, 1048, 1038, 1048, 1038, 1038, 1049, 1038,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1046, 1048, 1038, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1046,
+ 1048, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1038, 1038, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1038, 1038, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1038, 1038, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1038, 1038, 1045, 1045, 1038, 1038,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1038, 1038, 1045, 1045, 1045,
+
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1038, 1038, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1038, 1038, 1038, 1038, 1045, 1038,
+ 1038, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1038, 1038, 1045, 1045,
+ 1045, 1038, 1038, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1038, 1038, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1038, 1038, 1045, 1045, 1038, 1038, 1045, 1038,
+ 1038, 1045, 1045, 1045, 1045, 1038, 1038, 1045, 1045, 1045,
+
+ 1045, 1045, 1045, 1045, 1045, 1038, 1038, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1038, 1038, 1045, 1038, 1038, 1045, 1045,
+ 1045, 1045, 1045, 1038, 1038, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1038, 1038, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1038, 1038, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1038, 1038, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1038, 1038, 1038,
+
+ 1038, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1038, 1038, 1038, 1038, 1045, 1038, 1038, 1045, 1045, 1038,
+ 1038, 1038, 1038, 1045, 1045, 1045, 1045, 1045, 1038, 1038,
+ 1045, 1038, 1038, 1045, 1038, 1038, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1038, 1038, 1038,
+ 1038, 1045, 1045, 1045, 1045, 1045, 1045, 1038, 1038, 1038,
+ 1038, 1045, 1038, 1038, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1038, 1038, 1045, 1038, 1038, 1045, 1038, 1038,
+ 1045, 1045, 1038, 1038, 1045, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1038, 1038, 1045,
+
+ 1045, 1045, 1045, 1045, 1045, 1045, 1038, 1038, 1045, 1045,
+ 1038, 1038, 1045, 1045, 1045, 1045, 1045, 1045, 1038, 1038,
+ 1038, 1038, 1045, 1045, 1045, 1045, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1045, 1038, 1038, 1045, 1045, 1045, 1045, 1045,
+ 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1038, 1038, 1038,
+ 1038, 1045, 1045, 1045, 1045, 1045, 1045, 1038, 1038, 1045,
+ 1038, 1038, 1045, 1038, 1038, 1038, 1038, 1038, 1038, 1045,
+ 1045, 1045, 1045, 1038, 1038, 1045, 1045, 1045, 1038, 1038,
+ 1038, 1038, 1045, 1045, 1038, 1038, 1045, 1045, 1045, 1045,
+ 1045, 1038, 1038, 1038, 1038, 1045, 1045, 1038, 1038, 1045,
+
+ 1045, 1045, 1045, 1038, 1038, 1045, 1045, 1045, 1045, 1038,
+ 1038, 1038, 1038, 1045, 1045, 1045, 1045, 1038, 1038, 1045,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1045, 1038, 1038, 1038, 1038, 0, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038
} ;
-static yyconst short int yy_nxt[1283] =
+static yyconst short int yy_nxt[1403] =
{ 0,
- 937, 320, 19, 19, 66, 67, 66, 104, 105, 104,
- 937, 321, 73, 66, 67, 66, 698, 147, 74, 161,
- 71, 77, 81, 75, 162, 79, 76, 78, 148, 72,
- 84, 86, 87, 225, 82, 80, 125, 126, 20, 20,
- 226, 85, 699, 21, 21, 18, 18, 19, 18, 18,
+ 1038, 343, 19, 19, 66, 67, 66, 108, 109, 108,
+ 1038, 344, 73, 66, 67, 66, 100, 83, 74, 1038,
+ 71, 77, 81, 75, 163, 79, 76, 78, 471, 72,
+ 84, 101, 129, 130, 82, 80, 472, 164, 20, 20,
+ 66, 67, 66, 21, 21, 18, 18, 19, 18, 18,
22, 18, 18, 18, 23, 23, 18, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 23, 34, 35,
23, 36, 37, 38, 39, 40, 41, 23, 42, 43,
23, 23, 23, 20, 23, 23, 23, 23, 21, 44,
- 44, 92, 700, 368, 93, 94, 66, 67, 66, 98,
+ 44, 85, 95, 699, 88, 96, 97, 509, 102, 86,
- 369, 701, 60, 60, 61, 61, 62, 62, 95, 99,
- 66, 67, 66, 113, 100, 66, 67, 66, 117, 104,
- 105, 104, 118, 702, 289, 45, 45, 705, 381, 119,
+ 89, 90, 60, 60, 61, 61, 62, 62, 103, 98,
+ 87, 154, 510, 104, 66, 67, 66, 117, 66, 67,
+ 66, 700, 155, 169, 701, 45, 45, 134, 170, 135,
21, 21, 18, 47, 18, 48, 49, 50, 63, 63,
- 130, 140, 131, 64, 64, 231, 141, 153, 156, 290,
- 142, 382, 184, 253, 143, 132, 305, 154, 144, 133,
- 305, 157, 185, 254, 568, 232, 306, 706, 707, 51,
- 306, 708, 320, 396, 52, 18, 47, 18, 48, 49,
- 50, 296, 321, 397, 569, 436, 297, 403, 298, 470,
- 426, 459, 407, 437, 307, 299, 396, 404, 403, 300,
-
- 427, 460, 408, 407, 471, 509, 397, 709, 404, 710,
- 711, 712, 51, 408, 713, 510, 716, 52, 18, 18,
+ 160, 121, 136, 64, 64, 122, 137, 309, 147, 193,
+ 161, 184, 123, 148, 108, 109, 108, 149, 185, 194,
+ 238, 150, 245, 270, 281, 151, 412, 239, 702, 51,
+ 703, 282, 310, 271, 52, 18, 47, 18, 48, 49,
+ 50, 318, 246, 328, 397, 704, 319, 343, 320, 413,
+ 427, 398, 328, 329, 435, 321, 439, 344, 461, 322,
+
+ 428, 496, 329, 427, 436, 527, 440, 705, 462, 501,
+ 708, 497, 51, 428, 528, 502, 709, 52, 18, 18,
47, 18, 18, 22, 18, 18, 18, 18, 18, 18,
- 409, 511, 514, 459, 537, 547, 717, 718, 538, 539,
- 565, 512, 515, 460, 570, 509, 540, 548, 511, 514,
- 566, 719, 720, 721, 571, 510, 20, 18, 512, 515,
- 722, 21, 18, 18, 47, 18, 18, 22, 18, 18,
- 18, 18, 18, 18, 609, 623, 627, 565, 630, 570,
- 643, 651, 654, 658, 610, 624, 628, 566, 631, 571,
- 644, 652, 669, 659, 655, 723, 724, 725, 728, 729,
-
- 20, 18, 670, 672, 674, 21, 55, 56, 18, 48,
- 22, 50, 676, 673, 675, 609, 682, 623, 627, 630,
- 703, 643, 677, 651, 714, 610, 683, 624, 628, 631,
- 704, 644, 658, 652, 715, 726, 730, 731, 732, 733,
- 738, 741, 659, 57, 742, 727, 672, 674, 58, 55,
- 56, 18, 48, 22, 50, 676, 673, 675, 734, 736,
- 682, 739, 743, 745, 747, 677, 748, 749, 735, 737,
- 683, 740, 744, 746, 750, 751, 754, 752, 755, 757,
- 759, 760, 761, 762, 763, 764, 57, 753, 756, 758,
- 765, 58, 18, 18, 19, 18, 18, 18, 18, 18,
-
- 18, 703, 766, 18, 767, 768, 769, 771, 773, 714,
- 774, 704, 775, 776, 777, 778, 770, 772, 779, 715,
- 783, 781, 787, 726, 788, 789, 790, 791, 780, 792,
- 20, 782, 793, 727, 794, 21, 18, 18, 19, 18,
- 18, 18, 18, 18, 18, 784, 734, 18, 736, 739,
- 795, 797, 743, 798, 745, 785, 735, 799, 737, 740,
- 796, 801, 744, 786, 746, 802, 803, 800, 752, 804,
- 755, 757, 805, 806, 20, 807, 808, 809, 753, 21,
- 756, 758, 810, 811, 812, 813, 815, 769, 771, 816,
- 817, 818, 819, 820, 821, 814, 779, 770, 772, 781,
-
- 823, 784, 824, 825, 822, 827, 780, 828, 829, 782,
- 830, 785, 831, 826, 832, 834, 795, 836, 837, 799,
- 838, 839, 840, 842, 833, 835, 796, 844, 845, 800,
- 847, 848, 841, 843, 849, 850, 851, 852, 846, 813,
- 853, 854, 855, 856, 857, 858, 821, 860, 862, 814,
- 825, 863, 864, 865, 866, 859, 822, 861, 867, 832,
- 826, 834, 869, 870, 872, 873, 840, 842, 868, 833,
- 875, 835, 845, 871, 877, 874, 841, 843, 879, 880,
- 876, 881, 846, 882, 878, 883, 885, 886, 887, 889,
- 891, 858, 860, 892, 893, 884, 895, 896, 888, 890,
-
- 897, 859, 861, 867, 894, 898, 870, 899, 873, 875,
- 877, 901, 903, 868, 904, 905, 871, 900, 874, 876,
- 878, 902, 883, 907, 908, 906, 887, 889, 909, 910,
- 893, 912, 884, 913, 914, 915, 888, 890, 899, 911,
- 894, 901, 917, 919, 905, 916, 920, 921, 900, 922,
- 910, 902, 918, 924, 906, 926, 928, 915, 917, 923,
- 911, 930, 932, 925, 934, 927, 929, 916, 918, 922,
- 924, 931, 933, 926, 928, 930, 932, 935, 935, 923,
- 925, 109, 697, 927, 929, 931, 933, 936, 936, 18,
- 18, 18, 18, 18, 18, 46, 46, 46, 46, 46,
-
- 46, 53, 53, 53, 53, 53, 53, 54, 54, 54,
- 54, 54, 54, 59, 59, 59, 59, 59, 59, 65,
- 65, 65, 65, 65, 65, 69, 69, 106, 696, 106,
- 106, 106, 106, 110, 695, 694, 110, 110, 110, 115,
- 115, 115, 693, 692, 691, 690, 689, 688, 687, 686,
- 685, 684, 681, 680, 679, 678, 671, 668, 667, 666,
- 665, 664, 663, 662, 661, 660, 657, 656, 653, 650,
- 649, 648, 647, 646, 645, 642, 641, 640, 639, 638,
- 637, 636, 635, 634, 633, 632, 629, 626, 625, 622,
- 621, 620, 619, 618, 617, 616, 615, 614, 613, 612,
-
- 611, 608, 607, 606, 605, 604, 603, 602, 601, 600,
- 599, 598, 597, 596, 595, 594, 593, 592, 591, 590,
- 589, 588, 587, 586, 585, 584, 583, 582, 581, 580,
- 579, 578, 577, 576, 575, 574, 573, 572, 567, 564,
- 563, 562, 561, 560, 559, 558, 557, 556, 555, 554,
- 553, 552, 551, 550, 549, 546, 545, 544, 543, 542,
- 541, 536, 535, 534, 533, 532, 531, 530, 529, 528,
- 527, 526, 525, 524, 523, 522, 521, 520, 519, 518,
- 517, 516, 513, 508, 507, 506, 505, 504, 503, 502,
- 501, 500, 499, 498, 497, 496, 495, 494, 493, 492,
-
- 491, 490, 489, 488, 487, 486, 485, 484, 483, 482,
- 481, 480, 479, 478, 477, 476, 475, 474, 473, 472,
- 469, 468, 467, 466, 465, 464, 463, 462, 461, 458,
- 457, 456, 455, 454, 453, 452, 451, 450, 449, 448,
- 447, 446, 445, 444, 443, 442, 441, 440, 439, 438,
- 435, 434, 433, 432, 431, 430, 429, 428, 425, 424,
- 423, 422, 421, 420, 419, 418, 417, 416, 415, 414,
- 413, 412, 411, 410, 406, 405, 402, 401, 400, 399,
- 398, 395, 394, 393, 392, 391, 390, 389, 388, 387,
- 386, 385, 384, 383, 380, 379, 378, 377, 376, 375,
-
- 374, 373, 372, 371, 370, 367, 366, 365, 364, 363,
+ 330, 435, 439, 517, 441, 555, 557, 560, 496, 517,
+ 598, 436, 440, 518, 617, 556, 558, 561, 497, 518,
+ 622, 710, 599, 711, 618, 620, 20, 18, 712, 713,
+ 623, 21, 18, 18, 47, 18, 18, 22, 18, 18,
+ 18, 18, 18, 18, 585, 621, 716, 555, 586, 587,
+ 557, 560, 668, 683, 588, 687, 589, 556, 617, 690,
+ 558, 561, 669, 684, 622, 688, 719, 722, 618, 691,
+
+ 20, 18, 696, 706, 623, 21, 55, 56, 18, 48,
+ 22, 50, 697, 707, 714, 717, 720, 723, 726, 724,
+ 727, 728, 729, 730, 715, 718, 731, 732, 721, 725,
+ 733, 734, 735, 736, 737, 739, 740, 742, 746, 747,
+ 748, 749, 750, 57, 738, 744, 741, 743, 58, 55,
+ 56, 18, 48, 22, 50, 745, 668, 751, 752, 754,
+ 755, 756, 757, 758, 759, 760, 669, 761, 753, 683,
+ 762, 763, 687, 764, 690, 765, 766, 767, 768, 684,
+ 696, 769, 688, 770, 691, 771, 57, 772, 773, 776,
+ 697, 58, 18, 18, 19, 18, 18, 18, 18, 18,
+
+ 18, 774, 777, 18, 706, 778, 779, 780, 781, 782,
+ 783, 775, 714, 784, 707, 717, 785, 786, 788, 789,
+ 790, 724, 715, 791, 792, 718, 793, 787, 794, 795,
+ 20, 725, 796, 797, 802, 21, 18, 18, 19, 18,
+ 18, 18, 18, 18, 18, 798, 800, 18, 803, 804,
+ 805, 806, 740, 742, 744, 799, 801, 807, 808, 809,
+ 810, 811, 741, 743, 745, 813, 752, 815, 816, 818,
+ 819, 812, 820, 822, 20, 814, 753, 824, 817, 21,
+ 825, 826, 821, 823, 827, 828, 829, 831, 832, 834,
+ 835, 837, 838, 839, 840, 774, 830, 841, 833, 842,
+
+ 836, 843, 844, 845, 846, 775, 847, 848, 850, 852,
+ 786, 853, 854, 855, 856, 857, 858, 849, 851, 860,
+ 787, 862, 863, 866, 798, 800, 859, 867, 868, 861,
+ 869, 870, 864, 871, 799, 801, 872, 873, 875, 876,
+ 865, 811, 813, 878, 816, 879, 881, 874, 820, 877,
+ 822, 812, 814, 882, 817, 880, 883, 885, 821, 886,
+ 823, 887, 829, 888, 832, 889, 884, 835, 890, 891,
+ 892, 893, 830, 894, 833, 895, 896, 836, 897, 898,
+ 900, 901, 848, 850, 902, 903, 904, 905, 906, 899,
+ 907, 858, 849, 851, 860, 909, 863, 910, 911, 913,
+
+ 908, 859, 914, 915, 861, 916, 864, 917, 912, 918,
+ 873, 919, 876, 921, 879, 923, 924, 883, 925, 926,
+ 874, 920, 877, 922, 880, 927, 929, 884, 931, 933,
+ 934, 936, 937, 938, 939, 928, 930, 940, 932, 941,
+ 935, 898, 942, 943, 944, 945, 946, 947, 948, 907,
+ 950, 899, 952, 911, 953, 954, 955, 956, 949, 908,
+ 951, 957, 958, 912, 919, 921, 960, 961, 963, 964,
+ 927, 929, 959, 931, 920, 922, 966, 962, 934, 965,
+ 928, 930, 968, 932, 970, 971, 967, 972, 935, 973,
+ 974, 976, 969, 977, 978, 979, 981, 983, 948, 950,
+
+ 975, 984, 985, 987, 988, 980, 982, 989, 949, 951,
+ 990, 958, 986, 991, 961, 992, 964, 966, 968, 994,
+ 996, 959, 997, 998, 962, 993, 965, 967, 969, 995,
+ 974, 1000, 1001, 999, 1002, 979, 981, 1003, 1004, 985,
+ 975, 1006, 1007, 1008, 1009, 980, 982, 1010, 1005, 986,
+ 992, 994, 1012, 1014, 998, 1015, 1016, 1011, 1017, 1018,
+ 993, 995, 1013, 1004, 999, 1020, 1021, 1023, 1025, 1019,
+ 1010, 1012, 1027, 1005, 1029, 1031, 1022, 1024, 1026, 1033,
+ 1011, 1013, 1028, 1018, 1030, 1032, 1034, 1021, 1023, 1025,
+ 1027, 1029, 1031, 1019, 1036, 1034, 1035, 1022, 1024, 1026,
+
+ 1028, 1030, 1032, 1036, 1037, 1035, 113, 698, 695, 694,
+ 693, 692, 689, 1037, 18, 18, 18, 18, 18, 18,
+ 46, 46, 46, 46, 46, 46, 53, 53, 53, 53,
+ 53, 53, 54, 54, 54, 54, 54, 54, 59, 59,
+ 59, 59, 59, 59, 65, 65, 65, 65, 65, 65,
+ 69, 69, 110, 686, 110, 110, 110, 110, 114, 685,
+ 682, 114, 114, 114, 119, 119, 119, 681, 680, 679,
+ 678, 677, 676, 675, 674, 673, 672, 671, 670, 667,
+ 666, 665, 664, 663, 662, 661, 660, 659, 658, 657,
+ 656, 655, 654, 653, 652, 651, 650, 649, 648, 647,
+
+ 646, 645, 644, 643, 642, 641, 640, 639, 638, 637,
+ 636, 635, 634, 633, 632, 631, 630, 629, 628, 627,
+ 626, 625, 624, 619, 616, 615, 614, 613, 612, 611,
+ 610, 609, 608, 607, 606, 605, 604, 603, 602, 601,
+ 600, 597, 596, 595, 594, 593, 592, 591, 590, 584,
+ 583, 582, 581, 580, 579, 578, 577, 576, 575, 574,
+ 573, 572, 571, 570, 569, 568, 567, 566, 565, 564,
+ 563, 562, 559, 554, 553, 552, 551, 550, 549, 548,
+ 547, 546, 545, 544, 543, 542, 541, 540, 539, 538,
+ 537, 536, 535, 534, 533, 532, 531, 530, 529, 526,
+
+ 525, 524, 523, 522, 521, 520, 519, 516, 515, 514,
+ 513, 512, 511, 508, 507, 506, 505, 504, 503, 500,
+ 499, 498, 495, 494, 493, 492, 491, 490, 489, 488,
+ 487, 486, 485, 484, 483, 482, 481, 480, 479, 478,
+ 477, 476, 475, 474, 473, 470, 469, 468, 467, 466,
+ 465, 464, 463, 460, 459, 458, 457, 456, 455, 454,
+ 453, 452, 451, 450, 449, 448, 447, 446, 445, 444,
+ 443, 442, 438, 437, 434, 433, 432, 431, 430, 429,
+ 426, 425, 424, 423, 422, 421, 420, 419, 418, 417,
+ 416, 415, 414, 411, 410, 409, 408, 407, 406, 405,
+
+ 404, 403, 402, 401, 400, 399, 396, 395, 394, 393,
+ 392, 391, 390, 389, 388, 387, 386, 385, 384, 383,
+ 382, 381, 380, 379, 378, 377, 376, 375, 374, 373,
+ 372, 371, 370, 369, 368, 367, 366, 365, 364, 363,
362, 361, 360, 359, 358, 357, 356, 355, 354, 353,
- 352, 351, 350, 349, 348, 347, 346, 345, 344, 343,
- 342, 341, 340, 339, 338, 337, 336, 335, 334, 333,
- 332, 331, 330, 329, 328, 327, 326, 325, 324, 323,
- 322, 319, 318, 317, 316, 315, 314, 313, 312, 311,
- 310, 309, 308, 304, 303, 302, 301, 295, 294, 293,
- 292, 291, 288, 287, 286, 285, 284, 283, 282, 281,
- 280, 279, 278, 277, 276, 275, 274, 273, 272, 271,
- 270, 269, 268, 267, 266, 265, 264, 263, 262, 261,
-
- 260, 259, 258, 257, 256, 255, 252, 251, 250, 249,
- 248, 247, 246, 245, 244, 243, 242, 241, 240, 239,
- 238, 237, 236, 235, 234, 233, 230, 229, 228, 227,
- 224, 223, 222, 221, 220, 219, 218, 217, 216, 215,
- 214, 213, 212, 211, 210, 209, 208, 207, 206, 205,
- 204, 203, 202, 201, 200, 199, 198, 197, 196, 195,
- 194, 193, 192, 191, 190, 189, 188, 187, 186, 183,
- 182, 181, 180, 179, 178, 177, 176, 175, 174, 173,
- 172, 171, 170, 169, 168, 167, 114, 166, 111, 165,
- 164, 163, 160, 159, 158, 155, 152, 151, 150, 149,
-
- 146, 145, 139, 138, 137, 136, 135, 134, 129, 128,
- 127, 124, 123, 122, 121, 120, 116, 114, 68, 107,
- 112, 111, 108, 107, 103, 102, 101, 97, 96, 91,
- 90, 89, 88, 83, 70, 68, 937, 17, 937, 937,
- 937, 937, 937, 937, 937, 937, 937, 937, 937, 937,
- 937, 937, 937, 937, 937, 937, 937, 937, 937, 937,
- 937, 937, 937, 937, 937, 937, 937, 937, 937, 937,
- 937, 937, 937, 937, 937, 937, 937, 937, 937, 937,
- 937, 937
+ 352, 351, 350, 349, 348, 347, 346, 345, 342, 341,
+ 340, 339, 338, 337, 336, 335, 334, 333, 332, 331,
+ 327, 326, 325, 324, 323, 317, 316, 315, 314, 313,
+ 312, 311, 308, 307, 306, 305, 304, 303, 302, 301,
+ 300, 299, 298, 297, 296, 295, 294, 293, 292, 291,
+
+ 290, 289, 288, 287, 286, 285, 284, 283, 280, 279,
+ 278, 277, 276, 275, 274, 273, 272, 269, 268, 267,
+ 266, 265, 264, 263, 262, 261, 260, 259, 258, 257,
+ 256, 255, 254, 253, 252, 251, 250, 249, 248, 247,
+ 244, 243, 242, 241, 240, 237, 236, 235, 234, 233,
+ 232, 231, 230, 229, 228, 227, 226, 225, 224, 223,
+ 222, 221, 220, 219, 218, 217, 216, 215, 214, 213,
+ 212, 211, 210, 209, 208, 207, 206, 205, 204, 203,
+ 202, 201, 200, 199, 198, 197, 196, 195, 192, 191,
+ 190, 189, 188, 187, 186, 183, 182, 181, 180, 179,
+
+ 178, 177, 176, 175, 118, 174, 115, 173, 172, 171,
+ 168, 167, 166, 165, 162, 159, 158, 157, 156, 153,
+ 152, 146, 145, 144, 143, 142, 141, 140, 139, 138,
+ 133, 132, 131, 128, 127, 126, 125, 124, 120, 118,
+ 68, 111, 116, 115, 112, 111, 107, 106, 105, 99,
+ 94, 93, 92, 91, 70, 68, 1038, 17, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+
+ 1038, 1038
} ;
-static yyconst short int yy_chk[1283] =
+static yyconst short int yy_chk[1403] =
{ 0,
- 0, 261, 1, 2, 20, 20, 20, 45, 45, 45,
- 0, 261, 26, 51, 51, 51, 635, 90, 26, 101,
- 25, 27, 29, 26, 101, 28, 26, 27, 90, 25,
- 31, 32, 32, 174, 29, 28, 76, 76, 1, 2,
- 174, 31, 636, 1, 2, 3, 3, 3, 3, 3,
+ 0, 278, 1, 2, 20, 20, 20, 45, 45, 45,
+ 0, 278, 26, 51, 51, 51, 39, 30, 26, 0,
+ 25, 27, 29, 26, 100, 28, 26, 27, 402, 25,
+ 30, 39, 76, 76, 29, 28, 402, 100, 1, 2,
+ 57, 57, 57, 1, 2, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 5,
- 6, 37, 637, 310, 37, 37, 57, 57, 57, 40,
+ 6, 31, 37, 628, 32, 37, 37, 443, 40, 31,
- 310, 638, 13, 14, 13, 14, 13, 14, 37, 40,
- 63, 63, 63, 63, 40, 66, 66, 66, 70, 104,
- 104, 104, 70, 639, 237, 5, 6, 641, 324, 70,
+ 32, 32, 13, 14, 13, 14, 13, 14, 40, 37,
+ 31, 93, 443, 40, 63, 63, 63, 63, 66, 66,
+ 66, 629, 93, 105, 630, 5, 6, 80, 105, 80,
5, 6, 7, 7, 7, 7, 7, 7, 13, 14,
- 80, 87, 80, 13, 14, 179, 87, 95, 97, 237,
- 87, 324, 133, 200, 87, 80, 248, 95, 87, 80,
- 305, 97, 133, 200, 502, 179, 248, 642, 645, 7,
- 305, 646, 320, 338, 7, 8, 8, 8, 8, 8,
- 8, 243, 320, 338, 502, 373, 243, 344, 243, 411,
- 364, 395, 347, 373, 248, 243, 396, 344, 403, 243,
-
- 364, 395, 347, 407, 411, 449, 396, 647, 403, 648,
- 649, 650, 8, 407, 653, 449, 655, 8, 9, 9,
+ 98, 70, 80, 13, 14, 70, 80, 251, 90, 137,
+ 98, 129, 70, 90, 108, 108, 108, 90, 129, 137,
+ 182, 90, 188, 212, 222, 90, 349, 182, 631, 7,
+ 632, 222, 251, 212, 7, 8, 8, 8, 8, 8,
+ 8, 259, 188, 328, 333, 633, 259, 343, 259, 349,
+ 363, 333, 265, 328, 370, 259, 373, 343, 393, 259,
+
+ 363, 426, 265, 427, 370, 459, 373, 634, 393, 432,
+ 636, 426, 8, 427, 459, 432, 637, 8, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 347, 450, 452, 459, 476, 483, 656, 657, 476, 476,
- 500, 450, 452, 459, 503, 509, 476, 483, 511, 514,
- 500, 660, 661, 662, 503, 509, 9, 9, 511, 514,
- 663, 9, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 547, 560, 563, 565, 567, 570,
- 581, 588, 590, 593, 547, 560, 563, 565, 567, 570,
- 581, 588, 603, 593, 590, 664, 665, 666, 668, 669,
-
- 10, 10, 603, 605, 606, 10, 11, 11, 11, 11,
- 11, 11, 607, 605, 606, 609, 614, 623, 627, 630,
- 640, 643, 607, 651, 654, 609, 614, 623, 627, 630,
- 640, 643, 658, 651, 654, 667, 670, 671, 678, 679,
- 684, 686, 658, 11, 687, 667, 672, 674, 11, 12,
- 12, 12, 12, 12, 12, 676, 672, 674, 680, 681,
- 682, 685, 688, 689, 690, 676, 691, 692, 680, 681,
- 682, 685, 688, 689, 693, 694, 696, 695, 697, 698,
- 699, 700, 701, 702, 705, 706, 12, 695, 697, 698,
- 707, 12, 15, 15, 15, 15, 15, 15, 15, 15,
-
- 15, 703, 708, 15, 709, 710, 711, 712, 713, 714,
- 716, 703, 717, 718, 719, 720, 711, 712, 721, 714,
- 723, 722, 725, 726, 728, 729, 730, 731, 721, 732,
- 15, 722, 733, 726, 738, 15, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 724, 734, 16, 736, 739,
- 741, 742, 743, 747, 745, 724, 734, 748, 736, 739,
- 741, 749, 743, 724, 745, 750, 751, 748, 752, 754,
- 755, 757, 759, 760, 16, 761, 762, 763, 752, 16,
- 755, 757, 764, 765, 766, 767, 768, 769, 771, 773,
- 774, 775, 776, 777, 778, 767, 779, 769, 771, 781,
-
- 783, 784, 786, 787, 778, 788, 779, 789, 790, 781,
- 791, 784, 792, 787, 793, 794, 795, 797, 798, 799,
- 801, 802, 803, 804, 793, 794, 795, 805, 806, 799,
- 807, 808, 803, 804, 809, 810, 811, 812, 806, 813,
- 815, 816, 817, 818, 819, 820, 821, 823, 824, 813,
- 825, 827, 828, 829, 830, 820, 821, 823, 831, 832,
- 825, 834, 836, 837, 838, 839, 840, 842, 831, 832,
- 844, 834, 845, 837, 847, 839, 840, 842, 848, 849,
- 844, 850, 845, 851, 847, 852, 853, 854, 855, 856,
- 857, 858, 860, 862, 863, 852, 864, 865, 855, 856,
-
- 866, 858, 860, 867, 863, 869, 870, 872, 873, 875,
- 877, 879, 880, 867, 881, 882, 870, 872, 873, 875,
- 877, 879, 883, 885, 886, 882, 887, 889, 891, 892,
- 893, 895, 883, 896, 897, 898, 887, 889, 899, 892,
- 893, 901, 903, 904, 905, 898, 907, 908, 899, 909,
- 910, 901, 903, 912, 905, 913, 914, 915, 917, 909,
- 910, 919, 920, 912, 921, 913, 914, 915, 917, 922,
- 924, 919, 920, 926, 928, 930, 932, 934, 935, 922,
- 924, 946, 634, 926, 928, 930, 932, 934, 935, 938,
- 938, 938, 938, 938, 938, 939, 939, 939, 939, 939,
-
- 939, 940, 940, 940, 940, 940, 940, 941, 941, 941,
- 941, 941, 941, 942, 942, 942, 942, 942, 942, 943,
- 943, 943, 943, 943, 943, 944, 944, 945, 633, 945,
- 945, 945, 945, 947, 632, 629, 947, 947, 947, 948,
- 948, 948, 626, 625, 622, 621, 620, 619, 618, 617,
- 616, 615, 613, 612, 611, 608, 604, 602, 601, 600,
- 599, 598, 597, 596, 595, 594, 592, 591, 589, 587,
- 586, 585, 584, 583, 582, 580, 579, 578, 577, 576,
- 575, 574, 573, 572, 569, 568, 564, 562, 561, 559,
- 558, 557, 556, 555, 554, 553, 552, 551, 550, 549,
-
- 548, 546, 545, 544, 543, 542, 541, 540, 539, 538,
+ 265, 435, 439, 450, 373, 486, 487, 489, 496, 517,
+ 526, 435, 439, 450, 544, 486, 487, 489, 496, 517,
+ 547, 638, 526, 639, 544, 546, 9, 9, 640, 641,
+ 547, 9, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 515, 546, 643, 555, 515, 515,
+ 557, 560, 598, 612, 515, 615, 515, 555, 617, 619,
+ 557, 560, 598, 612, 622, 615, 645, 647, 617, 619,
+
+ 10, 10, 626, 635, 622, 10, 11, 11, 11, 11,
+ 11, 11, 626, 635, 642, 644, 646, 648, 650, 649,
+ 651, 652, 653, 654, 642, 644, 655, 656, 646, 649,
+ 657, 658, 659, 660, 661, 662, 663, 664, 666, 667,
+ 670, 671, 672, 11, 661, 665, 663, 664, 11, 12,
+ 12, 12, 12, 12, 12, 665, 668, 673, 674, 675,
+ 676, 677, 678, 679, 680, 681, 668, 682, 674, 683,
+ 685, 686, 687, 689, 690, 692, 693, 694, 695, 683,
+ 696, 698, 687, 699, 690, 700, 12, 701, 702, 704,
+ 696, 12, 15, 15, 15, 15, 15, 15, 15, 15,
+
+ 15, 703, 705, 15, 706, 708, 709, 710, 711, 712,
+ 713, 703, 714, 716, 706, 717, 719, 720, 721, 722,
+ 723, 724, 714, 726, 727, 717, 728, 720, 729, 730,
+ 15, 724, 731, 732, 735, 15, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 733, 734, 16, 736, 737,
+ 738, 739, 740, 742, 744, 733, 734, 746, 747, 748,
+ 749, 750, 740, 742, 744, 751, 752, 754, 755, 756,
+ 757, 750, 758, 759, 16, 751, 752, 760, 755, 16,
+ 761, 762, 758, 759, 763, 764, 765, 766, 767, 768,
+ 769, 770, 771, 772, 773, 774, 765, 776, 767, 777,
+
+ 769, 778, 779, 780, 781, 774, 782, 783, 784, 785,
+ 786, 788, 789, 790, 791, 792, 793, 783, 784, 794,
+ 786, 795, 796, 797, 798, 800, 793, 802, 803, 794,
+ 804, 805, 796, 806, 798, 800, 807, 808, 809, 810,
+ 796, 811, 813, 815, 816, 818, 819, 808, 820, 810,
+ 822, 811, 813, 824, 816, 818, 825, 826, 820, 827,
+ 822, 828, 829, 831, 832, 834, 825, 835, 837, 838,
+ 839, 840, 829, 841, 832, 842, 843, 835, 844, 845,
+ 846, 847, 848, 850, 852, 853, 854, 855, 856, 845,
+ 857, 858, 848, 850, 860, 862, 863, 865, 866, 867,
+
+ 857, 858, 868, 869, 860, 870, 863, 871, 866, 872,
+ 873, 875, 876, 878, 879, 881, 882, 883, 885, 886,
+ 873, 875, 876, 878, 879, 887, 888, 883, 889, 890,
+ 891, 892, 893, 894, 895, 887, 888, 896, 889, 897,
+ 891, 898, 900, 901, 902, 903, 904, 905, 906, 907,
+ 909, 898, 910, 911, 913, 914, 915, 916, 906, 907,
+ 909, 917, 918, 911, 919, 921, 923, 924, 925, 926,
+ 927, 929, 918, 931, 919, 921, 933, 924, 934, 926,
+ 927, 929, 936, 931, 937, 938, 933, 939, 934, 940,
+ 941, 942, 936, 943, 944, 945, 946, 947, 948, 950,
+
+ 941, 952, 953, 954, 955, 945, 946, 956, 948, 950,
+ 957, 958, 953, 960, 961, 963, 964, 966, 968, 970,
+ 971, 958, 972, 973, 961, 963, 964, 966, 968, 970,
+ 974, 976, 977, 973, 978, 979, 981, 983, 984, 985,
+ 974, 987, 988, 989, 990, 979, 981, 991, 984, 985,
+ 992, 994, 996, 997, 998, 1000, 1001, 991, 1002, 1003,
+ 992, 994, 996, 1004, 998, 1006, 1007, 1008, 1009, 1003,
+ 1010, 1012, 1014, 1004, 1015, 1016, 1007, 1008, 1009, 1017,
+ 1010, 1012, 1014, 1018, 1015, 1016, 1020, 1021, 1023, 1025,
+ 1027, 1029, 1031, 1018, 1033, 1034, 1020, 1021, 1023, 1025,
+
+ 1027, 1029, 1031, 1036, 1033, 1034, 1047, 627, 625, 624,
+ 621, 620, 616, 1036, 1039, 1039, 1039, 1039, 1039, 1039,
+ 1040, 1040, 1040, 1040, 1040, 1040, 1041, 1041, 1041, 1041,
+ 1041, 1041, 1042, 1042, 1042, 1042, 1042, 1042, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1044, 1044, 1044, 1044, 1044, 1044,
+ 1045, 1045, 1046, 614, 1046, 1046, 1046, 1046, 1048, 613,
+ 611, 1048, 1048, 1048, 1049, 1049, 1049, 610, 609, 608,
+ 607, 606, 605, 604, 603, 602, 601, 600, 599, 597,
+ 596, 595, 594, 593, 592, 591, 590, 589, 588, 587,
+ 586, 585, 584, 583, 582, 581, 580, 579, 578, 577,
+
+ 576, 575, 574, 573, 572, 571, 570, 569, 568, 567,
+ 566, 565, 564, 563, 562, 559, 554, 553, 552, 551,
+ 550, 549, 548, 545, 543, 542, 541, 540, 539, 538,
537, 536, 535, 534, 533, 532, 531, 530, 529, 528,
- 527, 526, 525, 524, 523, 522, 521, 520, 519, 518,
- 517, 516, 513, 508, 507, 506, 505, 504, 501, 499,
- 498, 497, 496, 495, 494, 493, 492, 491, 490, 489,
- 488, 487, 486, 485, 484, 482, 481, 480, 479, 478,
- 477, 475, 474, 473, 472, 471, 470, 469, 468, 467,
- 466, 465, 464, 463, 462, 461, 458, 457, 456, 455,
- 454, 453, 451, 448, 447, 446, 445, 444, 443, 442,
- 441, 440, 439, 438, 437, 436, 435, 434, 433, 432,
-
- 431, 430, 429, 428, 427, 426, 425, 424, 423, 422,
- 421, 420, 419, 418, 417, 416, 415, 414, 413, 412,
- 410, 409, 406, 405, 402, 401, 400, 399, 398, 394,
- 393, 392, 391, 390, 389, 388, 387, 386, 385, 384,
- 383, 382, 381, 380, 379, 378, 377, 376, 375, 374,
- 372, 371, 370, 369, 368, 367, 366, 365, 363, 362,
- 361, 360, 359, 358, 357, 356, 355, 354, 353, 352,
- 351, 350, 349, 348, 346, 345, 343, 342, 341, 340,
- 339, 337, 336, 335, 334, 333, 332, 331, 330, 329,
- 328, 327, 326, 325, 323, 322, 319, 318, 317, 316,
-
- 315, 314, 313, 312, 311, 309, 308, 307, 304, 303,
- 302, 301, 300, 299, 298, 297, 296, 295, 294, 293,
- 292, 291, 290, 289, 288, 287, 286, 285, 284, 283,
- 282, 281, 280, 279, 278, 277, 276, 275, 274, 273,
- 272, 271, 270, 269, 268, 267, 266, 265, 264, 263,
- 262, 260, 259, 258, 257, 256, 255, 254, 253, 252,
- 251, 250, 249, 247, 246, 245, 244, 242, 241, 240,
- 239, 238, 236, 235, 234, 233, 232, 231, 230, 229,
- 228, 227, 226, 225, 224, 223, 222, 221, 220, 219,
- 216, 215, 214, 213, 212, 211, 210, 209, 208, 207,
-
- 206, 205, 204, 203, 202, 201, 199, 198, 197, 196,
- 195, 194, 193, 192, 191, 190, 189, 188, 187, 186,
- 185, 184, 183, 182, 181, 180, 178, 177, 176, 175,
- 173, 172, 171, 170, 169, 168, 166, 165, 164, 163,
- 162, 161, 160, 159, 158, 157, 156, 155, 154, 153,
- 152, 151, 150, 149, 148, 147, 146, 145, 144, 143,
- 142, 141, 140, 139, 138, 137, 136, 135, 134, 132,
- 131, 130, 129, 128, 127, 126, 125, 124, 123, 122,
- 121, 120, 119, 118, 117, 116, 115, 112, 111, 108,
- 103, 102, 100, 99, 98, 96, 94, 93, 92, 91,
-
- 89, 88, 86, 85, 84, 83, 82, 81, 79, 78,
- 77, 75, 74, 73, 72, 71, 68, 65, 64, 62,
- 58, 55, 52, 50, 43, 42, 41, 39, 38, 36,
- 35, 34, 33, 30, 24, 21, 17, 937, 937, 937,
- 937, 937, 937, 937, 937, 937, 937, 937, 937, 937,
- 937, 937, 937, 937, 937, 937, 937, 937, 937, 937,
- 937, 937, 937, 937, 937, 937, 937, 937, 937, 937,
- 937, 937, 937, 937, 937, 937, 937, 937, 937, 937,
- 937, 937
+ 527, 525, 524, 523, 522, 521, 520, 519, 516, 514,
+ 513, 512, 511, 510, 509, 508, 507, 506, 505, 504,
+ 503, 502, 501, 500, 499, 498, 495, 494, 493, 492,
+ 491, 490, 488, 485, 484, 483, 482, 481, 480, 479,
+ 478, 477, 476, 475, 474, 473, 472, 471, 470, 469,
+ 468, 467, 466, 465, 464, 463, 462, 461, 460, 458,
+
+ 457, 456, 455, 454, 453, 452, 451, 449, 448, 447,
+ 446, 445, 444, 442, 441, 438, 437, 434, 433, 431,
+ 430, 429, 425, 424, 423, 422, 421, 420, 419, 418,
+ 417, 416, 415, 414, 413, 412, 411, 410, 409, 408,
+ 407, 406, 405, 404, 403, 401, 400, 399, 398, 397,
+ 396, 395, 394, 392, 391, 390, 389, 388, 387, 386,
+ 385, 384, 383, 382, 381, 380, 379, 378, 377, 376,
+ 375, 374, 372, 371, 369, 368, 367, 366, 365, 364,
+ 362, 361, 360, 359, 358, 357, 356, 355, 354, 353,
+ 352, 351, 350, 348, 347, 346, 345, 342, 341, 340,
+
+ 339, 338, 337, 336, 335, 334, 332, 331, 330, 327,
+ 326, 325, 324, 323, 322, 321, 320, 319, 318, 317,
+ 316, 315, 314, 313, 312, 311, 310, 309, 308, 307,
+ 306, 305, 304, 303, 302, 301, 300, 299, 298, 297,
+ 296, 295, 294, 293, 292, 291, 290, 289, 288, 287,
+ 286, 285, 284, 283, 282, 281, 280, 279, 277, 276,
+ 275, 274, 273, 272, 271, 270, 269, 268, 267, 266,
+ 264, 263, 262, 261, 260, 258, 257, 256, 255, 254,
+ 253, 252, 250, 249, 248, 247, 246, 245, 244, 243,
+ 242, 241, 240, 239, 238, 237, 236, 235, 234, 233,
+
+ 232, 229, 228, 227, 226, 225, 224, 223, 221, 220,
+ 219, 218, 217, 216, 215, 214, 213, 211, 210, 209,
+ 208, 207, 206, 205, 204, 203, 202, 201, 200, 199,
+ 198, 197, 196, 195, 194, 193, 192, 191, 190, 189,
+ 187, 186, 185, 184, 183, 181, 180, 179, 178, 177,
+ 176, 174, 173, 172, 171, 170, 169, 168, 167, 166,
+ 165, 164, 163, 162, 161, 160, 159, 158, 157, 156,
+ 155, 154, 153, 152, 151, 150, 149, 148, 147, 146,
+ 145, 144, 143, 142, 141, 140, 139, 138, 136, 135,
+ 134, 133, 132, 131, 130, 128, 127, 126, 125, 124,
+
+ 123, 122, 121, 120, 119, 116, 115, 112, 107, 106,
+ 104, 103, 102, 101, 99, 97, 96, 95, 94, 92,
+ 91, 89, 88, 87, 86, 85, 84, 83, 82, 81,
+ 79, 78, 77, 75, 74, 73, 72, 71, 68, 65,
+ 64, 62, 58, 55, 52, 50, 43, 42, 41, 38,
+ 36, 35, 34, 33, 24, 21, 17, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+
+ 1038, 1038
} ;
static yy_state_type yy_last_accepting_state;
@@ -975,7 +1036,7 @@ char *yytext;
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -1034,13 +1095,13 @@ void warn(const char *fmt, ...)
* exported variables
*/
-
QCString Config::projectName;
QCString Config::projectNumber;
QCString Config::outputDir;
QCString Config::htmlOutputDir;
QCString Config::latexOutputDir;
QCString Config::manOutputDir;
+QCString Config::rtfOutputDir;
QCString Config::outputLanguage;
QCString Config::headerFile;
QCString Config::latexHeaderFile;
@@ -1056,6 +1117,7 @@ QCString Config::inputFilter;
QCString Config::paperType;
QCString Config::manExtension;
QCString Config::htmlStyleSheet;
+QCString Config::ignorePrefix;
QStrList Config::includePath;
QStrList Config::examplePath;
QStrList Config::imagePath;
@@ -1091,11 +1153,15 @@ bool Config::alphaIndexFlag = FALSE;
bool Config::pdfHyperFlag = FALSE;
bool Config::alwaysDetailsFlag = FALSE;
bool Config::inlineSourceFlag = FALSE;
+bool Config::rtfHyperFlag = FALSE;
+bool Config::compactRTFFlag = FALSE;
+bool Config::haveDotFlag = FALSE;
bool Config::autoBriefFlag = TRUE;
bool Config::warningFlag = TRUE;
bool Config::generateHtml = TRUE;
bool Config::generateLatex = TRUE;
bool Config::generateMan = TRUE;
+bool Config::generateRTF = FALSE;
bool Config::preprocessingFlag = TRUE;
bool Config::briefMemDescFlag = TRUE;
bool Config::searchIncludeFlag = TRUE;
@@ -1105,9 +1171,13 @@ bool Config::verbatimHeaderFlag = TRUE;
bool Config::htmlAlignMemberFlag = TRUE;
bool Config::inheritDocsFlag = TRUE;
bool Config::inlineInfoFlag = TRUE;
+bool Config::collGraphFlag = TRUE;
+bool Config::includeGraphFlag = TRUE;
+bool Config::gfxHierarchyFlag = TRUE;
int Config::tabSize = 8;
int Config::colsInAlphaIndex = 5;
-
+
+
/* -----------------------------------------------------------------
*
* static variables
@@ -1306,7 +1376,7 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 185 "config.l"
+#line 194 "config.l"
@@ -1359,13 +1429,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 938 )
+ if ( yy_current_state >= 1039 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 1238 );
+ while ( yy_base[yy_current_state] != 1358 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -1393,390 +1463,435 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 187 "config.l"
+#line 196 "config.l"
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 188 "config.l"
+#line 197 "config.l"
{ BEGIN(SkipComment); }
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 189 "config.l"
-{ BEGIN(GetString); s=&Config::projectName; }
+#line 198 "config.l"
+{ BEGIN(GetString); s=&Config::projectName; s->resize(0); }
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 190 "config.l"
-{ BEGIN(GetString); s=&Config::projectNumber; }
+#line 199 "config.l"
+{ BEGIN(GetString); s=&Config::projectNumber; s->resize(0); }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 191 "config.l"
-{ BEGIN(GetString); s=&Config::outputDir; }
+#line 200 "config.l"
+{ BEGIN(GetString); s=&Config::outputDir; s->resize(0); }
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 192 "config.l"
-{ BEGIN(GetString); s=&Config::htmlOutputDir; }
+#line 201 "config.l"
+{ BEGIN(GetString); s=&Config::htmlOutputDir; s->resize(0); }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 193 "config.l"
-{ BEGIN(GetString); s=&Config::manOutputDir; }
+#line 202 "config.l"
+{ BEGIN(GetString); s=&Config::manOutputDir; s->resize(0); }
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 194 "config.l"
-{ BEGIN(GetString); s=&Config::latexOutputDir; }
+#line 203 "config.l"
+{ BEGIN(GetString); s=&Config::latexOutputDir; s->resize(0); }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 195 "config.l"
-{ BEGIN(GetString); s=&Config::headerFile; }
+#line 204 "config.l"
+{ BEGIN(GetString); s=&Config::rtfOutputDir; s->resize(0); }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 196 "config.l"
-{ BEGIN(GetString); s=&Config::footerFile; }
+#line 205 "config.l"
+{ BEGIN(GetString); s=&Config::headerFile; s->resize(0); }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 197 "config.l"
-{ BEGIN(GetString); s=&Config::latexHeaderFile; }
+#line 206 "config.l"
+{ BEGIN(GetString); s=&Config::footerFile; s->resize(0); }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 198 "config.l"
-{ BEGIN(GetString); s=&Config::cgiName; }
+#line 207 "config.l"
+{ BEGIN(GetString); s=&Config::latexHeaderFile; s->resize(0); }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 199 "config.l"
-{ BEGIN(GetString); s=&Config::cgiURL; }
+#line 208 "config.l"
+{ BEGIN(GetString); s=&Config::cgiName; s->resize(0); }
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 200 "config.l"
-{ BEGIN(GetString); s=&Config::docURL; }
+#line 209 "config.l"
+{ BEGIN(GetString); s=&Config::cgiURL; s->resize(0); }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 201 "config.l"
-{ BEGIN(GetString); s=&Config::binAbsPath; }
+#line 210 "config.l"
+{ BEGIN(GetString); s=&Config::docURL; s->resize(0); }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 202 "config.l"
-{ BEGIN(GetString); s=&Config::docAbsPath; }
+#line 211 "config.l"
+{ BEGIN(GetString); s=&Config::binAbsPath; s->resize(0); }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 203 "config.l"
-{ BEGIN(GetString); s=&Config::perlPath; }
+#line 212 "config.l"
+{ BEGIN(GetString); s=&Config::docAbsPath; s->resize(0); }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 204 "config.l"
-{ BEGIN(GetString); s=&Config::genTagFile; }
+#line 213 "config.l"
+{ BEGIN(GetString); s=&Config::perlPath; s->resize(0); }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 205 "config.l"
-{ BEGIN(GetString); s=&Config::inputFilter; }
+#line 214 "config.l"
+{ BEGIN(GetString); s=&Config::genTagFile; s->resize(0); }
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 206 "config.l"
-{ BEGIN(GetString); s=&Config::paperType; }
+#line 215 "config.l"
+{ BEGIN(GetString); s=&Config::inputFilter; s->resize(0); }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 207 "config.l"
-{ BEGIN(GetString); s=&Config::outputLanguage; }
+#line 216 "config.l"
+{ BEGIN(GetString); s=&Config::paperType; s->resize(0); }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 208 "config.l"
-{ BEGIN(GetString); s=&Config::manExtension; }
+#line 217 "config.l"
+{ BEGIN(GetString); s=&Config::outputLanguage; s->resize(0); }
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 209 "config.l"
-{ BEGIN(GetString); s=&tabSizeString; }
+#line 218 "config.l"
+{ BEGIN(GetString); s=&Config::manExtension; s->resize(0); }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 210 "config.l"
-{ BEGIN(GetString); s=&Config::htmlStyleSheet; }
+#line 219 "config.l"
+{ BEGIN(GetString); s=&tabSizeString; s->resize(0); }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 211 "config.l"
-{ BEGIN(GetString); s=&colsInAlphaIndexString; }
+#line 220 "config.l"
+{ BEGIN(GetString); s=&Config::htmlStyleSheet; s->resize(0); }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 212 "config.l"
-{ BEGIN(GetStrList); l=&Config::includePath; elemStr=""; }
+#line 221 "config.l"
+{ BEGIN(GetString); s=&colsInAlphaIndexString; s->resize(0); }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 213 "config.l"
-{ BEGIN(GetStrList); l=&Config::examplePath; elemStr=""; }
+#line 222 "config.l"
+{ BEGIN(GetString); s=&Config::ignorePrefix; s->resize(0); }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 214 "config.l"
-{ BEGIN(GetStrList); l=&Config::imagePath; elemStr=""; }
+#line 223 "config.l"
+{ BEGIN(GetStrList); l=&Config::includePath; l->clear(); elemStr=""; }
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 215 "config.l"
-{ BEGIN(GetStrList); l=&Config::inputSources; elemStr=""; }
+#line 224 "config.l"
+{ BEGIN(GetStrList); l=&Config::examplePath; l->clear(); elemStr=""; }
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 216 "config.l"
-{ BEGIN(GetStrList); l=&Config::excludeSources; elemStr=""; }
+#line 225 "config.l"
+{ BEGIN(GetStrList); l=&Config::imagePath; l->clear(); elemStr=""; }
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 217 "config.l"
-{ BEGIN(GetStrList); l=&Config::filePatternList; elemStr=""; }
+#line 226 "config.l"
+{ BEGIN(GetStrList); l=&Config::inputSources; l->clear(); elemStr=""; }
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 218 "config.l"
-{ BEGIN(GetStrList); l=&Config::excludePatternList; elemStr=""; }
+#line 227 "config.l"
+{ BEGIN(GetStrList); l=&Config::excludeSources; l->clear(); elemStr=""; }
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 219 "config.l"
-{ BEGIN(GetStrList); l=&Config::examplePatternList; elemStr=""; }
+#line 228 "config.l"
+{ BEGIN(GetStrList); l=&Config::filePatternList; l->clear(); elemStr=""; }
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 220 "config.l"
-{ BEGIN(GetStrList); l=&Config::imagePatternList; elemStr=""; }
+#line 229 "config.l"
+{ BEGIN(GetStrList); l=&Config::excludePatternList; l->clear(); elemStr=""; }
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 221 "config.l"
-{ BEGIN(GetStrList); l=&Config::tagFileList; elemStr=""; }
+#line 230 "config.l"
+{ BEGIN(GetStrList); l=&Config::examplePatternList; l->clear(); elemStr=""; }
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 222 "config.l"
-{ BEGIN(GetStrList); l=&Config::extDocPathList; elemStr=""; }
+#line 231 "config.l"
+{ BEGIN(GetStrList); l=&Config::imagePatternList; l->clear(); elemStr=""; }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 223 "config.l"
-{ BEGIN(GetStrList); l=&Config::predefined; elemStr=""; }
+#line 232 "config.l"
+{ BEGIN(GetStrList); l=&Config::tagFileList; l->clear(); elemStr=""; }
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 224 "config.l"
-{ BEGIN(GetStrList); l=&Config::extraPackageList; elemStr=""; }
+#line 233 "config.l"
+{ BEGIN(GetStrList); l=&Config::extDocPathList; l->clear(); elemStr=""; }
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 225 "config.l"
-{ BEGIN(GetStrList); l=&Config::stripFromPath; elemStr=""; }
+#line 234 "config.l"
+{ BEGIN(GetStrList); l=&Config::predefined; l->clear(); elemStr=""; }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 226 "config.l"
-{ BEGIN(GetBool); b=&Config::quietFlag; }
+#line 235 "config.l"
+{ BEGIN(GetStrList); l=&Config::extraPackageList; l->clear(); elemStr=""; }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 227 "config.l"
-{ BEGIN(GetBool); b=&Config::warningFlag; }
+#line 236 "config.l"
+{ BEGIN(GetStrList); l=&Config::stripFromPath; l->clear(); elemStr=""; }
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 228 "config.l"
-{ BEGIN(GetBool); b=&Config::recursiveFlag; }
+#line 237 "config.l"
+{ BEGIN(GetBool); b=&Config::quietFlag; }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 229 "config.l"
-{ BEGIN(GetBool); b=&Config::allExtFlag; }
+#line 238 "config.l"
+{ BEGIN(GetBool); b=&Config::warningFlag; }
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 230 "config.l"
-{ BEGIN(GetBool); b=&Config::searchEngineFlag; }
+#line 239 "config.l"
+{ BEGIN(GetBool); b=&Config::recursiveFlag; }
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 231 "config.l"
-{ BEGIN(GetBool); b=&Config::extractAllFlag; }
+#line 240 "config.l"
+{ BEGIN(GetBool); b=&Config::allExtFlag; }
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 232 "config.l"
-{ BEGIN(GetBool); b=&Config::extractPrivateFlag; }
+#line 241 "config.l"
+{ BEGIN(GetBool); b=&Config::searchEngineFlag; }
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 233 "config.l"
-{ BEGIN(GetBool); b=&Config::noIndexFlag; }
+#line 242 "config.l"
+{ BEGIN(GetBool); b=&Config::extractAllFlag; }
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 234 "config.l"
-{ BEGIN(GetBool); b=&Config::generateLatex; }
+#line 243 "config.l"
+{ BEGIN(GetBool); b=&Config::extractPrivateFlag; }
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 235 "config.l"
-{ BEGIN(GetBool); b=&Config::generateHtml; }
+#line 244 "config.l"
+{ BEGIN(GetBool); b=&Config::noIndexFlag; }
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 236 "config.l"
-{ BEGIN(GetBool); b=&Config::generateMan; }
+#line 245 "config.l"
+{ BEGIN(GetBool); b=&Config::generateLatex; }
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 237 "config.l"
-{ BEGIN(GetBool); b=&Config::preprocessingFlag; }
+#line 246 "config.l"
+{ BEGIN(GetBool); b=&Config::generateHtml; }
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 238 "config.l"
-{ BEGIN(GetBool); b=&Config::macroExpansionFlag; }
+#line 247 "config.l"
+{ BEGIN(GetBool); b=&Config::generateMan; }
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 239 "config.l"
-{ BEGIN(GetBool); b=&Config::searchIncludeFlag; }
+#line 248 "config.l"
+{ BEGIN(GetBool); b=&Config::preprocessingFlag; }
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 240 "config.l"
-{ BEGIN(GetBool); b=&Config::briefMemDescFlag; }
+#line 249 "config.l"
+{ BEGIN(GetBool); b=&Config::macroExpansionFlag; }
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 241 "config.l"
-{ BEGIN(GetBool); b=&Config::alwaysDetailsFlag; }
+#line 250 "config.l"
+{ BEGIN(GetBool); b=&Config::searchIncludeFlag; }
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 242 "config.l"
-{ BEGIN(GetBool); b=&Config::hideMemberFlag; }
+#line 251 "config.l"
+{ BEGIN(GetBool); b=&Config::briefMemDescFlag; }
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 243 "config.l"
-{ BEGIN(GetBool); b=&Config::hideClassFlag; }
+#line 252 "config.l"
+{ BEGIN(GetBool); b=&Config::alwaysDetailsFlag; }
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 244 "config.l"
-{ BEGIN(GetBool); b=&Config::onlyPredefinedFlag; }
+#line 253 "config.l"
+{ BEGIN(GetBool); b=&Config::hideMemberFlag; }
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 245 "config.l"
-{ BEGIN(GetBool); b=&Config::fullPathNameFlag; }
+#line 254 "config.l"
+{ BEGIN(GetBool); b=&Config::hideClassFlag; }
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 246 "config.l"
-{ BEGIN(GetBool); b=&Config::classDiagramFlag; }
+#line 255 "config.l"
+{ BEGIN(GetBool); b=&Config::onlyPredefinedFlag; }
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 247 "config.l"
-{ BEGIN(GetBool); b=&Config::compactLatexFlag; }
+#line 256 "config.l"
+{ BEGIN(GetBool); b=&Config::fullPathNameFlag; }
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 248 "config.l"
-{ BEGIN(GetBool); b=&Config::repeatBriefFlag; }
+#line 257 "config.l"
+{ BEGIN(GetBool); b=&Config::classDiagramFlag; }
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 249 "config.l"
-{ BEGIN(GetBool); b=&Config::internalDocsFlag; }
+#line 258 "config.l"
+{ BEGIN(GetBool); b=&Config::compactLatexFlag; }
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 250 "config.l"
-{ BEGIN(GetBool); b=&Config::caseSensitiveNames; }
+#line 259 "config.l"
+{ BEGIN(GetBool); b=&Config::repeatBriefFlag; }
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 251 "config.l"
-{ BEGIN(GetBool); b=&Config::verbatimHeaderFlag; }
+#line 260 "config.l"
+{ BEGIN(GetBool); b=&Config::internalDocsFlag; }
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 252 "config.l"
-{ BEGIN(GetBool); b=&Config::htmlAlignMemberFlag; }
+#line 261 "config.l"
+{ BEGIN(GetBool); b=&Config::caseSensitiveNames; }
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 253 "config.l"
-{ BEGIN(GetBool); b=&Config::sourceBrowseFlag; }
+#line 262 "config.l"
+{ BEGIN(GetBool); b=&Config::verbatimHeaderFlag; }
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 254 "config.l"
-{ BEGIN(GetBool); b=&Config::autoBriefFlag; }
+#line 263 "config.l"
+{ BEGIN(GetBool); b=&Config::htmlAlignMemberFlag; }
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 255 "config.l"
-{ BEGIN(GetBool); b=&Config::htmlHelpFlag; }
+#line 264 "config.l"
+{ BEGIN(GetBool); b=&Config::sourceBrowseFlag; }
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 256 "config.l"
-{ BEGIN(GetBool); b=&Config::alphaIndexFlag; }
+#line 265 "config.l"
+{ BEGIN(GetBool); b=&Config::autoBriefFlag; }
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 257 "config.l"
-{ BEGIN(GetBool); b=&Config::pdfHyperFlag; }
+#line 266 "config.l"
+{ BEGIN(GetBool); b=&Config::htmlHelpFlag; }
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 258 "config.l"
-{ BEGIN(GetBool); b=&Config::inheritDocsFlag; }
+#line 267 "config.l"
+{ BEGIN(GetBool); b=&Config::alphaIndexFlag; }
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 259 "config.l"
-{ BEGIN(GetBool); b=&Config::inlineInfoFlag; }
+#line 268 "config.l"
+{ BEGIN(GetBool); b=&Config::pdfHyperFlag; }
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 260 "config.l"
-{ BEGIN(GetBool); b=&Config::inlineSourceFlag; }
+#line 269 "config.l"
+{ BEGIN(GetBool); b=&Config::inheritDocsFlag; }
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 261 "config.l"
-{ err("Warning: ignoring unknown tag `%s' at line %d\n",yytext,yyLineNr); }
+#line 270 "config.l"
+{ BEGIN(GetBool); b=&Config::inlineInfoFlag; }
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 262 "config.l"
-{ yyLineNr++; BEGIN(Start); }
+#line 271 "config.l"
+{ BEGIN(GetBool); b=&Config::inlineSourceFlag; }
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 263 "config.l"
+#line 272 "config.l"
+{ BEGIN(GetBool); b=&Config::haveDotFlag; }
+ YY_BREAK
+case 78:
+YY_RULE_SETUP
+#line 273 "config.l"
+{ BEGIN(GetBool); b=&Config::collGraphFlag; }
+ YY_BREAK
+case 79:
+YY_RULE_SETUP
+#line 274 "config.l"
+{ BEGIN(GetBool); b=&Config::includeGraphFlag; }
+ YY_BREAK
+case 80:
+YY_RULE_SETUP
+#line 275 "config.l"
+{ BEGIN(GetBool); b=&Config::gfxHierarchyFlag; }
+ YY_BREAK
+case 81:
+YY_RULE_SETUP
+#line 276 "config.l"
+{ BEGIN(GetBool); b=&Config::generateRTF; }
+ YY_BREAK
+case 82:
+YY_RULE_SETUP
+#line 277 "config.l"
+{ BEGIN(GetBool); b=&Config::compactRTFFlag; }
+ YY_BREAK
+case 83:
+YY_RULE_SETUP
+#line 278 "config.l"
+{ BEGIN(GetBool); b=&Config::rtfHyperFlag; }
+ YY_BREAK
+case 84:
+YY_RULE_SETUP
+#line 279 "config.l"
+{ err("Warning: ignoring unknown tag `%s' at line %d\n",yytext,yyLineNr); }
+ YY_BREAK
+case 85:
+YY_RULE_SETUP
+#line 280 "config.l"
+{ yyLineNr++; BEGIN(Start); }
+ YY_BREAK
+case 86:
+YY_RULE_SETUP
+#line 281 "config.l"
{
yyLineNr++;
- if (elemStr.length()>0)
+ if (!elemStr.isEmpty())
{
//printf("elemStr1=`%s'\n",elemStr.data());
l->append(elemStr);
@@ -1784,11 +1899,11 @@ YY_RULE_SETUP
BEGIN(Start);
}
YY_BREAK
-case 78:
+case 87:
YY_RULE_SETUP
-#line 272 "config.l"
+#line 290 "config.l"
{
- if (elemStr.length()>0)
+ if (!elemStr.isEmpty())
{
//printf("elemStr2=`%s'\n",elemStr.data());
l->append(elemStr);
@@ -1796,31 +1911,31 @@ YY_RULE_SETUP
elemStr.resize(0);
}
YY_BREAK
-case 79:
+case 88:
YY_RULE_SETUP
-#line 280 "config.l"
+#line 298 "config.l"
{ (*s)+=yytext; }
YY_BREAK
-case 80:
+case 89:
YY_RULE_SETUP
-#line 281 "config.l"
+#line 299 "config.l"
{ lastState=YY_START;
BEGIN(GetQuotedString);
tmpString.resize(0);
}
YY_BREAK
-case 81:
+case 90:
YY_RULE_SETUP
-#line 285 "config.l"
+#line 303 "config.l"
{
//printf(">> Enter env\n");
lastEnvState=YY_START;
BEGIN(GetEnvVar);
}
YY_BREAK
-case 82:
+case 91:
YY_RULE_SETUP
-#line 290 "config.l"
+#line 308 "config.l"
{
yytext[yyleng-1]='\0';
const char *env=getenv(yytext);
@@ -1831,9 +1946,9 @@ YY_RULE_SETUP
BEGIN(lastEnvState);
}
YY_BREAK
-case 83:
+case 92:
YY_RULE_SETUP
-#line 299 "config.l"
+#line 317 "config.l"
{
//printf("Quoted String = `%s'\n",tmpString.data());
if (lastState==GetString)
@@ -1848,21 +1963,21 @@ YY_RULE_SETUP
BEGIN(lastState);
}
YY_BREAK
-case 84:
+case 93:
YY_RULE_SETUP
-#line 312 "config.l"
+#line 330 "config.l"
{
tmpString+='"';
}
YY_BREAK
-case 85:
+case 94:
YY_RULE_SETUP
-#line 315 "config.l"
+#line 333 "config.l"
{ tmpString+=*yytext; }
YY_BREAK
-case 86:
+case 95:
YY_RULE_SETUP
-#line 316 "config.l"
+#line 334 "config.l"
{
QCString bs=yytext;
bs=bs.upper();
@@ -1879,41 +1994,41 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 87:
+case 96:
YY_RULE_SETUP
-#line 331 "config.l"
+#line 349 "config.l"
{
elemStr+=yytext;
}
YY_BREAK
-case 88:
+case 97:
YY_RULE_SETUP
-#line 334 "config.l"
+#line 352 "config.l"
{ yyLineNr++; BEGIN(Start); }
YY_BREAK
-case 89:
+case 98:
YY_RULE_SETUP
-#line 335 "config.l"
+#line 353 "config.l"
{ yyLineNr++; BEGIN(Start); }
YY_BREAK
-case 90:
+case 99:
YY_RULE_SETUP
-#line 336 "config.l"
+#line 354 "config.l"
{ yyLineNr++; }
YY_BREAK
-case 91:
+case 100:
YY_RULE_SETUP
-#line 337 "config.l"
+#line 355 "config.l"
YY_BREAK
-case 92:
+case 101:
YY_RULE_SETUP
-#line 338 "config.l"
+#line 356 "config.l"
{ yyLineNr++ ; }
YY_BREAK
-case 93:
+case 102:
YY_RULE_SETUP
-#line 340 "config.l"
+#line 358 "config.l"
ECHO;
YY_BREAK
case YY_STATE_EOF(INITIAL):
@@ -2214,7 +2329,7 @@ static yy_state_type yy_get_previous_state()
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 938 )
+ if ( yy_current_state >= 1039 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2249,11 +2364,11 @@ yy_state_type yy_current_state;
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 938 )
+ if ( yy_current_state >= 1039 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 937);
+ yy_is_jam = (yy_current_state == 1038);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -2808,7 +2923,7 @@ int main()
return 0;
}
#endif
-#line 340 "config.l"
+#line 358 "config.l"
/*@ ----------------------------------------------------------------------------
@@ -2871,6 +2986,7 @@ void Config::init()
Config::htmlOutputDir = "html";
Config::latexOutputDir ="latex";
Config::manOutputDir ="man";
+ Config::rtfOutputDir = "rtf";
Config::outputLanguage = "English";
Config::headerFile.resize(0);
Config::latexHeaderFile.resize(0);
@@ -2886,6 +3002,7 @@ void Config::init()
Config::paperType = "a4wide";
Config::manExtension = ".3";
Config::htmlStyleSheet.resize(0);
+ Config::ignorePrefix.resize(0);
Config::includePath.clear();
Config::examplePath.clear();
Config::imagePath.clear();
@@ -2923,10 +3040,14 @@ void Config::init()
Config::pdfHyperFlag = FALSE;
Config::alwaysDetailsFlag = FALSE;
Config::inlineSourceFlag = FALSE;
+ Config::haveDotFlag = FALSE;
+ Config::compactRTFFlag = FALSE;
+ Config::rtfHyperFlag = FALSE;
Config::warningFlag = TRUE;
Config::generateHtml = TRUE;
Config::generateLatex = TRUE;
Config::generateMan = TRUE;
+ Config::generateRTF = FALSE;
Config::preprocessingFlag = TRUE;
Config::briefMemDescFlag = TRUE;
Config::searchIncludeFlag = TRUE;
@@ -2937,6 +3058,9 @@ void Config::init()
Config::autoBriefFlag = TRUE;
Config::inheritDocsFlag = TRUE;
Config::inlineInfoFlag = TRUE;
+ Config::collGraphFlag = TRUE;
+ Config::includeGraphFlag = TRUE;
+ Config::gfxHierarchyFlag = TRUE;
}
void writeTemplateConfig(QFile *f,bool sl)
@@ -3363,6 +3487,13 @@ void writeTemplateConfig(QFile *f,bool sl)
if (!sl)
{
t << "\n";
+ }
+ t << "#---------------------------------------------------------------------------\n";
+ t << "# configuration options related to the alphabetical class index\n";
+ t << "#---------------------------------------------------------------------------\n";
+ if (!sl)
+ {
+ t << "\n";
t << "# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index\n";
t << "# of all compounds will be generated. Enable this if the project\n";
t << "# contains a lot of classes, structs, unions or interfaces.\n";
@@ -3381,6 +3512,16 @@ void writeTemplateConfig(QFile *f,bool sl)
if (!sl)
{
t << "\n";
+ t << "# In case all classes in a project start with a common prefix, all\n";
+ t << "# classes will be put under the same header in the alphabetical index.\n";
+ t << "# The IGNORE_PREFIX tag can be use to specify a prefix that should be ignored\n";
+ t << "# while generating the index headers.\n";
+ t << "\n";
+ }
+ t << "IGNORE_PREFIX = \n";
+ if (!sl)
+ {
+ t << "\n";
}
t << "#---------------------------------------------------------------------------\n";
t << "# configuration options related to the LaTeX output\n";
@@ -3453,6 +3594,50 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "\n";
}
t << "#---------------------------------------------------------------------------\n";
+ t << "# configuration options related to the RTF output\n";
+ t << "#---------------------------------------------------------------------------\n";
+ if (!sl)
+ {
+ t << "\n";
+ t << "# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output\n";
+ t << "# For now this is experimental and is disabled by default. The RTF output\n";
+ t << "# is optimised for Word 97 and may not look too pretty with other readers\n";
+ t << "# or editors.\n";
+ t << "\n";
+ }
+ t << "GENERATE_RTF = NO\n";
+ if (!sl)
+ {
+ t << "\n";
+ t << "# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.\n";
+ t << "# If a relative path is entered the value of OUTPUT_DIRECTORY will be\n";
+ t << "# put in front of it. If left blank `rtf' will be used as the default path.\n";
+ t << "\n";
+ }
+ t << "RTF_OUTPUT =\n";
+ if (!sl)
+ {
+ t << "\n";
+ t << "# If the COMPACT_RTF tag is set to YES Doxygen generates more compact\n";
+ t << "# RTF documents. This may be useful for small projects and may help to\n";
+ t << "# save some trees in general.\n";
+ t << "\n";
+ }
+ t << "COMPACT_RTF = NO\n";
+ if (!sl)
+ {
+ t << "\n";
+ t << "# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated\n";
+ t << "# will contain hyperlink fields. The RTF file will\n";
+ t << "# contain links (just like the HTML output) instead of page references.\n";
+ t << "# This makes the output suitable for online browsing using a WORD or other.\n";
+ t << "# programs which support those fields.\n";
+ t << "# Note: wordpad (write) and others do not support links.\n";
+ t << "\n";
+ }
+ t << "RTF_HYPERLINKS = NO\n";
+
+ t << "#---------------------------------------------------------------------------\n";
t << "# configuration options related to the man page output\n";
t << "#---------------------------------------------------------------------------\n";
if (!sl)
@@ -3587,6 +3772,51 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "\n";
}
t << "#---------------------------------------------------------------------------\n";
+ t << "# Configuration options related to the dot tool \n";
+ t << "#---------------------------------------------------------------------------\n";
+ if (!sl)
+ {
+ t << "\n";
+ t << "# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is\n";
+ t << "# available from the path. This tool is part of Graphviz, a graph visualization\n";
+ t << "# toolkit from AT&T and Lucent Bell Labs. The other options in this section\n";
+ t << "# have no effect if this option is set to NO (the default)\n";
+ t << "\n";
+ }
+ t << "HAVE_DOT = NO\n";
+ if (!sl)
+ {
+ t << "\n";
+ t << "# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen\n";
+ t << "# will generate a graph for each documented class showing the direct and\n";
+ t << "# indirect implementation dependencies (inheritance, containment, and\n";
+ t << "# class references variables) of the class with other documented classes.\n";
+ t << "\n";
+ }
+ t << "COLLABORATION_GRAPH = YES\n";
+ if (!sl)
+ {
+ t << "\n";
+ t << "# If the ENABLE_PREPROCESSING, INCLUDE_GRAPH, and HAVE_DOT tags are set to\n";
+ t << "# YES then doxygen will generate a graph for each documented file showing\n";
+ t << "# the direct and indirect include dependencies of the file with other \n";
+ t << "# documented files.\n";
+ t << "\n";
+ }
+ t << "INCLUDE_GRAPH = YES\n";
+ if (!sl)
+ {
+ t << "\n";
+ t << "# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen\n";
+ t << "# will graphical hierarchy of all classes instead of a textual one.\n";
+ t << "\n";
+ }
+ t << "GRAPHICAL_HIERARCHY = YES\n";
+ if (!sl)
+ {
+ t << "\n";
+ }
+ t << "#---------------------------------------------------------------------------\n";
t << "# Configuration options related to the search engine \n";
t << "#---------------------------------------------------------------------------\n";
if (!sl)
@@ -3654,7 +3884,7 @@ void writeTemplateConfig(QFile *f,bool sl)
void checkConfig()
{
- //if (projectName.length()>0)
+ //if (!projectName.isEmpty())
//{
// projectName[0]=toupper(projectName[0]);
//}
@@ -3762,7 +3992,8 @@ void checkConfig()
Config::htmlOutputDir.prepend(Config::outputDir+'/');
}
QDir htmlDir(Config::htmlOutputDir);
- if (!htmlDir.exists() && !htmlDir.mkdir(Config::htmlOutputDir))
+ if (Config::generateHtml && !htmlDir.exists() &&
+ !htmlDir.mkdir(Config::htmlOutputDir))
{
err("Could not create output directory %s\n",Config::htmlOutputDir.data());
exit(1);
@@ -3777,12 +4008,29 @@ void checkConfig()
Config::latexOutputDir.prepend(Config::outputDir+'/');
}
QDir latexDir(Config::latexOutputDir);
- if (!latexDir.exists() && !latexDir.mkdir(Config::latexOutputDir))
+ if (Config::generateLatex && !latexDir.exists() &&
+ !latexDir.mkdir(Config::latexOutputDir))
{
err("Could not create output directory %s\n",Config::latexOutputDir.data());
exit(1);
}
+ if (Config::rtfOutputDir.isEmpty() && Config::generateRTF)
+ {
+ Config::rtfOutputDir=Config::outputDir+"/rtf";
+ }
+ else if (Config::rtfOutputDir && Config::rtfOutputDir[0]!='/')
+ {
+ Config::rtfOutputDir.prepend(Config::outputDir+'/');
+ }
+ QDir rtfDir(Config::rtfOutputDir);
+ if (Config::generateRTF && !rtfDir.exists() &&
+ !rtfDir.mkdir(Config::rtfOutputDir))
+ {
+ err("Could not create output directory %s\n",Config::rtfOutputDir.data());
+ exit(1);
+ }
+
if (Config::manOutputDir.isEmpty() && Config::generateMan)
{
Config::manOutputDir=Config::outputDir+"/man";
@@ -3792,14 +4040,15 @@ void checkConfig()
Config::manOutputDir.prepend(Config::outputDir+'/');
}
QDir manDir(Config::manOutputDir);
- if (!manDir.exists() && !manDir.mkdir(Config::manOutputDir))
+ if (Config::generateMan && !manDir.exists() &&
+ !manDir.mkdir(Config::manOutputDir))
{
err("Could not create output directory %s\n",Config::manOutputDir.data());
exit(1);
}
// Test to see if HTML header is valid
- if (Config::headerFile.length()>0)
+ if (!Config::headerFile.isEmpty())
{
QFileInfo fi(Config::headerFile);
if (!fi.exists())
@@ -3810,7 +4059,7 @@ void checkConfig()
}
}
// Test to see if HTML footer is valid
- if (Config::footerFile.length()>0)
+ if (!Config::footerFile.isEmpty())
{
QFileInfo fi(Config::footerFile);
if (!fi.exists())
@@ -3821,7 +4070,7 @@ void checkConfig()
}
}
// Test to see if LaTeX header is valid
- if (Config::latexHeaderFile.length()>0)
+ if (!Config::latexHeaderFile.isEmpty())
{
QFileInfo fi(Config::latexHeaderFile);
if (!fi.exists())
@@ -3886,13 +4135,13 @@ void checkConfig()
if (Config::searchEngineFlag)
{
// check cgi name
- if (Config::cgiName.length()==0)
+ if (Config::cgiName.isEmpty())
{
err("Error: tag CGI_NAME: no cgi script name after the CGI_NAME tag.\n");
exit(1);
}
// check cgi URL
- if (Config::cgiURL.length()==0)
+ if (Config::cgiURL.isEmpty())
{
err("Error: tag CGI_URL: no URL to cgi directory specified.\n");
exit(1);
@@ -3904,7 +4153,7 @@ void checkConfig()
exit(1);
}
// check documentation URL
- if (Config::docURL.length()==0)
+ if (Config::docURL.isEmpty())
{
Config::docURL = Config::outputDir.copy().prepend("file://").append("html");
}
@@ -3915,7 +4164,7 @@ void checkConfig()
exit(1);
}
// check absolute documentation path
- if (Config::docAbsPath.length()==0)
+ if (Config::docAbsPath.isEmpty())
{
Config::docAbsPath = Config::outputDir+"/html";
}
@@ -3925,7 +4174,7 @@ void checkConfig()
exit(1);
}
// check path to doxysearch
- if (Config::binAbsPath.length()==0)
+ if (Config::binAbsPath.isEmpty())
{
err("Error: tag BIN_ABSPATH: no absolute path to doxysearch "
"specified.\n");
@@ -3939,7 +4188,7 @@ void checkConfig()
// check perl path
bool found=FALSE;
- if (Config::perlPath.length()==0)
+ if (Config::perlPath.isEmpty())
{
QFileInfo fi;
fi.setFile("/usr/bin/perl");
diff --git a/src/config.h b/src/config.h
index 2cd637a..7ed4b52 100644
--- a/src/config.h
+++ b/src/config.h
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -37,6 +37,7 @@ struct Config
static QCString htmlOutputDir; // the directory to put the HTML files
static QCString latexOutputDir; // the directory to put the Latex files
static QCString manOutputDir; // the directory to put the man pages
+ static QCString rtfOutputDir; // the directory to put the RTF files
static QCString outputLanguage; // the output language
static QCString headerFile; // the name of the personal HTML header
static QCString latexHeaderFile; // the name of the personal LaTeX header
@@ -52,6 +53,7 @@ struct Config
static QCString paperType; // the page type to generate docs for
static QCString manExtension; // extension the man page files
static QCString htmlStyleSheet; // user defined cascading style sheet
+ static QCString ignorePrefix; // prefix to ignore for the alphabetical index
static QStrList includePath; // list of include paths
static QStrList examplePath; // list of example paths
static QStrList imagePath; // list of image paths
@@ -103,6 +105,13 @@ struct Config
static int tabSize; // number of spaces in a tab
static int colsInAlphaIndex; // number of columns in the alphabetical index
static bool inlineSourceFlag; // inline the definition bodies in the docs?
+ static bool haveDotFlag; // indicates wether or not dot is present
+ static bool collGraphFlag; // collaboration graph
+ static bool includeGraphFlag; // include graph
+ static bool gfxHierarchyFlag; // flag to enable graphical hierarchy
+ static bool generateRTF; // generate RTF flag
+ static bool compactRTFFlag; // generate more compact RTF
+ static bool rtfHyperFlag; // generate hyper links in RTF
};
#endif
diff --git a/src/config.l b/src/config.l
index 23e747a..004ba50 100644
--- a/src/config.l
+++ b/src/config.l
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -62,13 +62,13 @@ void warn(const char *fmt, ...)
* exported variables
*/
-
QCString Config::projectName;
QCString Config::projectNumber;
QCString Config::outputDir;
QCString Config::htmlOutputDir;
QCString Config::latexOutputDir;
QCString Config::manOutputDir;
+QCString Config::rtfOutputDir;
QCString Config::outputLanguage;
QCString Config::headerFile;
QCString Config::latexHeaderFile;
@@ -84,6 +84,7 @@ QCString Config::inputFilter;
QCString Config::paperType;
QCString Config::manExtension;
QCString Config::htmlStyleSheet;
+QCString Config::ignorePrefix;
QStrList Config::includePath;
QStrList Config::examplePath;
QStrList Config::imagePath;
@@ -119,11 +120,15 @@ bool Config::alphaIndexFlag = FALSE;
bool Config::pdfHyperFlag = FALSE;
bool Config::alwaysDetailsFlag = FALSE;
bool Config::inlineSourceFlag = FALSE;
+bool Config::rtfHyperFlag = FALSE;
+bool Config::compactRTFFlag = FALSE;
+bool Config::haveDotFlag = FALSE;
bool Config::autoBriefFlag = TRUE;
bool Config::warningFlag = TRUE;
bool Config::generateHtml = TRUE;
bool Config::generateLatex = TRUE;
bool Config::generateMan = TRUE;
+bool Config::generateRTF = FALSE;
bool Config::preprocessingFlag = TRUE;
bool Config::briefMemDescFlag = TRUE;
bool Config::searchIncludeFlag = TRUE;
@@ -133,9 +138,13 @@ bool Config::verbatimHeaderFlag = TRUE;
bool Config::htmlAlignMemberFlag = TRUE;
bool Config::inheritDocsFlag = TRUE;
bool Config::inlineInfoFlag = TRUE;
+bool Config::collGraphFlag = TRUE;
+bool Config::includeGraphFlag = TRUE;
+bool Config::gfxHierarchyFlag = TRUE;
int Config::tabSize = 8;
int Config::colsInAlphaIndex = 5;
-
+
+
/* -----------------------------------------------------------------
*
* static variables
@@ -186,50 +195,52 @@ static int yyread(char *buf,int max_size)
<*>\0x0d
"#" { BEGIN(SkipComment); }
-"PROJECT_NAME"[ \t]*"=" { BEGIN(GetString); s=&Config::projectName; }
-"PROJECT_NUMBER"[ \t]*"=" { BEGIN(GetString); s=&Config::projectNumber; }
-"OUTPUT_DIRECTORY"[ \t]*"=" { BEGIN(GetString); s=&Config::outputDir; }
-"HTML_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::htmlOutputDir; }
-"MAN_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::manOutputDir; }
-"LATEX_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::latexOutputDir; }
-"HTML_HEADER"[ \t]*"=" { BEGIN(GetString); s=&Config::headerFile; }
-"HTML_FOOTER"[ \t]*"=" { BEGIN(GetString); s=&Config::footerFile; }
-"LATEX_HEADER"[ \t]*"=" { BEGIN(GetString); s=&Config::latexHeaderFile; }
-"CGI_NAME"[ \t]*"=" { BEGIN(GetString); s=&Config::cgiName; }
-"CGI_URL"[ \t]*"=" { BEGIN(GetString); s=&Config::cgiURL; }
-"DOC_URL"[ \t]*"=" { BEGIN(GetString); s=&Config::docURL; }
-"BIN_ABSPATH"[ \t]*"=" { BEGIN(GetString); s=&Config::binAbsPath; }
-"DOC_ABSPATH"[ \t]*"=" { BEGIN(GetString); s=&Config::docAbsPath; }
-"PERL_PATH"[ \t]*"=" { BEGIN(GetString); s=&Config::perlPath; }
-"GENERATE_TAGFILE"[ \t]*"=" { BEGIN(GetString); s=&Config::genTagFile; }
-"INPUT_FILTER"[ \t]*"=" { BEGIN(GetString); s=&Config::inputFilter; }
-"PAPER_TYPE"[ \t]*"=" { BEGIN(GetString); s=&Config::paperType; }
-"OUTPUT_LANGUAGE"[ \t]*"=" { BEGIN(GetString); s=&Config::outputLanguage; }
-"MAN_EXTENSION"[ \t]*"=" { BEGIN(GetString); s=&Config::manExtension; }
-"TAB_SIZE"[ \t]*"=" { BEGIN(GetString); s=&tabSizeString; }
-"HTML_STYLESHEET"[ \t]*"=" { BEGIN(GetString); s=&Config::htmlStyleSheet; }
-"COLS_IN_ALPHA_INDEX"[ \t]*"=" { BEGIN(GetString); s=&colsInAlphaIndexString; }
-"INCLUDE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::includePath; elemStr=""; }
-"EXAMPLE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::examplePath; elemStr=""; }
-"IMAGE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::imagePath; elemStr=""; }
-"INPUT"[ \t]*"=" { BEGIN(GetStrList); l=&Config::inputSources; elemStr=""; }
-"EXCLUDE"[ \t]*"=" { BEGIN(GetStrList); l=&Config::excludeSources; elemStr=""; }
-"FILE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::filePatternList; elemStr=""; }
-"EXCLUDE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::excludePatternList; elemStr=""; }
-"EXAMPLE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::examplePatternList; elemStr=""; }
-"IMAGE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::imagePatternList; elemStr=""; }
-"TAGFILES"[ \t]*"=" { BEGIN(GetStrList); l=&Config::tagFileList; elemStr=""; }
-"EXT_DOC_PATHS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::extDocPathList; elemStr=""; }
-"PREDEFINED"[ \t]*"=" { BEGIN(GetStrList); l=&Config::predefined; elemStr=""; }
-"EXTRA_PACKAGES"[ \t]*"=" { BEGIN(GetStrList); l=&Config::extraPackageList; elemStr=""; }
-"STRIP_FROM_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::stripFromPath; elemStr=""; }
-"QUIET"[ \t]*"=" { BEGIN(GetBool); b=&Config::quietFlag; }
-"WARNINGS"[ \t]*"=" { BEGIN(GetBool); b=&Config::warningFlag; }
-"RECURSIVE"[ \t]*"=" { BEGIN(GetBool); b=&Config::recursiveFlag; }
-"ALLEXTERNALS"[ \t]*"=" { BEGIN(GetBool); b=&Config::allExtFlag; }
+"PROJECT_NAME"[ \t]*"=" { BEGIN(GetString); s=&Config::projectName; s->resize(0); }
+"PROJECT_NUMBER"[ \t]*"=" { BEGIN(GetString); s=&Config::projectNumber; s->resize(0); }
+"OUTPUT_DIRECTORY"[ \t]*"=" { BEGIN(GetString); s=&Config::outputDir; s->resize(0); }
+"HTML_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::htmlOutputDir; s->resize(0); }
+"MAN_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::manOutputDir; s->resize(0); }
+"LATEX_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::latexOutputDir; s->resize(0); }
+"RTF_OUTPUT"[ \t]*"=" { BEGIN(GetString); s=&Config::rtfOutputDir; s->resize(0); }
+"HTML_HEADER"[ \t]*"=" { BEGIN(GetString); s=&Config::headerFile; s->resize(0); }
+"HTML_FOOTER"[ \t]*"=" { BEGIN(GetString); s=&Config::footerFile; s->resize(0); }
+"LATEX_HEADER"[ \t]*"=" { BEGIN(GetString); s=&Config::latexHeaderFile; s->resize(0); }
+"CGI_NAME"[ \t]*"=" { BEGIN(GetString); s=&Config::cgiName; s->resize(0); }
+"CGI_URL"[ \t]*"=" { BEGIN(GetString); s=&Config::cgiURL; s->resize(0); }
+"DOC_URL"[ \t]*"=" { BEGIN(GetString); s=&Config::docURL; s->resize(0); }
+"BIN_ABSPATH"[ \t]*"=" { BEGIN(GetString); s=&Config::binAbsPath; s->resize(0); }
+"DOC_ABSPATH"[ \t]*"=" { BEGIN(GetString); s=&Config::docAbsPath; s->resize(0); }
+"PERL_PATH"[ \t]*"=" { BEGIN(GetString); s=&Config::perlPath; s->resize(0); }
+"GENERATE_TAGFILE"[ \t]*"=" { BEGIN(GetString); s=&Config::genTagFile; s->resize(0); }
+"INPUT_FILTER"[ \t]*"=" { BEGIN(GetString); s=&Config::inputFilter; s->resize(0); }
+"PAPER_TYPE"[ \t]*"=" { BEGIN(GetString); s=&Config::paperType; s->resize(0); }
+"OUTPUT_LANGUAGE"[ \t]*"=" { BEGIN(GetString); s=&Config::outputLanguage; s->resize(0); }
+"MAN_EXTENSION"[ \t]*"=" { BEGIN(GetString); s=&Config::manExtension; s->resize(0); }
+"TAB_SIZE"[ \t]*"=" { BEGIN(GetString); s=&tabSizeString; s->resize(0); }
+"HTML_STYLESHEET"[ \t]*"=" { BEGIN(GetString); s=&Config::htmlStyleSheet; s->resize(0); }
+"COLS_IN_ALPHA_INDEX"[ \t]*"=" { BEGIN(GetString); s=&colsInAlphaIndexString; s->resize(0); }
+"IGNORE_PREFIX"[ \t]*"=" { BEGIN(GetString); s=&Config::ignorePrefix; s->resize(0); }
+"INCLUDE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::includePath; l->clear(); elemStr=""; }
+"EXAMPLE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::examplePath; l->clear(); elemStr=""; }
+"IMAGE_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::imagePath; l->clear(); elemStr=""; }
+"INPUT"[ \t]*"=" { BEGIN(GetStrList); l=&Config::inputSources; l->clear(); elemStr=""; }
+"EXCLUDE"[ \t]*"=" { BEGIN(GetStrList); l=&Config::excludeSources; l->clear(); elemStr=""; }
+"FILE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::filePatternList; l->clear(); elemStr=""; }
+"EXCLUDE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::excludePatternList; l->clear(); elemStr=""; }
+"EXAMPLE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::examplePatternList; l->clear(); elemStr=""; }
+"IMAGE_PATTERNS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::imagePatternList; l->clear(); elemStr=""; }
+"TAGFILES"[ \t]*"=" { BEGIN(GetStrList); l=&Config::tagFileList; l->clear(); elemStr=""; }
+"EXT_DOC_PATHS"[ \t]*"=" { BEGIN(GetStrList); l=&Config::extDocPathList; l->clear(); elemStr=""; }
+"PREDEFINED"[ \t]*"=" { BEGIN(GetStrList); l=&Config::predefined; l->clear(); elemStr=""; }
+"EXTRA_PACKAGES"[ \t]*"=" { BEGIN(GetStrList); l=&Config::extraPackageList; l->clear(); elemStr=""; }
+"STRIP_FROM_PATH"[ \t]*"=" { BEGIN(GetStrList); l=&Config::stripFromPath; l->clear(); elemStr=""; }
+"QUIET"[ \t]*"=" { BEGIN(GetBool); b=&Config::quietFlag; }
+"WARNINGS"[ \t]*"=" { BEGIN(GetBool); b=&Config::warningFlag; }
+"RECURSIVE"[ \t]*"=" { BEGIN(GetBool); b=&Config::recursiveFlag; }
+"ALLEXTERNALS"[ \t]*"=" { BEGIN(GetBool); b=&Config::allExtFlag; }
"SEARCHENGINE"[ \t]*"=" { BEGIN(GetBool); b=&Config::searchEngineFlag; }
-"EXTRACT_ALL"[ \t]*"=" { BEGIN(GetBool); b=&Config::extractAllFlag; }
-"EXTRACT_PRIVATE"[ \t]*"=" { BEGIN(GetBool); b=&Config::extractPrivateFlag; }
+"EXTRACT_ALL"[ \t]*"=" { BEGIN(GetBool); b=&Config::extractAllFlag; }
+"EXTRACT_PRIVATE"[ \t]*"=" { BEGIN(GetBool); b=&Config::extractPrivateFlag; }
"DISABLE_INDEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::noIndexFlag; }
"GENERATE_LATEX"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateLatex; }
"GENERATE_HTML"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateHtml; }
@@ -258,11 +269,18 @@ static int yyread(char *buf,int max_size)
"INHERIT_DOCS"[ \t]*"=" { BEGIN(GetBool); b=&Config::inheritDocsFlag; }
"INLINE_INFO"[ \t]*"=" { BEGIN(GetBool); b=&Config::inlineInfoFlag; }
"INLINE_SOURCES"[ \t]*"=" { BEGIN(GetBool); b=&Config::inlineSourceFlag; }
+"HAVE_DOT"[ \t]*"=" { BEGIN(GetBool); b=&Config::haveDotFlag; }
+"COLLABORATION_GRAPH"[ \t]*"=" { BEGIN(GetBool); b=&Config::collGraphFlag; }
+"INCLUDE_GRAPH"[ \t]*"=" { BEGIN(GetBool); b=&Config::includeGraphFlag; }
+"GRAPHICAL_HIERARCHY"[ \t]*"=" { BEGIN(GetBool); b=&Config::gfxHierarchyFlag; }
+"GENERATE_RTF"[ \t]*"=" { BEGIN(GetBool); b=&Config::generateRTF; }
+"COMPACT_RTF"[ \t]*"=" { BEGIN(GetBool); b=&Config::compactRTFFlag; }
+"RTF_HYPERLINKS"[ \t]*"=" { BEGIN(GetBool); b=&Config::rtfHyperFlag; }
[a-z_A-Z0-9]+ { err("Warning: ignoring unknown tag `%s' at line %d\n",yytext,yyLineNr); }
\n { yyLineNr++; BEGIN(Start); }
\n {
yyLineNr++;
- if (elemStr.length()>0)
+ if (!elemStr.isEmpty())
{
//printf("elemStr1=`%s'\n",elemStr.data());
l->append(elemStr);
@@ -270,7 +288,7 @@ static int yyread(char *buf,int max_size)
BEGIN(Start);
}
[ \t]+ {
- if (elemStr.length()>0)
+ if (!elemStr.isEmpty())
{
//printf("elemStr2=`%s'\n",elemStr.data());
l->append(elemStr);
@@ -399,6 +417,7 @@ void Config::init()
Config::htmlOutputDir = "html";
Config::latexOutputDir ="latex";
Config::manOutputDir ="man";
+ Config::rtfOutputDir = "rtf";
Config::outputLanguage = "English";
Config::headerFile.resize(0);
Config::latexHeaderFile.resize(0);
@@ -414,6 +433,7 @@ void Config::init()
Config::paperType = "a4wide";
Config::manExtension = ".3";
Config::htmlStyleSheet.resize(0);
+ Config::ignorePrefix.resize(0);
Config::includePath.clear();
Config::examplePath.clear();
Config::imagePath.clear();
@@ -451,10 +471,14 @@ void Config::init()
Config::pdfHyperFlag = FALSE;
Config::alwaysDetailsFlag = FALSE;
Config::inlineSourceFlag = FALSE;
+ Config::haveDotFlag = FALSE;
+ Config::compactRTFFlag = FALSE;
+ Config::rtfHyperFlag = FALSE;
Config::warningFlag = TRUE;
Config::generateHtml = TRUE;
Config::generateLatex = TRUE;
Config::generateMan = TRUE;
+ Config::generateRTF = FALSE;
Config::preprocessingFlag = TRUE;
Config::briefMemDescFlag = TRUE;
Config::searchIncludeFlag = TRUE;
@@ -465,6 +489,9 @@ void Config::init()
Config::autoBriefFlag = TRUE;
Config::inheritDocsFlag = TRUE;
Config::inlineInfoFlag = TRUE;
+ Config::collGraphFlag = TRUE;
+ Config::includeGraphFlag = TRUE;
+ Config::gfxHierarchyFlag = TRUE;
}
void writeTemplateConfig(QFile *f,bool sl)
@@ -891,6 +918,13 @@ void writeTemplateConfig(QFile *f,bool sl)
if (!sl)
{
t << "\n";
+ }
+ t << "#---------------------------------------------------------------------------\n";
+ t << "# configuration options related to the alphabetical class index\n";
+ t << "#---------------------------------------------------------------------------\n";
+ if (!sl)
+ {
+ t << "\n";
t << "# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index\n";
t << "# of all compounds will be generated. Enable this if the project\n";
t << "# contains a lot of classes, structs, unions or interfaces.\n";
@@ -909,6 +943,16 @@ void writeTemplateConfig(QFile *f,bool sl)
if (!sl)
{
t << "\n";
+ t << "# In case all classes in a project start with a common prefix, all\n";
+ t << "# classes will be put under the same header in the alphabetical index.\n";
+ t << "# The IGNORE_PREFIX tag can be use to specify a prefix that should be ignored\n";
+ t << "# while generating the index headers.\n";
+ t << "\n";
+ }
+ t << "IGNORE_PREFIX = \n";
+ if (!sl)
+ {
+ t << "\n";
}
t << "#---------------------------------------------------------------------------\n";
t << "# configuration options related to the LaTeX output\n";
@@ -981,6 +1025,50 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "\n";
}
t << "#---------------------------------------------------------------------------\n";
+ t << "# configuration options related to the RTF output\n";
+ t << "#---------------------------------------------------------------------------\n";
+ if (!sl)
+ {
+ t << "\n";
+ t << "# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output\n";
+ t << "# For now this is experimental and is disabled by default. The RTF output\n";
+ t << "# is optimised for Word 97 and may not look too pretty with other readers\n";
+ t << "# or editors.\n";
+ t << "\n";
+ }
+ t << "GENERATE_RTF = NO\n";
+ if (!sl)
+ {
+ t << "\n";
+ t << "# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.\n";
+ t << "# If a relative path is entered the value of OUTPUT_DIRECTORY will be\n";
+ t << "# put in front of it. If left blank `rtf' will be used as the default path.\n";
+ t << "\n";
+ }
+ t << "RTF_OUTPUT =\n";
+ if (!sl)
+ {
+ t << "\n";
+ t << "# If the COMPACT_RTF tag is set to YES Doxygen generates more compact\n";
+ t << "# RTF documents. This may be useful for small projects and may help to\n";
+ t << "# save some trees in general.\n";
+ t << "\n";
+ }
+ t << "COMPACT_RTF = NO\n";
+ if (!sl)
+ {
+ t << "\n";
+ t << "# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated\n";
+ t << "# will contain hyperlink fields. The RTF file will\n";
+ t << "# contain links (just like the HTML output) instead of page references.\n";
+ t << "# This makes the output suitable for online browsing using a WORD or other.\n";
+ t << "# programs which support those fields.\n";
+ t << "# Note: wordpad (write) and others do not support links.\n";
+ t << "\n";
+ }
+ t << "RTF_HYPERLINKS = NO\n";
+
+ t << "#---------------------------------------------------------------------------\n";
t << "# configuration options related to the man page output\n";
t << "#---------------------------------------------------------------------------\n";
if (!sl)
@@ -1115,6 +1203,51 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "\n";
}
t << "#---------------------------------------------------------------------------\n";
+ t << "# Configuration options related to the dot tool \n";
+ t << "#---------------------------------------------------------------------------\n";
+ if (!sl)
+ {
+ t << "\n";
+ t << "# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is\n";
+ t << "# available from the path. This tool is part of Graphviz, a graph visualization\n";
+ t << "# toolkit from AT&T and Lucent Bell Labs. The other options in this section\n";
+ t << "# have no effect if this option is set to NO (the default)\n";
+ t << "\n";
+ }
+ t << "HAVE_DOT = NO\n";
+ if (!sl)
+ {
+ t << "\n";
+ t << "# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen\n";
+ t << "# will generate a graph for each documented class showing the direct and\n";
+ t << "# indirect implementation dependencies (inheritance, containment, and\n";
+ t << "# class references variables) of the class with other documented classes.\n";
+ t << "\n";
+ }
+ t << "COLLABORATION_GRAPH = YES\n";
+ if (!sl)
+ {
+ t << "\n";
+ t << "# If the ENABLE_PREPROCESSING, INCLUDE_GRAPH, and HAVE_DOT tags are set to\n";
+ t << "# YES then doxygen will generate a graph for each documented file showing\n";
+ t << "# the direct and indirect include dependencies of the file with other \n";
+ t << "# documented files.\n";
+ t << "\n";
+ }
+ t << "INCLUDE_GRAPH = YES\n";
+ if (!sl)
+ {
+ t << "\n";
+ t << "# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen\n";
+ t << "# will graphical hierarchy of all classes instead of a textual one.\n";
+ t << "\n";
+ }
+ t << "GRAPHICAL_HIERARCHY = YES\n";
+ if (!sl)
+ {
+ t << "\n";
+ }
+ t << "#---------------------------------------------------------------------------\n";
t << "# Configuration options related to the search engine \n";
t << "#---------------------------------------------------------------------------\n";
if (!sl)
@@ -1182,7 +1315,7 @@ void writeTemplateConfig(QFile *f,bool sl)
void checkConfig()
{
- //if (projectName.length()>0)
+ //if (!projectName.isEmpty())
//{
// projectName[0]=toupper(projectName[0]);
//}
@@ -1290,7 +1423,8 @@ void checkConfig()
Config::htmlOutputDir.prepend(Config::outputDir+'/');
}
QDir htmlDir(Config::htmlOutputDir);
- if (!htmlDir.exists() && !htmlDir.mkdir(Config::htmlOutputDir))
+ if (Config::generateHtml && !htmlDir.exists() &&
+ !htmlDir.mkdir(Config::htmlOutputDir))
{
err("Could not create output directory %s\n",Config::htmlOutputDir.data());
exit(1);
@@ -1305,12 +1439,29 @@ void checkConfig()
Config::latexOutputDir.prepend(Config::outputDir+'/');
}
QDir latexDir(Config::latexOutputDir);
- if (!latexDir.exists() && !latexDir.mkdir(Config::latexOutputDir))
+ if (Config::generateLatex && !latexDir.exists() &&
+ !latexDir.mkdir(Config::latexOutputDir))
{
err("Could not create output directory %s\n",Config::latexOutputDir.data());
exit(1);
}
+ if (Config::rtfOutputDir.isEmpty() && Config::generateRTF)
+ {
+ Config::rtfOutputDir=Config::outputDir+"/rtf";
+ }
+ else if (Config::rtfOutputDir && Config::rtfOutputDir[0]!='/')
+ {
+ Config::rtfOutputDir.prepend(Config::outputDir+'/');
+ }
+ QDir rtfDir(Config::rtfOutputDir);
+ if (Config::generateRTF && !rtfDir.exists() &&
+ !rtfDir.mkdir(Config::rtfOutputDir))
+ {
+ err("Could not create output directory %s\n",Config::rtfOutputDir.data());
+ exit(1);
+ }
+
if (Config::manOutputDir.isEmpty() && Config::generateMan)
{
Config::manOutputDir=Config::outputDir+"/man";
@@ -1320,14 +1471,15 @@ void checkConfig()
Config::manOutputDir.prepend(Config::outputDir+'/');
}
QDir manDir(Config::manOutputDir);
- if (!manDir.exists() && !manDir.mkdir(Config::manOutputDir))
+ if (Config::generateMan && !manDir.exists() &&
+ !manDir.mkdir(Config::manOutputDir))
{
err("Could not create output directory %s\n",Config::manOutputDir.data());
exit(1);
}
// Test to see if HTML header is valid
- if (Config::headerFile.length()>0)
+ if (!Config::headerFile.isEmpty())
{
QFileInfo fi(Config::headerFile);
if (!fi.exists())
@@ -1338,7 +1490,7 @@ void checkConfig()
}
}
// Test to see if HTML footer is valid
- if (Config::footerFile.length()>0)
+ if (!Config::footerFile.isEmpty())
{
QFileInfo fi(Config::footerFile);
if (!fi.exists())
@@ -1349,7 +1501,7 @@ void checkConfig()
}
}
// Test to see if LaTeX header is valid
- if (Config::latexHeaderFile.length()>0)
+ if (!Config::latexHeaderFile.isEmpty())
{
QFileInfo fi(Config::latexHeaderFile);
if (!fi.exists())
@@ -1414,13 +1566,13 @@ void checkConfig()
if (Config::searchEngineFlag)
{
// check cgi name
- if (Config::cgiName.length()==0)
+ if (Config::cgiName.isEmpty())
{
err("Error: tag CGI_NAME: no cgi script name after the CGI_NAME tag.\n");
exit(1);
}
// check cgi URL
- if (Config::cgiURL.length()==0)
+ if (Config::cgiURL.isEmpty())
{
err("Error: tag CGI_URL: no URL to cgi directory specified.\n");
exit(1);
@@ -1432,7 +1584,7 @@ void checkConfig()
exit(1);
}
// check documentation URL
- if (Config::docURL.length()==0)
+ if (Config::docURL.isEmpty())
{
Config::docURL = Config::outputDir.copy().prepend("file://").append("html");
}
@@ -1443,7 +1595,7 @@ void checkConfig()
exit(1);
}
// check absolute documentation path
- if (Config::docAbsPath.length()==0)
+ if (Config::docAbsPath.isEmpty())
{
Config::docAbsPath = Config::outputDir+"/html";
}
@@ -1453,7 +1605,7 @@ void checkConfig()
exit(1);
}
// check path to doxysearch
- if (Config::binAbsPath.length()==0)
+ if (Config::binAbsPath.isEmpty())
{
err("Error: tag BIN_ABSPATH: no absolute path to doxysearch "
"specified.\n");
@@ -1467,7 +1619,7 @@ void checkConfig()
// check perl path
bool found=FALSE;
- if (Config::perlPath.length()==0)
+ if (Config::perlPath.isEmpty())
{
QFileInfo fi;
fi.setFile("/usr/bin/perl");
diff --git a/src/constexp.h b/src/constexp.h
index 8c33a5e..7ac5fe3 100644
--- a/src/constexp.h
+++ b/src/constexp.h
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
diff --git a/src/constexp.l b/src/constexp.l
index 43c7167..5e63aa6 100644
--- a/src/constexp.l
+++ b/src/constexp.l
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
diff --git a/src/cppvalue.cpp b/src/cppvalue.cpp
index ab2a1d4..df404b9 100644
--- a/src/cppvalue.cpp
+++ b/src/cppvalue.cpp
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
diff --git a/src/cppvalue.h b/src/cppvalue.h
index d3751b2..d1bc13b 100644
--- a/src/cppvalue.h
+++ b/src/cppvalue.h
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
diff --git a/src/debug.cpp b/src/debug.cpp
index 96be18d..8b0b316 100644
--- a/src/debug.cpp
+++ b/src/debug.cpp
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
diff --git a/src/debug.h b/src/debug.h
index 615a6be..b07cd14 100644
--- a/src/debug.h
+++ b/src/debug.h
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
diff --git a/src/declinfo.cpp b/src/declinfo.cpp
index cc19eb2..882f60c 100644
--- a/src/declinfo.cpp
+++ b/src/declinfo.cpp
@@ -302,13 +302,13 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
*yy_cp = '\0'; \
yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 21
-#define YY_END_OF_BUFFER 22
+#define YY_NUM_RULES 22
+#define YY_END_OF_BUFFER 23
static yyconst short int yy_accept[89] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 22, 20, 21, 5, 4, 8, 7, 20, 10, 2,
+ 23, 20, 21, 5, 4, 8, 7, 20, 10, 2,
9, 2, 20, 13, 11, 12, 18, 18, 20, 20,
21, 16, 20, 19, 5, 8, 7, 0, 10, 9,
4, 0, 6, 3, 2, 2, 0, 2, 0, 0,
@@ -451,7 +451,7 @@ char *yytext;
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -967,7 +967,12 @@ YY_RULE_SETUP
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 198 "declinfo.l"
+#line 197 "declinfo.l"
+
+ YY_BREAK
+case 22:
+YY_RULE_SETUP
+#line 199 "declinfo.l"
ECHO;
YY_BREAK
case YY_STATE_EOF(INITIAL):
@@ -1864,7 +1869,7 @@ int main()
return 0;
}
#endif
-#line 198 "declinfo.l"
+#line 199 "declinfo.l"
/*@ ----------------------------------------------------------------------------
@@ -1876,9 +1881,9 @@ void parseFuncDecl(const QCString &decl,QCString &cl,QCString &ctl,QCString &t,
inputString = decl;
//printf("Input=`%s'\n",inputString);
if (inputString==0) return;
- inputPosition = 0;
+ inputPosition = 0;
classTempListFound = FALSE;
- funcTempListFound = FALSE;
+ funcTempListFound = FALSE;
scope.resize(0);
className.resize(0);
classTempList.resize(0);
@@ -1915,7 +1920,7 @@ void parseFuncDecl(const QCString &decl,QCString &cl,QCString &ctl,QCString &t,
a=removeRedundantWhiteSpace(args);
exc=removeRedundantWhiteSpace(exceptionString);
- if (t.length()>0 && t.at(t.length()-1)==')')
+ if (!t.isEmpty() && t.at(t.length()-1)==')')
{
a.prepend(")");
t=t.left(t.length()-1);
diff --git a/src/declinfo.h b/src/declinfo.h
index df206e0..336e2d4 100644
--- a/src/declinfo.h
+++ b/src/declinfo.h
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
diff --git a/src/declinfo.l b/src/declinfo.l
index 51e10cb..67f537c 100644
--- a/src/declinfo.l
+++ b/src/declinfo.l
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -194,6 +194,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
exceptionString+=*yytext;
}
<*>.
+<*>\n
%%
@@ -206,9 +207,9 @@ void parseFuncDecl(const QCString &decl,QCString &cl,QCString &ctl,QCString &t,
inputString = decl;
//printf("Input=`%s'\n",inputString);
if (inputString==0) return;
- inputPosition = 0;
+ inputPosition = 0;
classTempListFound = FALSE;
- funcTempListFound = FALSE;
+ funcTempListFound = FALSE;
scope.resize(0);
className.resize(0);
classTempList.resize(0);
@@ -245,7 +246,7 @@ void parseFuncDecl(const QCString &decl,QCString &cl,QCString &ctl,QCString &t,
a=removeRedundantWhiteSpace(args);
exc=removeRedundantWhiteSpace(exceptionString);
- if (t.length()>0 && t.at(t.length()-1)==')')
+ if (!t.isEmpty() && t.at(t.length()-1)==')')
{
a.prepend(")");
t=t.left(t.length()-1);
diff --git a/src/defargs.cpp b/src/defargs.cpp
index 726f1dc..86adfb6 100644
--- a/src/defargs.cpp
+++ b/src/defargs.cpp
@@ -304,40 +304,49 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
*yy_cp = '\0'; \
yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 33
-#define YY_END_OF_BUFFER 34
-static yyconst short int yy_acclist[133] =
+#define YY_NUM_RULES 41
+#define YY_END_OF_BUFFER 42
+static yyconst short int yy_acclist[184] =
{ 0,
- 2, 2, 34, 32, 33, 31, 33, 1, 32, 33,
- 25, 32, 33, 20, 25, 32, 33, 25, 32, 33,
- 27, 32, 33, 13, 27, 32, 33, 14, 27, 32,
- 33, 26, 27, 32, 33, 15, 27, 32, 33, 16,
- 27, 32, 33, 18, 27, 32, 33, 17, 27, 32,
- 33, 24, 32, 33, 2, 24, 32, 33, 12, 24,
- 32, 33, 22, 24, 32, 33, 12, 24, 32, 33,
- 21, 24, 32, 33, 23, 24, 32, 33, 24, 32,
- 33, 7, 25, 32, 33, 25, 32, 33, 12, 25,
- 32, 33, 22, 25, 32, 33, 11, 24, 32, 33,
-
- 9, 23, 24, 32, 33, 32, 33, 32, 33, 32,
- 33, 19, 26, 2,16392, 23, 3, 10, 9, 23,
- 30,16392, 8200, 6, 6, 8200, 5, 4, 5, 4,
- 28, 29
+ 2, 2, 42, 40, 41, 39, 41, 40, 41, 1,
+ 40, 41, 26, 40, 41, 20, 26, 40, 41, 26,
+ 40, 41, 26, 40, 41, 28, 40, 41, 13, 28,
+ 40, 41, 14, 28, 40, 41, 28, 40, 41, 27,
+ 28, 40, 41, 15, 28, 40, 41, 16, 28, 40,
+ 41, 18, 28, 40, 41, 17, 28, 40, 41, 25,
+ 40, 41, 2, 25, 40, 41, 12, 25, 40, 41,
+ 23, 25, 40, 41, 25, 40, 41, 12, 25, 40,
+ 41, 21, 25, 40, 41, 24, 25, 40, 41, 25,
+ 40, 41, 7, 26, 40, 41, 26, 40, 41, 12,
+
+ 26, 40, 41, 23, 26, 40, 41, 11, 25, 40,
+ 41, 9, 24, 25, 40, 41, 40, 41, 40, 41,
+ 40, 41, 32, 37, 40, 41, 36, 39, 41, 37,
+ 40, 41, 32, 37, 40, 41, 33, 40, 41, 35,
+ 39, 41, 33, 40, 41, 19, 27, 2,16392, 24,
+ 3, 10, 9, 24, 31, 32, 34, 32, 33, 33,
+ 33, 38,16392, 8200, 6, 6, 32, 38, 33, 38,
+ 38, 8200, 5, 4, 5, 32, 38, 33, 38, 22,
+ 4, 29, 30
} ;
-static yyconst short int yy_accept[100] =
+static yyconst short int yy_accept[135] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 2, 3, 3, 3, 3,
- 3, 3, 3, 4, 6, 8, 11, 14, 18, 21,
- 24, 28, 32, 36, 40, 44, 48, 52, 55, 59,
- 63, 67, 71, 75, 79, 82, 86, 89, 93, 97,
- 101, 106, 108, 110, 112, 113, 114, 115, 115, 115,
- 116, 117, 117, 118, 118, 118, 118, 119, 121, 121,
- 122, 122, 122, 122, 122, 122, 123, 124, 125, 125,
- 126, 126, 126, 126, 126, 127, 128, 130, 130, 130,
- 130, 131, 131, 132, 132, 132, 132, 133, 133
-
+ 3, 3, 3, 3, 3, 3, 3, 4, 6, 8,
+ 10, 13, 16, 20, 23, 26, 29, 33, 37, 40,
+ 44, 48, 52, 56, 60, 63, 67, 71, 75, 78,
+ 82, 86, 90, 93, 97, 100, 104, 108, 112, 117,
+ 119, 121, 123, 127, 130, 133, 137, 140, 143, 146,
+ 146, 146, 147, 148, 149, 149, 149, 150, 150, 150,
+ 151, 151, 152, 152, 152, 152, 153, 155, 155, 156,
+ 156, 156, 157, 158, 159, 160, 161, 162, 163, 163,
+
+ 163, 163, 164, 165, 165, 165, 166, 166, 167, 167,
+ 167, 167, 169, 171, 172, 172, 173, 173, 174, 176,
+ 176, 176, 176, 178, 180, 181, 182, 182, 183, 183,
+ 183, 183, 184, 184
} ;
static yyconst int yy_ec[256] =
@@ -345,17 +354,17 @@ static yyconst int yy_ec[256] =
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 1, 4, 1, 1, 1, 5, 6, 7,
- 8, 5, 1, 9, 1, 1, 1, 10, 11, 11,
- 11, 11, 11, 11, 11, 12, 12, 13, 1, 14,
- 15, 16, 1, 1, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 18, 19, 20, 1, 17, 1, 21, 17, 22, 17,
-
- 23, 17, 17, 17, 24, 17, 17, 25, 17, 26,
- 27, 17, 17, 17, 28, 29, 17, 30, 17, 17,
- 17, 17, 31, 1, 32, 1, 1, 1, 1, 1,
+ 1, 2, 4, 5, 1, 1, 1, 6, 7, 8,
+ 9, 10, 1, 11, 1, 1, 12, 13, 14, 14,
+ 14, 14, 14, 14, 14, 15, 15, 16, 1, 17,
+ 18, 19, 1, 1, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 21, 22, 23, 1, 20, 1, 24, 20, 25, 20,
+
+ 26, 20, 20, 20, 27, 20, 20, 28, 20, 29,
+ 30, 20, 20, 20, 31, 32, 20, 33, 20, 20,
+ 20, 20, 34, 1, 35, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -372,124 +381,148 @@ static yyconst int yy_ec[256] =
1, 1, 1, 1, 1
} ;
-static yyconst int yy_meta[33] =
+static yyconst int yy_meta[36] =
{ 0,
- 1, 1, 2, 1, 1, 1, 1, 3, 1, 4,
- 4, 4, 3, 1, 1, 1, 4, 1, 1, 1,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 1, 1
+ 1, 1, 2, 1, 1, 1, 1, 1, 3, 4,
+ 1, 1, 5, 5, 5, 3, 1, 1, 1, 5,
+ 1, 1, 1, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 1, 1
} ;
-static yyconst short int yy_base[109] =
+static yyconst short int yy_base[149] =
{ 0,
- 166, 165, 0, 1, 2, 6, 25, 0, 0, 0,
- 51, 77, 55, 61, 109, 0, 139, 0, 170, 0,
- 57, 58, 167, 292, 292, 292, 292, 292, 0, 292,
- 292, 292, 0, 292, 292, 292, 292, 292, 164, 11,
- 292, 292, 292, 0, 145, 292, 145, 292, 292, 10,
- 0, 9, 136, 135, 292, 0, 159, 62, 69, 201,
- 0, 140, 292, 153, 12, 74, 292, 0, 68, 292,
- 132, 132, 64, 143, 92, 149, 231, 292, 146, 145,
- 89, 122, 128, 96, 0, 292, 292, 96, 115, 79,
- 292, 98, 292, 79, 71, 67, 292, 292, 263, 267,
-
- 271, 85, 275, 20, 279, 283, 16, 287
+ 0, 1, 2, 3, 4, 18, 40, 0, 0, 0,
+ 68, 71, 73, 75, 109, 0, 142, 0, 174, 205,
+ 145, 155, 15, 19, 5, 21, 287, 363, 363, 22,
+ 363, 363, 363, 25, 0, 363, 363, 363, 26, 0,
+ 363, 363, 363, 363, 363, 284, 87, 84, 82, 363,
+ 363, 0, 258, 363, 258, 363, 89, 96, 0, 26,
+ 249, 248, 0, 363, 265, 90, 0, 363, 150, 95,
+ 152, 363, 0, 274, 150, 169, 237, 153, 162, 0,
+ 252, 363, 267, 177, 179, 363, 0, 180, 363, 244,
+ 244, 0, 363, 185, 0, 205, 206, 243, 210, 240,
+
+ 238, 186, 269, 209, 212, 363, 248, 244, 214, 219,
+ 222, 225, 206, 363, 239, 0, 205, 363, 363, 245,
+ 188, 179, 0, 0, 363, 363, 188, 363, 142, 140,
+ 120, 363, 363, 302, 307, 312, 317, 322, 327, 103,
+ 332, 90, 337, 342, 73, 347, 352, 357
} ;
-static yyconst short int yy_def[109] =
+static yyconst short int yy_def[149] =
{ 0,
- 99, 99, 99, 99, 100, 100, 98, 7, 7, 7,
- 7, 7, 7, 7, 98, 15, 100, 17, 98, 19,
- 99, 99, 98, 98, 98, 98, 98, 98, 101, 98,
- 98, 98, 102, 98, 98, 98, 98, 98, 98, 103,
- 98, 98, 98, 104, 105, 98, 106, 98, 98, 98,
- 107, 98, 98, 98, 98, 102, 98, 103, 103, 103,
- 104, 105, 98, 98, 108, 98, 98, 107, 98, 98,
- 98, 98, 103, 98, 103, 60, 98, 98, 98, 98,
- 98, 98, 98, 103, 77, 98, 98, 98, 98, 98,
- 98, 98, 98, 98, 98, 98, 98, 0, 98, 98,
-
- 98, 98, 98, 98, 98, 98, 98, 98
+ 134, 134, 134, 134, 135, 135, 133, 7, 7, 7,
+ 7, 7, 7, 7, 133, 15, 135, 17, 136, 136,
+ 134, 134, 137, 137, 138, 138, 133, 133, 133, 133,
+ 133, 133, 133, 133, 139, 133, 133, 133, 133, 140,
+ 133, 133, 133, 133, 133, 133, 141, 133, 133, 133,
+ 133, 142, 143, 133, 144, 133, 133, 133, 145, 133,
+ 133, 133, 146, 133, 133, 146, 147, 133, 147, 133,
+ 133, 133, 140, 133, 141, 141, 141, 133, 133, 142,
+ 143, 133, 133, 148, 133, 133, 145, 133, 133, 133,
+ 133, 146, 133, 146, 147, 147, 147, 133, 141, 133,
+
+ 141, 77, 141, 133, 133, 133, 133, 133, 133, 133,
+ 133, 146, 147, 133, 141, 103, 133, 133, 133, 133,
+ 133, 133, 146, 147, 133, 133, 133, 133, 133, 133,
+ 133, 133, 0, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133
} ;
-static yyconst short int yy_nxt[325] =
+static yyconst short int yy_nxt[399] =
{ 0,
- 98, 98, 25, 25, 25, 28, 26, 26, 25, 28,
- 69, 66, 59, 26, 26, 60, 67, 80, 70, 68,
- 29, 81, 81, 61, 29, 30, 30, 25, 30, 30,
- 30, 31, 32, 30, 30, 30, 30, 30, 30, 30,
- 30, 33, 30, 30, 30, 33, 33, 33, 33, 33,
- 33, 33, 33, 33, 33, 30, 30, 30, 30, 25,
- 25, 30, 30, 73, 34, 73, 35, 30, 30, 69,
- 75, 52, 52, 60, 74, 66, 74, 70, 53, 53,
- 67, 74, 36, 30, 30, 37, 54, 54, 56, 97,
- 34, 37, 35, 75, 87, 96, 60, 59, 88, 88,
-
- 60, 91, 95, 91, 74, 92, 92, 94, 36, 38,
- 39, 25, 38, 38, 38, 40, 41, 41, 38, 38,
- 38, 38, 42, 43, 41, 44, 45, 38, 38, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 42,
- 38, 25, 46, 93, 47, 48, 49, 49, 90, 89,
- 86, 86, 48, 58, 49, 84, 83, 82, 78, 63,
- 57, 72, 71, 65, 63, 57, 98, 25, 25, 48,
- 38, 38, 25, 38, 38, 38, 38, 50, 38, 38,
- 38, 38, 38, 38, 38, 38, 51, 38, 38, 38,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
-
- 38, 38, 76, 98, 98, 60, 98, 98, 98, 98,
- 98, 98, 98, 74, 98, 98, 98, 77, 98, 98,
- 98, 77, 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 58, 73, 58, 58, 58, 58, 58, 98, 58,
- 85, 85, 85, 74, 58, 58, 58, 85, 58, 58,
- 58, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 85, 58, 58, 24, 24, 24, 24, 27, 27, 27,
- 27, 55, 98, 55, 55, 58, 58, 98, 58, 62,
- 62, 62, 62, 64, 98, 64, 64, 79, 98, 79,
- 79, 23, 98, 98, 98, 98, 98, 98, 98, 98,
-
- 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
- 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
- 98, 98, 98, 98
+ 133, 133, 29, 29, 29, 29, 29, 68, 33, 31,
+ 31, 30, 30, 30, 30, 34, 69, 64, 31, 31,
+ 29, 64, 33, 68, 65, 35, 66, 88, 65, 34,
+ 66, 70, 69, 71, 70, 70, 71, 71, 89, 35,
+ 36, 36, 29, 36, 36, 36, 36, 37, 38, 36,
+ 36, 39, 36, 36, 36, 36, 36, 36, 36, 40,
+ 36, 36, 36, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 36, 36, 36, 36, 87, 36, 36,
+ 36, 36, 36, 36, 41, 78, 42, 41, 76, 42,
+ 78, 70, 77, 71, 80, 79, 77, 85, 98, 70,
+
+ 79, 94, 43, 86, 98, 43, 44, 73, 44, 45,
+ 46, 29, 45, 45, 45, 45, 47, 48, 45, 48,
+ 49, 45, 45, 45, 45, 50, 51, 48, 52, 53,
+ 45, 45, 52, 52, 52, 52, 52, 52, 52, 52,
+ 52, 52, 50, 45, 29, 132, 54, 29, 55, 56,
+ 57, 99, 57, 34, 78, 98, 30, 29, 56, 96,
+ 57, 97, 60, 98, 79, 100, 30, 131, 130, 61,
+ 101, 104, 60, 105, 77, 56, 29, 62, 77, 61,
+ 85, 88, 58, 108, 100, 49, 86, 62, 112, 109,
+ 109, 75, 89, 59, 126, 75, 112, 59, 59, 59,
+
+ 59, 59, 59, 59, 59, 59, 59, 29, 113, 113,
+ 129, 99, 117, 58, 113, 117, 49, 113, 117, 128,
+ 119, 125, 124, 117, 59, 100, 120, 120, 59, 59,
+ 59, 59, 59, 59, 59, 59, 59, 59, 102, 101,
+ 76, 123, 77, 77, 77, 122, 77, 77, 77, 121,
+ 118, 126, 100, 100, 118, 115, 103, 127, 127, 114,
+ 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
+ 99, 111, 110, 106, 82, 74, 93, 91, 90, 84,
+ 82, 116, 116, 116, 100, 74, 133, 133, 116, 133,
+ 133, 133, 116, 116, 116, 116, 116, 116, 116, 116,
+
+ 116, 116, 28, 28, 28, 28, 28, 32, 32, 32,
+ 32, 32, 45, 45, 45, 45, 45, 63, 63, 63,
+ 63, 63, 67, 67, 67, 67, 67, 72, 133, 72,
+ 72, 72, 75, 75, 133, 75, 75, 81, 81, 81,
+ 81, 81, 83, 133, 83, 83, 83, 92, 133, 92,
+ 133, 92, 95, 133, 95, 95, 95, 107, 133, 107,
+ 107, 107, 27, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133
+
} ;
-static yyconst short int yy_chk[325] =
+static yyconst short int yy_chk[399] =
{ 0,
- 0, 0, 3, 4, 5, 5, 3, 4, 6, 6,
- 52, 50, 40, 3, 4, 40, 50, 65, 52, 107,
- 5, 65, 65, 104, 6, 7, 7, 7, 7, 7,
+ 0, 0, 1, 2, 3, 4, 5, 25, 5, 3,
+ 4, 1, 2, 3, 4, 5, 25, 23, 3, 4,
+ 6, 24, 6, 26, 23, 5, 23, 60, 24, 6,
+ 24, 30, 26, 30, 34, 39, 34, 39, 60, 6,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 11, 11, 21,
- 22, 13, 13, 58, 11, 73, 11, 14, 14, 69,
- 59, 21, 22, 59, 58, 66, 73, 69, 21, 22,
- 66, 59, 11, 12, 12, 13, 21, 22, 102, 96,
- 12, 14, 12, 75, 81, 95, 75, 84, 81, 81,
+ 7, 7, 7, 7, 7, 11, 11, 145, 12, 12,
+ 13, 13, 14, 14, 11, 48, 11, 12, 47, 12,
+ 57, 49, 47, 49, 142, 48, 47, 58, 70, 66,
- 84, 88, 94, 92, 75, 88, 88, 90, 12, 15,
+ 57, 66, 11, 58, 70, 12, 13, 140, 14, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 17, 17, 89, 17, 17, 17, 17, 83, 82,
- 80, 79, 17, 76, 17, 74, 72, 71, 64, 62,
- 57, 54, 53, 47, 45, 39, 23, 2, 1, 17,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
-
- 19, 19, 60, 0, 0, 60, 0, 0, 0, 0,
- 0, 0, 0, 60, 0, 0, 0, 60, 0, 0,
- 0, 60, 60, 60, 60, 60, 60, 60, 60, 60,
- 60, 77, 77, 77, 77, 77, 77, 77, 0, 77,
+ 15, 15, 15, 15, 17, 131, 17, 21, 17, 17,
+ 17, 75, 17, 17, 78, 71, 21, 22, 17, 69,
+ 17, 69, 21, 71, 78, 75, 22, 130, 129, 21,
+ 76, 79, 22, 79, 76, 17, 19, 21, 76, 22,
+ 85, 88, 19, 84, 76, 19, 85, 22, 94, 84,
+ 84, 102, 88, 19, 127, 102, 94, 19, 19, 19,
+
+ 19, 19, 19, 19, 19, 19, 19, 20, 96, 97,
+ 122, 99, 104, 20, 96, 105, 20, 97, 104, 121,
+ 109, 117, 113, 105, 20, 99, 109, 109, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 77, 101,
+ 115, 112, 77, 101, 115, 111, 77, 101, 115, 110,
+ 108, 120, 77, 101, 107, 100, 77, 120, 120, 98,
77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 99, 99, 99, 99, 100, 100, 100,
- 100, 101, 0, 101, 101, 103, 103, 0, 103, 105,
- 105, 105, 105, 106, 0, 106, 106, 108, 0, 108,
- 108, 98, 98, 98, 98, 98, 98, 98, 98, 98,
-
- 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
- 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
- 98, 98, 98, 98
+ 103, 91, 90, 83, 81, 74, 65, 62, 61, 55,
+ 53, 103, 103, 103, 103, 46, 27, 0, 103, 0,
+ 0, 0, 103, 103, 103, 103, 103, 103, 103, 103,
+
+ 103, 103, 134, 134, 134, 134, 134, 135, 135, 135,
+ 135, 135, 136, 136, 136, 136, 136, 137, 137, 137,
+ 137, 137, 138, 138, 138, 138, 138, 139, 0, 139,
+ 139, 139, 141, 141, 0, 141, 141, 143, 143, 143,
+ 143, 143, 144, 0, 144, 144, 144, 146, 0, 146,
+ 0, 146, 147, 0, 147, 147, 147, 148, 0, 148,
+ 148, 148, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133
+
} ;
static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
@@ -520,7 +553,7 @@ char *yytext;
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -531,7 +564,31 @@ char *yytext;
* All output generated with Doxygen is not covered by this license.
*
*/
-#line 18 "defargs.l"
+/*! \file
+ * This scanner is used to convert a string into a list of function or
+ * template arguments. Each parsed argument results in a Argument struct,
+ * that is put into an ArgumentList in declaration order.
+ * Comment blocks for arguments can also be included in the string.
+ * The argument string does not contain new-lines (except inside any
+ * comment blocks).
+ * An Argument consists of the string fields:
+ * type,name,default value, and documentation
+ * The Argument list as a whole can be pure, constant or volatile.
+ *
+ * Examples of input strings are:
+ * \code
+ * "(int a,int b) const"
+ * "(const char *s="hello world",int=5) = 0"
+ * ""
+ * "(char c,const char)"
+ * \endcode
+ *
+ * Note: It is not always possible to distinguish between the name and
+ * type of an argument. In case of doubt the name is added to the
+ * type, and the matchArgumentList in util.cpp is be used to
+ * further determine the correct separation.
+ */
+#line 43 "defargs.l"
/*
* includes
@@ -547,28 +604,27 @@ char *yytext;
#include "entry.h"
#include "util.h"
-#define YY_NO_UNPUT
#define YY_NEVER_INTERACTIVE 1
/* -----------------------------------------------------------------
- *
- * statics
+ * state variables
*/
-
-static const char *inputString;
-static int inputPosition;
-static ArgumentList *argList;
-static QCString *copyArgValue;
-static QCString curArgTypeName;
-static QCString curArgDefValue;
-static QCString curArgName;
-static QCString curArgAttrib;
-static int argRoundCount;
-static int argSharpCount;
-static int argCurlyCount;
-static int readArgContext;
-
-
+static const char *g_inputString;
+static int g_inputPosition;
+static ArgumentList *g_argList;
+static QCString *g_copyArgValue;
+static QCString g_curArgTypeName;
+static QCString g_curArgDefValue;
+static QCString g_curArgName;
+static QCString g_curArgDocs;
+static QCString g_curArgAttrib;
+static QCString g_curArgArray;
+static int g_argRoundCount;
+static int g_argSharpCount;
+static int g_argCurlyCount;
+static int g_readArgContext;
+static int g_lastDocContext;
+static int g_lastDocChar;
/* -----------------------------------------------------------------
*/
@@ -578,9 +634,9 @@ static int readArgContext;
static int yyread(char *buf,int max_size)
{
int c=0;
- while( c < max_size && inputString[inputPosition] )
+ while( c < max_size && g_inputString[g_inputPosition] )
{
- *buf = inputString[inputPosition++] ;
+ *buf = g_inputString[g_inputPosition++] ;
c++; buf++;
}
return c;
@@ -606,6 +662,10 @@ static int yyread(char *buf,int max_size)
#define FuncQual 10
+#define ReadDocBlock 11
+
+#define ReadDocLine 12
+
/* Macros after this point can all be overridden by user definitions in
* section 1.
@@ -756,7 +816,7 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 91 "defargs.l"
+#line 117 "defargs.l"
@@ -806,14 +866,14 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 99 )
+ if ( yy_current_state >= 134 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
*yy_state_ptr++ = yy_current_state;
++yy_cp;
}
- while ( yy_base[yy_current_state] != 292 );
+ while ( yy_base[yy_current_state] != 363 );
yy_find_action:
yy_current_state = *--yy_state_ptr;
@@ -864,240 +924,261 @@ do_action: /* This label is used only to access EOF actions. */
{ /* beginning of action switch */
case 1:
YY_RULE_SETUP
-#line 93 "defargs.l"
+#line 119 "defargs.l"
{ BEGIN(ReadFuncArgType); }
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 95 "defargs.l"
+#line 121 "defargs.l"
{
- curArgTypeName+=" ";
+ g_curArgTypeName+=" ";
}
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 98 "defargs.l"
+#line 124 "defargs.l"
{
- if (curArgTypeName.stripWhiteSpace().isEmpty())
- curArgAttrib=yytext;
- else
- curArgTypeName+=yytext;
+ if (g_curArgTypeName.stripWhiteSpace().isEmpty())
+ {
+ g_curArgAttrib=yytext; // for M$-IDL
+ }
+ else // array type
+ {
+ g_curArgArray+=yytext;
+ }
}
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 104 "defargs.l"
-{ curArgDefValue+=yytext; }
+#line 134 "defargs.l"
+{ g_curArgDefValue+=yytext; }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 105 "defargs.l"
-{ curArgDefValue+=yytext; }
+#line 135 "defargs.l"
+{ g_curArgDefValue+=yytext; }
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 106 "defargs.l"
-{ curArgDefValue+=yytext; }
+#line 136 "defargs.l"
+{ g_curArgDefValue+=yytext; }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 107 "defargs.l"
+#line 137 "defargs.l"
{
- curArgDefValue+=*yytext;
+ g_curArgDefValue+=*yytext;
BEGIN( CopyArgString );
}
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 111 "defargs.l"
+#line 141 "defargs.l"
{
// function pointer as argument
- curArgTypeName+=yytext;
- //curArgTypeName=curArgTypeName.simplifyWhiteSpace();
+ g_curArgTypeName+=yytext;
+ //g_curArgTypeName=g_curArgTypeName.simplifyWhiteSpace();
BEGIN( ReadFuncArgPtr );
}
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 117 "defargs.l"
+#line 147 "defargs.l"
{
- curArgName=yytext;
+ g_curArgName=yytext;
}
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 120 "defargs.l"
+#line 150 "defargs.l"
{
- curArgTypeName+=yytext;
- //curArgTypeName=curArgTypeName.simplifyWhiteSpace();
- readArgContext = ReadFuncArgType;
- copyArgValue=&curArgTypeName;
- argRoundCount=0;
+ g_curArgTypeName+=yytext;
+ //g_curArgTypeName=g_curArgTypeName.simplifyWhiteSpace();
+ g_readArgContext = ReadFuncArgType;
+ g_copyArgValue=&g_curArgTypeName;
+ g_argRoundCount=0;
BEGIN( CopyArgRound2 );
}
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 128 "defargs.l"
+#line 158 "defargs.l"
{ // redundant braces detected / remove them
- int i=curArgTypeName.findRev('('),l=curArgTypeName.length();
+ int i=g_curArgTypeName.findRev('('),l=g_curArgTypeName.length();
if (i!=-1)
- curArgTypeName=curArgTypeName.left(i)+
- curArgTypeName.right(l-i-1);
- curArgTypeName+=curArgName;
+ g_curArgTypeName=g_curArgTypeName.left(i)+
+ g_curArgTypeName.right(l-i-1);
+ g_curArgTypeName+=g_curArgName;
BEGIN( ReadFuncArgType );
}
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 136 "defargs.l"
+#line 166 "defargs.l"
{
if (YY_START==ReadFuncArgType)
{
- curArgTypeName+=*yytext;
- copyArgValue=&curArgTypeName;
+ g_curArgTypeName+=*yytext;
+ g_copyArgValue=&g_curArgTypeName;
}
else // YY_START==ReadFuncArgDef
{
- curArgDefValue+=*yytext;
- copyArgValue=&curArgDefValue;
+ g_curArgDefValue+=*yytext;
+ g_copyArgValue=&g_curArgDefValue;
}
- readArgContext = YY_START;
+ g_readArgContext = YY_START;
if (*yytext=='(')
{
- argRoundCount=0;
+ g_argRoundCount=0;
BEGIN( CopyArgRound );
}
else if (*yytext=='{')
{
- argCurlyCount=0;
+ g_argCurlyCount=0;
BEGIN( CopyArgCurly );
}
else // yytext=='<'
{
- argSharpCount=0;
+ g_argSharpCount=0;
BEGIN( CopyArgSharp );
}
}
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 164 "defargs.l"
+#line 194 "defargs.l"
{
- argRoundCount++;
- *copyArgValue += *yytext;
+ g_argRoundCount++;
+ *g_copyArgValue += *yytext;
}
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 168 "defargs.l"
+#line 198 "defargs.l"
{
- *copyArgValue += *yytext;
- if (argRoundCount>0)
+ *g_copyArgValue += *yytext;
+ if (g_argRoundCount>0)
{
- argRoundCount--;
+ g_argRoundCount--;
}
else
{
if (YY_START==CopyArgRound2)
{
- *copyArgValue+=" "+curArgName;
+ *g_copyArgValue+=" "+g_curArgName;
}
- BEGIN( readArgContext );
+ BEGIN( g_readArgContext );
}
}
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 183 "defargs.l"
+#line 213 "defargs.l"
{
- argSharpCount++;
- *copyArgValue += *yytext;
+ g_argSharpCount++;
+ *g_copyArgValue += *yytext;
}
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 187 "defargs.l"
+#line 217 "defargs.l"
{
- *copyArgValue += *yytext;
- if (argSharpCount>0) argSharpCount--;
- else BEGIN( readArgContext );
+ *g_copyArgValue += *yytext;
+ if (g_argSharpCount>0) g_argSharpCount--;
+ else BEGIN( g_readArgContext );
}
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 192 "defargs.l"
+#line 222 "defargs.l"
{
- argCurlyCount++;
- *copyArgValue += *yytext;
+ g_argCurlyCount++;
+ *g_copyArgValue += *yytext;
}
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 196 "defargs.l"
+#line 226 "defargs.l"
{
- *copyArgValue += *yytext;
- if (argCurlyCount>0) argCurlyCount--;
- else BEGIN( readArgContext );
+ *g_copyArgValue += *yytext;
+ if (g_argCurlyCount>0) g_argCurlyCount--;
+ else BEGIN( g_readArgContext );
}
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 201 "defargs.l"
+#line 231 "defargs.l"
{
- curArgDefValue+=yytext;
+ g_curArgDefValue+=yytext;
}
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 204 "defargs.l"
+#line 234 "defargs.l"
{
- curArgDefValue+=*yytext;
+ g_curArgDefValue+=*yytext;
BEGIN( ReadFuncArgDef );
}
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 208 "defargs.l"
+#line 238 "defargs.l"
{
BEGIN( ReadFuncArgDef );
}
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 211 "defargs.l"
+#line 241 "defargs.l"
+{
+ g_lastDocContext=YY_START;
+ g_lastDocChar=*yytext;
+ QCString text=yytext;
+ if (text.find("//")!=-1)
+ BEGIN( ReadDocLine );
+ else
+ BEGIN( ReadDocBlock );
+ }
+ YY_BREAK
+case 23:
+YY_RULE_SETUP
+#line 250 "defargs.l"
{
- curArgTypeName=removeRedundantWhiteSpace(
- curArgTypeName.simplifyWhiteSpace());
- curArgDefValue=curArgDefValue.stripWhiteSpace();
- int l=curArgTypeName.length();
+ g_curArgTypeName=removeRedundantWhiteSpace(
+ g_curArgTypeName.simplifyWhiteSpace());
+ g_curArgDefValue=g_curArgDefValue.stripWhiteSpace();
+ int l=g_curArgTypeName.length();
if (l>0)
{
int i=l-1;
while (i>=0 &&
(
- isspace(curArgTypeName.at(i)) ||
- isId(curArgTypeName.at(i))
+ isspace(g_curArgTypeName.at(i)) ||
+ isId(g_curArgTypeName.at(i))
)
) i--;
Argument *a = new Argument;
- a->attrib = curArgAttrib.copy();
- if (i>=0 && curArgTypeName.at(i)!=':')
+ a->attrib = g_curArgAttrib.copy();
+ if (i>=0 && g_curArgTypeName.at(i)!=':')
{ // type contains a name
- a->type = curArgTypeName.left(i+1).stripWhiteSpace();
- a->name = curArgTypeName.right(curArgTypeName.length()-i-1);
+ a->type = g_curArgTypeName.left(i+1).stripWhiteSpace();
+ a->name = g_curArgTypeName.right(g_curArgTypeName.length()-i-1);
}
else // assume only the type was specified, try to determine name later
{
- a->type = curArgTypeName.stripWhiteSpace();
+ a->type = g_curArgTypeName.stripWhiteSpace();
}
- a->defval = curArgDefValue.copy();
- //printf("----> Adding argument `%s' `%s' `%s'\n",a->type.data(),a->name.data(),a->defval.data());
- argList->append(a);
+ a->array = g_curArgArray.copy();
+ a->defval = g_curArgDefValue.copy();
+ a->docs = g_curArgDocs.stripWhiteSpace();
+ //printf("Argument %s %s adding docs=`%s'\n",a->type.data(),a->name.data(),a->docs.data());
+ g_argList->append(a);
}
- curArgAttrib.resize(0);
- curArgTypeName.resize(0);
- curArgDefValue.resize(0);
+ g_curArgAttrib.resize(0);
+ g_curArgTypeName.resize(0);
+ g_curArgDefValue.resize(0);
+ g_curArgArray.resize(0);
+ g_curArgDocs.resize(0);
if (*yytext==')')
{
BEGIN(FuncQual);
@@ -1109,78 +1190,136 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 23:
+case 24:
YY_RULE_SETUP
-#line 253 "defargs.l"
+#line 296 "defargs.l"
{
QCString name=yytext; //resolveDefines(yytext);
//printf("resolveName `%s'->`%s'\n",yytext,name.data());
- curArgTypeName+=name;
+ g_curArgTypeName+=name;
}
YY_BREAK
-case 24:
+case 25:
YY_RULE_SETUP
-#line 258 "defargs.l"
+#line 301 "defargs.l"
{
- curArgTypeName+=*yytext;
+ g_curArgTypeName+=*yytext;
}
YY_BREAK
-case 25:
+case 26:
YY_RULE_SETUP
-#line 261 "defargs.l"
+#line 304 "defargs.l"
{
- curArgDefValue+=*yytext;
+ g_curArgDefValue+=*yytext;
}
YY_BREAK
-case 26:
+case 27:
YY_RULE_SETUP
-#line 264 "defargs.l"
+#line 307 "defargs.l"
{
QCString name=yytext; //resolveDefines(yytext);
- *copyArgValue+=name;
+ *g_copyArgValue+=name;
}
YY_BREAK
-case 27:
+case 28:
YY_RULE_SETUP
-#line 268 "defargs.l"
+#line 311 "defargs.l"
{
- *copyArgValue += *yytext;
+ *g_copyArgValue += *yytext;
}
YY_BREAK
-case 28:
+case 29:
YY_RULE_SETUP
-#line 271 "defargs.l"
+#line 314 "defargs.l"
{
- argList->constSpecifier=TRUE;
+ g_argList->constSpecifier=TRUE;
}
YY_BREAK
-case 29:
+case 30:
YY_RULE_SETUP
-#line 274 "defargs.l"
+#line 317 "defargs.l"
{
- argList->volatileSpecifier=TRUE;
+ g_argList->volatileSpecifier=TRUE;
}
YY_BREAK
-case 30:
+case 31:
YY_RULE_SETUP
-#line 277 "defargs.l"
+#line 320 "defargs.l"
{
- argList->pureSpecifier=TRUE;
+ g_argList->pureSpecifier=TRUE;
}
YY_BREAK
-case 31:
+case 32:
+YY_RULE_SETUP
+#line 323 "defargs.l"
+{
+ g_curArgDocs+=yytext;
+ }
+ YY_BREAK
+case 33:
+YY_RULE_SETUP
+#line 326 "defargs.l"
+{
+ g_curArgDocs+=yytext;
+ }
+ YY_BREAK
+case 34:
+YY_RULE_SETUP
+#line 329 "defargs.l"
+{
+ if (g_lastDocChar!=0)
+ unput(g_lastDocChar);
+ BEGIN(g_lastDocContext);
+ }
+ YY_BREAK
+case 35:
+YY_RULE_SETUP
+#line 334 "defargs.l"
+{
+ if (g_lastDocChar!=0)
+ unput(g_lastDocChar);
+ BEGIN(g_lastDocContext);
+ }
+ YY_BREAK
+case 36:
+YY_RULE_SETUP
+#line 339 "defargs.l"
+{
+ g_curArgDocs+=*yytext;
+ }
+ YY_BREAK
+case 37:
+YY_RULE_SETUP
+#line 342 "defargs.l"
+{
+ g_curArgDocs+=*yytext;
+ }
+ YY_BREAK
+case 38:
+YY_RULE_SETUP
+#line 345 "defargs.l"
+{
+ g_lastDocContext=YY_START;
+ g_lastDocChar=0;
+ if (yytext[1]=='/')
+ BEGIN( ReadDocLine );
+ else
+ BEGIN( ReadDocBlock );
+ }
+ YY_BREAK
+case 39:
YY_RULE_SETUP
-#line 280 "defargs.l"
+#line 353 "defargs.l"
YY_BREAK
-case 32:
+case 40:
YY_RULE_SETUP
-#line 281 "defargs.l"
+#line 354 "defargs.l"
YY_BREAK
-case 33:
+case 41:
YY_RULE_SETUP
-#line 283 "defargs.l"
+#line 356 "defargs.l"
ECHO;
YY_BREAK
case YY_STATE_EOF(INITIAL):
@@ -1194,6 +1333,8 @@ ECHO;
case YY_STATE_EOF(ReadFuncArgDef):
case YY_STATE_EOF(ReadFuncArgPtr):
case YY_STATE_EOF(FuncQual):
+ case YY_STATE_EOF(ReadDocBlock):
+ case YY_STATE_EOF(ReadDocLine):
yyterminate();
case YY_END_OF_BUFFER:
@@ -1481,7 +1622,7 @@ static yy_state_type yy_get_previous_state()
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 99 )
+ if ( yy_current_state >= 134 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1511,11 +1652,11 @@ yy_state_type yy_current_state;
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 99 )
+ if ( yy_current_state >= 134 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 98);
+ yy_is_jam = (yy_current_state == 133);
if ( ! yy_is_jam )
*yy_state_ptr++ = yy_current_state;
@@ -2072,33 +2213,33 @@ int main()
return 0;
}
#endif
-#line 283 "defargs.l"
+#line 356 "defargs.l"
/* ----------------------------------------------------------------------------
*/
-// converts an argument string into a list of Arguments.
-// an Argument consists of a type, an optional name, and an optional
-// default initializer.
-
+/*! Converts an argument string into an ArgumentList.
+ * \param argsString the list of Arguments.
+ * \param al a reference to resulting argument list pointer.
+ */
+
void stringToArgumentList(const char *argsString,ArgumentList* &al)
{
- //if (al==0) al=new ArgumentList; // allocate new list if needed.
if (al==0) return;
- if (!argsString) return;
- inputString = argsString;
- inputPosition = 0;
- curArgTypeName.resize(0);
- curArgDefValue.resize(0);
- curArgName.resize(0);
- argList = al;
+ if (argsString==0) return;
+ g_inputString = argsString;
+ //printf("stringToArgumentList(%s)\n",argsString);
+ g_inputPosition = 0;
+ g_curArgTypeName.resize(0);
+ g_curArgDefValue.resize(0);
+ g_curArgName.resize(0);
+ g_argList = al;
defargsYYrestart( defargsYYin );
BEGIN( Start );
defargsYYlex();
}
extern "C" { // some bogus code to keep the compiler happy
-// int defargsYYwrap() { return 1 ; }
void defargsYYdummy() { yy_flex_realloc(0,0); }
}
diff --git a/src/defargs.h b/src/defargs.h
index 70e901c..ca34550 100644
--- a/src/defargs.h
+++ b/src/defargs.h
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
diff --git a/src/defargs.l b/src/defargs.l
index 2a1249a..2744869 100644
--- a/src/defargs.l
+++ b/src/defargs.l
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -14,6 +14,31 @@
*
*/
+/*! \file
+ * This scanner is used to convert a string into a list of function or
+ * template arguments. Each parsed argument results in a Argument struct,
+ * that is put into an ArgumentList in declaration order.
+ * Comment blocks for arguments can also be included in the string.
+ * The argument string does not contain new-lines (except inside any
+ * comment blocks).
+ * An Argument consists of the string fields:
+ * type,name,default value, and documentation
+ * The Argument list as a whole can be pure, constant or volatile.
+ *
+ * Examples of input strings are:
+ * \code
+ * "(int a,int b) const"
+ * "(const char *s="hello world",int=5) = 0"
+ * ""
+ * "(char c,const char)"
+ * \endcode
+ *
+ * Note: It is not always possible to distinguish between the name and
+ * type of an argument. In case of doubt the name is added to the
+ * type, and the matchArgumentList in util.cpp is be used to
+ * further determine the correct separation.
+ */
+
%{
/*
@@ -30,28 +55,27 @@
#include "entry.h"
#include "util.h"
-#define YY_NO_UNPUT
#define YY_NEVER_INTERACTIVE 1
/* -----------------------------------------------------------------
- *
- * statics
+ * state variables
*/
-
-static const char *inputString;
-static int inputPosition;
-static ArgumentList *argList;
-static QCString *copyArgValue;
-static QCString curArgTypeName;
-static QCString curArgDefValue;
-static QCString curArgName;
-static QCString curArgAttrib;
-static int argRoundCount;
-static int argSharpCount;
-static int argCurlyCount;
-static int readArgContext;
-
-
+static const char *g_inputString;
+static int g_inputPosition;
+static ArgumentList *g_argList;
+static QCString *g_copyArgValue;
+static QCString g_curArgTypeName;
+static QCString g_curArgDefValue;
+static QCString g_curArgName;
+static QCString g_curArgDocs;
+static QCString g_curArgAttrib;
+static QCString g_curArgArray;
+static int g_argRoundCount;
+static int g_argSharpCount;
+static int g_argCurlyCount;
+static int g_readArgContext;
+static int g_lastDocContext;
+static int g_lastDocChar;
/* -----------------------------------------------------------------
*/
@@ -61,9 +85,9 @@ static int readArgContext;
static int yyread(char *buf,int max_size)
{
int c=0;
- while( c < max_size && inputString[inputPosition] )
+ while( c < max_size && g_inputString[g_inputPosition] )
{
- *buf = inputString[inputPosition++] ;
+ *buf = g_inputString[g_inputPosition++] ;
c++; buf++;
}
return c;
@@ -86,6 +110,8 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
%x ReadFuncArgDef
%x ReadFuncArgPtr
%x FuncQual
+%x ReadDocBlock
+%x ReadDocLine
%%
@@ -93,153 +119,170 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
[<(] { BEGIN(ReadFuncArgType); }
{B}* {
- curArgTypeName+=" ";
+ g_curArgTypeName+=" ";
}
"["[^\]]*"]" {
- if (curArgTypeName.stripWhiteSpace().isEmpty())
- curArgAttrib=yytext;
- else
- curArgTypeName+=yytext;
+ if (g_curArgTypeName.stripWhiteSpace().isEmpty())
+ {
+ g_curArgAttrib=yytext; // for M$-IDL
+ }
+ else // array type
+ {
+ g_curArgArray+=yytext;
+ }
}
-"'"\\[0-7]{1,3}"'" { curArgDefValue+=yytext; }
-"'"\\."'" { curArgDefValue+=yytext; }
-"'"."'" { curArgDefValue+=yytext; }
+"'"\\[0-7]{1,3}"'" { g_curArgDefValue+=yytext; }
+"'"\\."'" { g_curArgDefValue+=yytext; }
+"'"."'" { g_curArgDefValue+=yytext; }
\" {
- curArgDefValue+=*yytext;
+ g_curArgDefValue+=*yytext;
BEGIN( CopyArgString );
}
"("([^:)]+{B}*"::")*{B}*[&*]+{B}*/{ID} {
// function pointer as argument
- curArgTypeName+=yytext;
- //curArgTypeName=curArgTypeName.simplifyWhiteSpace();
+ g_curArgTypeName+=yytext;
+ //g_curArgTypeName=g_curArgTypeName.simplifyWhiteSpace();
BEGIN( ReadFuncArgPtr );
}
{ID} {
- curArgName=yytext;
+ g_curArgName=yytext;
}
")"{B}*"(" {
- curArgTypeName+=yytext;
- //curArgTypeName=curArgTypeName.simplifyWhiteSpace();
- readArgContext = ReadFuncArgType;
- copyArgValue=&curArgTypeName;
- argRoundCount=0;
+ g_curArgTypeName+=yytext;
+ //g_curArgTypeName=g_curArgTypeName.simplifyWhiteSpace();
+ g_readArgContext = ReadFuncArgType;
+ g_copyArgValue=&g_curArgTypeName;
+ g_argRoundCount=0;
BEGIN( CopyArgRound2 );
}
")" { // redundant braces detected / remove them
- int i=curArgTypeName.findRev('('),l=curArgTypeName.length();
+ int i=g_curArgTypeName.findRev('('),l=g_curArgTypeName.length();
if (i!=-1)
- curArgTypeName=curArgTypeName.left(i)+
- curArgTypeName.right(l-i-1);
- curArgTypeName+=curArgName;
+ g_curArgTypeName=g_curArgTypeName.left(i)+
+ g_curArgTypeName.right(l-i-1);
+ g_curArgTypeName+=g_curArgName;
BEGIN( ReadFuncArgType );
}
[({<] {
if (YY_START==ReadFuncArgType)
{
- curArgTypeName+=*yytext;
- copyArgValue=&curArgTypeName;
+ g_curArgTypeName+=*yytext;
+ g_copyArgValue=&g_curArgTypeName;
}
else // YY_START==ReadFuncArgDef
{
- curArgDefValue+=*yytext;
- copyArgValue=&curArgDefValue;
+ g_curArgDefValue+=*yytext;
+ g_copyArgValue=&g_curArgDefValue;
}
- readArgContext = YY_START;
+ g_readArgContext = YY_START;
if (*yytext=='(')
{
- argRoundCount=0;
+ g_argRoundCount=0;
BEGIN( CopyArgRound );
}
else if (*yytext=='{')
{
- argCurlyCount=0;
+ g_argCurlyCount=0;
BEGIN( CopyArgCurly );
}
else // yytext=='<'
{
- argSharpCount=0;
+ g_argSharpCount=0;
BEGIN( CopyArgSharp );
}
}
"(" {
- argRoundCount++;
- *copyArgValue += *yytext;
+ g_argRoundCount++;
+ *g_copyArgValue += *yytext;
}
")" {
- *copyArgValue += *yytext;
- if (argRoundCount>0)
+ *g_copyArgValue += *yytext;
+ if (g_argRoundCount>0)
{
- argRoundCount--;
+ g_argRoundCount--;
}
else
{
if (YY_START==CopyArgRound2)
{
- *copyArgValue+=" "+curArgName;
+ *g_copyArgValue+=" "+g_curArgName;
}
- BEGIN( readArgContext );
+ BEGIN( g_readArgContext );
}
}
"<" {
- argSharpCount++;
- *copyArgValue += *yytext;
+ g_argSharpCount++;
+ *g_copyArgValue += *yytext;
}
">" {
- *copyArgValue += *yytext;
- if (argSharpCount>0) argSharpCount--;
- else BEGIN( readArgContext );
+ *g_copyArgValue += *yytext;
+ if (g_argSharpCount>0) g_argSharpCount--;
+ else BEGIN( g_readArgContext );
}
"{" {
- argCurlyCount++;
- *copyArgValue += *yytext;
+ g_argCurlyCount++;
+ *g_copyArgValue += *yytext;
}
"}" {
- *copyArgValue += *yytext;
- if (argCurlyCount>0) argCurlyCount--;
- else BEGIN( readArgContext );
+ *g_copyArgValue += *yytext;
+ if (g_argCurlyCount>0) g_argCurlyCount--;
+ else BEGIN( g_readArgContext );
}
\\. {
- curArgDefValue+=yytext;
+ g_curArgDefValue+=yytext;
}
\" {
- curArgDefValue+=*yytext;
+ g_curArgDefValue+=*yytext;
BEGIN( ReadFuncArgDef );
}
"=" {
BEGIN( ReadFuncArgDef );
}
+[,)>]{B}*("/*"[*!]|"//"[/!])"<" {
+ g_lastDocContext=YY_START;
+ g_lastDocChar=*yytext;
+ QCString text=yytext;
+ if (text.find("//")!=-1)
+ BEGIN( ReadDocLine );
+ else
+ BEGIN( ReadDocBlock );
+ }
[,)>] {
- curArgTypeName=removeRedundantWhiteSpace(
- curArgTypeName.simplifyWhiteSpace());
- curArgDefValue=curArgDefValue.stripWhiteSpace();
- int l=curArgTypeName.length();
+ g_curArgTypeName=removeRedundantWhiteSpace(
+ g_curArgTypeName.simplifyWhiteSpace());
+ g_curArgDefValue=g_curArgDefValue.stripWhiteSpace();
+ int l=g_curArgTypeName.length();
if (l>0)
{
int i=l-1;
while (i>=0 &&
(
- isspace(curArgTypeName.at(i)) ||
- isId(curArgTypeName.at(i))
+ isspace(g_curArgTypeName.at(i)) ||
+ isId(g_curArgTypeName.at(i))
)
) i--;
Argument *a = new Argument;
- a->attrib = curArgAttrib.copy();
- if (i>=0 && curArgTypeName.at(i)!=':')
+ a->attrib = g_curArgAttrib.copy();
+ if (i>=0 && g_curArgTypeName.at(i)!=':')
{ // type contains a name
- a->type = curArgTypeName.left(i+1).stripWhiteSpace();
- a->name = curArgTypeName.right(curArgTypeName.length()-i-1);
+ a->type = g_curArgTypeName.left(i+1).stripWhiteSpace();
+ a->name = g_curArgTypeName.right(g_curArgTypeName.length()-i-1);
}
else // assume only the type was specified, try to determine name later
{
- a->type = curArgTypeName.stripWhiteSpace();
+ a->type = g_curArgTypeName.stripWhiteSpace();
}
- a->defval = curArgDefValue.copy();
- //printf("----> Adding argument `%s' `%s' `%s'\n",a->type.data(),a->name.data(),a->defval.data());
- argList->append(a);
+ a->array = g_curArgArray.copy();
+ a->defval = g_curArgDefValue.copy();
+ a->docs = g_curArgDocs.stripWhiteSpace();
+ //printf("Argument %s %s adding docs=`%s'\n",a->type.data(),a->name.data(),a->docs.data());
+ g_argList->append(a);
}
- curArgAttrib.resize(0);
- curArgTypeName.resize(0);
- curArgDefValue.resize(0);
+ g_curArgAttrib.resize(0);
+ g_curArgTypeName.resize(0);
+ g_curArgDefValue.resize(0);
+ g_curArgArray.resize(0);
+ g_curArgDocs.resize(0);
if (*yytext==')')
{
BEGIN(FuncQual);
@@ -253,30 +296,60 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
{ID} {
QCString name=yytext; //resolveDefines(yytext);
//printf("resolveName `%s'->`%s'\n",yytext,name.data());
- curArgTypeName+=name;
+ g_curArgTypeName+=name;
}
. {
- curArgTypeName+=*yytext;
+ g_curArgTypeName+=*yytext;
}
. {
- curArgDefValue+=*yytext;
+ g_curArgDefValue+=*yytext;
}
{ID} {
QCString name=yytext; //resolveDefines(yytext);
- *copyArgValue+=name;
+ *g_copyArgValue+=name;
}
. {
- *copyArgValue += *yytext;
+ *g_copyArgValue += *yytext;
}
"const" {
- argList->constSpecifier=TRUE;
+ g_argList->constSpecifier=TRUE;
}
"volatile" {
- argList->volatileSpecifier=TRUE;
+ g_argList->volatileSpecifier=TRUE;
}
"="{B}*"0" {
- argList->pureSpecifier=TRUE;
+ g_argList->pureSpecifier=TRUE;
+ }
+[^\*\n]+ {
+ g_curArgDocs+=yytext;
+ }
+[^\n]+ {
+ g_curArgDocs+=yytext;
+ }
+"*/" {
+ if (g_lastDocChar!=0)
+ unput(g_lastDocChar);
+ BEGIN(g_lastDocContext);
}
+\n {
+ if (g_lastDocChar!=0)
+ unput(g_lastDocChar);
+ BEGIN(g_lastDocContext);
+ }
+\n {
+ g_curArgDocs+=*yytext;
+ }
+. {
+ g_curArgDocs+=*yytext;
+ }
+<*>("/*"[*!]|"//"[/!])("<"?) {
+ g_lastDocContext=YY_START;
+ g_lastDocChar=0;
+ if (yytext[1]=='/')
+ BEGIN( ReadDocLine );
+ else
+ BEGIN( ReadDocBlock );
+ }
<*>\n
<*>.
@@ -285,27 +358,27 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
/* ----------------------------------------------------------------------------
*/
-// converts an argument string into a list of Arguments.
-// an Argument consists of a type, an optional name, and an optional
-// default initializer.
-
+/*! Converts an argument string into an ArgumentList.
+ * \param argsString the list of Arguments.
+ * \param al a reference to resulting argument list pointer.
+ */
+
void stringToArgumentList(const char *argsString,ArgumentList* &al)
{
- //if (al==0) al=new ArgumentList; // allocate new list if needed.
if (al==0) return;
- if (!argsString) return;
- inputString = argsString;
- inputPosition = 0;
- curArgTypeName.resize(0);
- curArgDefValue.resize(0);
- curArgName.resize(0);
- argList = al;
+ if (argsString==0) return;
+ g_inputString = argsString;
+ //printf("stringToArgumentList(%s)\n",argsString);
+ g_inputPosition = 0;
+ g_curArgTypeName.resize(0);
+ g_curArgDefValue.resize(0);
+ g_curArgName.resize(0);
+ g_argList = al;
defargsYYrestart( defargsYYin );
BEGIN( Start );
defargsYYlex();
}
extern "C" { // some bogus code to keep the compiler happy
-// int defargsYYwrap() { return 1 ; }
void defargsYYdummy() { yy_flex_realloc(0,0); }
}
diff --git a/src/define.cpp b/src/define.cpp
index 343ac00..eaf424e 100644
--- a/src/define.cpp
+++ b/src/define.cpp
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
diff --git a/src/define.h b/src/define.h
index 8577b55..8778a54 100644
--- a/src/define.h
+++ b/src/define.h
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
diff --git a/src/definition.cpp b/src/definition.cpp
index 0c96b44..8928694 100644
--- a/src/definition.cpp
+++ b/src/definition.cpp
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -43,11 +43,13 @@ QCString Definition::nameToFile(const char *name)
{
switch(c)
{
- case ':': result+="_"; break;
+ case ':': result+="_c_"; break;
case '<': result+="_lt"; break;
case '>': result+="_gt"; break;
case '*': result+="_ast"; break;
case '&': result+="_amp"; break;
+ case '|': result+="_p_"; break;
+ case ',': result+="_x_"; break;
case ' ': break;
default:
if (Config::caseSensitiveNames)
@@ -161,17 +163,20 @@ static bool readCodeFragment(const char *fileName,
/*! Write a reference to the source code defining this definition */
void Definition::writeSourceRef(OutputList &ol,const char *scopeName)
{
+ ol.pushGeneratorState();
//printf("Definition::writeSourceRef %d %p\n",bodyLine,bodyDef);
if (Config::sourceBrowseFlag && startBodyLine!=-1 && bodyDef)
{
+ //ol.disable(OutputGenerator::RTF);
ol.newParagraph();
+ //ol.enableAll();
QCString refText = theTranslator->trDefinedAtLineInSourceFile();
int lineMarkerPos = refText.find("@0");
int fileMarkerPos = refText.find("@1");
if (lineMarkerPos!=-1 && fileMarkerPos!=-1) // should always pass this.
{
- QString lineStr,anchorStr;
+ QCString lineStr,anchorStr;
lineStr.sprintf("%d",startBodyLine);
anchorStr.sprintf("l%05d",startBodyLine);
if (lineMarkerPos=startBodyLine && bodyDef)
@@ -255,6 +264,7 @@ void Definition::writeSourceRef(OutputList &ol,const char *scopeName)
actualStart,actualEnd,codeFragment)
)
{
+ initParseCodeContext();
//printf("Read:\n`%s'\n\n",codeFragment.data());
ol.startCodeFragment();
parseCode(ol,scopeName,codeFragment,FALSE,0,
@@ -262,6 +272,7 @@ void Definition::writeSourceRef(OutputList &ol,const char *scopeName)
ol.endCodeFragment();
}
}
+ ol.popGeneratorState();
}
bool Definition::hasDocumentation()
diff --git a/src/definition.h b/src/definition.h
index 03c422a..9eaf438 100644
--- a/src/definition.h
+++ b/src/definition.h
@@ -2,7 +2,7 @@
*
* $Id$
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -33,17 +33,17 @@ class Definition
/*! destroys the definition */
virtual ~Definition();
/*! returns the name of the definition */
- QCString name() const { return n; }
+ const QCString& name() const { return n; }
/*! returns the base name of the output file that contains this
* definition.
*/
virtual QCString getOutputFileBase() const = 0;
/*! Returns the name of the source listing of this file. */
- QCString sourceName() const { return getOutputFileBase()+"-source"; }
+ const QCString sourceName() const { return getOutputFileBase()+"-source"; }
/*! returns the detailed description of this definition */
- QCString documentation() const { return doc; }
+ const QCString& documentation() const { return doc; }
/*! returns the brief description of this definition */
- QCString briefDescription() const { return brief; }
+ const QCString& briefDescription() const { return brief; }
/*! sets a new \a name for the definition */
void setName(const char *name) { n=name; }
/*! sets the documentation of this definition to \a d. */
diff --git a/src/diagram.cpp b/src/diagram.cpp
index af9650a..cb1efdb 100644
--- a/src/diagram.cpp
+++ b/src/diagram.cpp
@@ -3,7 +3,7 @@
* $Id$
*
*
- * Copyright (C) 1997-1999 by Dimitri van Heesch.
+ * Copyright (C) 1997-2000 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
@@ -166,7 +166,7 @@ static void writeMapArea(QTextStream &t,ClassDef *cd,int x,int y,int w,int h)
if ((dest=tagDestinationDict[ref])) t << *dest << "/";
}
t << cd->getOutputFileBase() << ".html\" ";
- t << "ALT=\"" << cd->name();
+ t << "alt=\"" << cd->name();
t << "\" shape=\"rect\" coords=\"" << x << "," << y << ",";
t << (x+w) << "," << (y+h) << "\">" << endl;
}
@@ -230,10 +230,11 @@ void DiagramItem::addChild(DiagramItem *di)
void DiagramRow::insertClass(DiagramItem *parent,ClassDef *cd,bool doBases,
Protection prot,Specifier virt,const char *ts)
{
- if (cd->visited) return; // error in the class diagram
+ //if (cd->visited) return; // the visit check does not work in case of
+ // multiple inheritance of the same class!
DiagramItem *di=new DiagramItem(parent, diagram->at(level)->count(),
cd,prot,virt,ts);
- cd->visited=TRUE;
+ //cd->visited=TRUE;
if (parent) parent->addChild(di);
di->move(count()*gridWidth,level*gridHeight);
append(di);
@@ -244,7 +245,7 @@ void DiagramRow::insertClass(DiagramItem *parent,ClassDef *cd,bool doBases,
while (bcd)
{
ClassDef *ccd=bcd->classDef;
- if (ccd && ccd->isVisibleInHierarchy() && !ccd->visited) count++;
+ if (ccd && ccd->isVisibleInHierarchy() /*&& !ccd->visited*/) count++;
bcd=bcl->next();
}
if (count>0 && (prot!=Private || !doBases))
@@ -264,7 +265,7 @@ void DiagramRow::insertClass(DiagramItem *parent,ClassDef *cd,bool doBases,
while (bcd)
{
ClassDef *ccd=bcd->classDef;
- if (ccd && ccd->isVisibleInHierarchy() && !ccd->visited)
+ if (ccd && ccd->isVisibleInHierarchy() /*&& !ccd->visited*/)
{
row->insertClass(di,ccd,doBases,bcd->prot,
doBases?bcd->virt:Normal,
@@ -969,8 +970,8 @@ void ClassDiagram::writeFigure(QTextStream &output,const char *path,
realWidth=pageWidth;
}
- output << "}\n"
- "\\begin{figure}[H]\n"
+ //output << "}\n";
+ output << ":\\begin{figure}[H]\n"
"\\begin{center}\n"
"\\leavevmode\n";
output << "\\setlength{\\epsfysize}{" << realHeight << "cm}\n";
@@ -1251,6 +1252,6 @@ void ClassDiagram::writeImageMap(QTextStream &t,const char *path,
image.save((QCString)path+"/"+fileName+".gif");
- t << "
" << endl;
+ t << "