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

📄 rpptreewalker.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
字号:
/******************************************************************************** Copyright (C) 2004-2006 Trolltech ASA. All rights reserved.**** This file is part of the qt3to4 porting application of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include "rpptreewalker.h"namespace Rpp {void RppTreeWalker::evaluateItem(const Item *item){    if(!item)        return;    if (Source *source = item->toSource())        evaluateSource(source);    else if (Directive *directive = item->toDirective())        evaluateDirective(directive);    else if (IfSection *ifSection = item->toIfSection())        evaluateIfSection(ifSection);    else if (Text *text = item->toText())        evaluateText(text);}void RppTreeWalker::evaluateItemComposite(const ItemComposite *itemComposite){    if (!itemComposite)        return;    for (int i = 0; i < itemComposite->count(); ++i) {        evaluateItem(itemComposite->item(i));    }}void RppTreeWalker::evaluateSource(const Source *source){    evaluateItemComposite(source->toItemComposite());}void RppTreeWalker::evaluateDirective(const Directive *directive){    if (!directive)        return;    if (EmptyDirective *dir = directive->toEmptyDirective())        evaluateEmptyDirective(dir);    else if (ErrorDirective *dir = directive->toErrorDirective())        evaluateErrorDirective(dir);    else if (PragmaDirective *dir = directive->toPragmaDirective())        evaluatePragmaDirective(dir);    else if (IncludeDirective *dir = directive->toIncludeDirective())        evaluateIncludeDirective(dir);    else if (DefineDirective *dir = directive->toDefineDirective())        evaluateDefineDirective(dir);    else if (UndefDirective *dir = directive->toUndefDirective())        evaluateUndefDirective(dir);    else if (LineDirective *dir = directive->toLineDirective())        evaluateLineDirective(dir);    else if (NonDirective *dir = directive->toNonDirective())        evaluateNonDirective(dir);    else if (NonDirective *dir = directive->toNonDirective())        evaluateNonDirective(dir);    else if (ConditionalDirective *dir = directive->toConditionalDirective())        evaluateConditionalDirective(dir);}/*    This function evaluates all the branches of an IfSection. You should     override it if you want to only evaluate the "correct" branch.*/void RppTreeWalker::evaluateIfSection(const IfSection *ifSection){    if (!ifSection)        return;    evaluateItemComposite(ifSection->toItemComposite());}void RppTreeWalker::evaluateConditionalDirective(const ConditionalDirective *conditionalDirective){    if (!conditionalDirective)        return;    if (IfdefDirective *dir = conditionalDirective->toIfdefDirective())         evaluateIfdefDirective(dir);    else if (IfndefDirective *dir = conditionalDirective->toIfndefDirective())         evaluateIfndefDirective(dir);    else if (IfDirective *dir = conditionalDirective->toIfDirective())         evaluateIfDirective(dir);    else if (ElifDirective *dir = conditionalDirective->toElifDirective())         evaluateElifDirective(dir);    else if (ElseDirective *dir = conditionalDirective->toElseDirective())         evaluateElseDirective(dir);}void RppTreeWalker::evaluateIfdefDirective(const IfdefDirective *directive){   if (!directive)        return;   evaluateItemComposite(directive->toItemComposite());}void RppTreeWalker::evaluateIfndefDirective(const IfndefDirective *directive){   if (!directive)        return;   evaluateItemComposite(directive->toItemComposite());}void RppTreeWalker::evaluateIfDirective(const IfDirective *directive){   if (!directive)        return;   evaluateItemComposite(directive->toItemComposite());}void RppTreeWalker::evaluateElifDirective(const ElifDirective *directive){   if (!directive)        return;   evaluateItemComposite(directive->toItemComposite());}void RppTreeWalker::evaluateElseDirective(const ElseDirective *directive){   if (!directive)        return;   evaluateItemComposite(directive->toItemComposite());}}

⌨️ 快捷键说明

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