/****************************************************************************** * * * * * Copyright (C) 1997-2013 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 * granted. No representations are made about the suitability of this software * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * * Documents produced by Doxygen are derivative works derived from the * input used in their production; they are not affected by this license. * */ #include #include "textdocvisitor.h" #include "message.h" //------------------------------------------------------------------------- void TextDocVisitor::visit(DocSymbol *s) { switch(s->symbol()) { case DocSymbol::BSlash: m_t << "\\"; break; case DocSymbol::At: m_t << "@"; break; case DocSymbol::Less: m_t << "<"; break; case DocSymbol::Greater: m_t << ">"; break; case DocSymbol::Amp: m_t << "&"; break; case DocSymbol::Dollar: m_t << "$"; break; case DocSymbol::Hash: m_t << "#"; break; case DocSymbol::DoubleColon: m_t << "::"; break; case DocSymbol::Percent: m_t << "%"; break; case DocSymbol::Pipe: m_t << "|"; break; case DocSymbol::Copy: m_t << "©"; break; case DocSymbol::Tm: m_t << "&tm;"; break; case DocSymbol::Reg: m_t << "®"; break; case DocSymbol::Apos: m_t << "'"; break; case DocSymbol::Quot: m_t << "\""; break; case DocSymbol::Lsquo: m_t << "‘"; break; case DocSymbol::Rsquo: m_t << "’"; break; case DocSymbol::Ldquo: m_t << "“"; break; case DocSymbol::Rdquo: m_t << "”"; break; case DocSymbol::Ndash: m_t << "–"; break; case DocSymbol::Mdash: m_t << "—"; break; case DocSymbol::Uml: m_t << "&" << s->letter() << "uml;"; break; case DocSymbol::Acute: m_t << "&" << s->letter() << "acute;"; break; case DocSymbol::Grave: m_t << "&" << s->letter() << "grave;"; break; case DocSymbol::Circ: m_t << "&" << s->letter() << "circ;"; break; case DocSymbol::Slash: m_t << "&" << s->letter() << "slash;"; break; case DocSymbol::Tilde: m_t << "&" << s->letter() << "tilde;"; break; case DocSymbol::Szlig: m_t << "ß"; break; case DocSymbol::Cedil: m_t << "&" << s->letter() << "cedil;"; break; case DocSymbol::Ring: m_t << "&" << s->letter() << "ring;"; break; case DocSymbol::Nbsp: m_t << " "; break; case DocSymbol::Aelig: m_t << "æ"; break; case DocSymbol::AElig: m_t << "Æ"; break; case DocSymbol::GrkGamma: m_t << "Γ"; break; case DocSymbol::GrkDelta: m_t << "Δ"; break; case DocSymbol::GrkTheta: m_t << "Θ"; break; case DocSymbol::GrkLambda: m_t << "Λ"; break; case DocSymbol::GrkXi: m_t << "Ξ"; break; case DocSymbol::GrkPi: m_t << "Π"; break; case DocSymbol::GrkSigma: m_t << "Σ"; break; case DocSymbol::GrkUpsilon: m_t << "Υ"; break; case DocSymbol::GrkPhi: m_t << "Φ"; break; case DocSymbol::GrkPsi: m_t << "Ψ"; break; case DocSymbol::GrkOmega: m_t << "Ω"; break; case DocSymbol::Grkalpha: m_t << "α"; break; case DocSymbol::Grkbeta: m_t << "β"; break; case DocSymbol::Grkgamma: m_t << "γ"; break; case DocSymbol::Grkdelta: m_t << "δ"; break; case DocSymbol::Grkepsilon: m_t << "ε"; break; case DocSymbol::Grkzeta: m_t << "ζ"; break; case DocSymbol::Grketa: m_t << "η"; break; case DocSymbol::Grktheta: m_t << "θ"; break; case DocSymbol::Grkiota: m_t << "ι"; break; case DocSymbol::Grkkappa: m_t << "κ"; break; case DocSymbol::Grklambda: m_t << "λ"; break; case DocSymbol::Grkmu: m_t << "μ"; break; case DocSymbol::Grknu: m_t << "ν"; break; case DocSymbol::Grkxi: m_t << "ξ"; break; case DocSymbol::Grkpi: m_t << "π"; break; case DocSymbol::Grkrho: m_t << "ρ"; break; case DocSymbol::Grksigma: m_t << "σ"; break; case DocSymbol::Grktau: m_t << "τ"; break; case DocSymbol::Grkupsilon: m_t << "υ"; break; case DocSymbol::Grkphi: m_t << "φ"; break; case DocSymbol::Grkchi: m_t << "χ"; break; case DocSymbol::Grkpsi: m_t << "ψ"; break; case DocSymbol::Grkomega: m_t << "ω"; break; case DocSymbol::Grkvarsigma: m_t << "ς"; break; case DocSymbol::Section: m_t << "§"; break; case DocSymbol::Degree: m_t << "°"; break; case DocSymbol::Prime: m_t << "′"; break; case DocSymbol::DoublePrime: m_t << "″"; break; case DocSymbol::Infinity: m_t << "∞"; break; case DocSymbol::EmptySet: m_t << "∅"; break; case DocSymbol::PlusMinus: m_t << "±"; break; case DocSymbol::Times: m_t << "×"; break; case DocSymbol::Minus: m_t << "−"; break; case DocSymbol::CenterDot: m_t << "⋅"; break; case DocSymbol::Partial: m_t << "∂"; break; case DocSymbol::Nabla: m_t << "∇"; break; case DocSymbol::SquareRoot: m_t << "√"; break; case DocSymbol::Perpendicular: m_t << "⊥"; break; case DocSymbol::Sum: m_t << "∑"; break; case DocSymbol::Integral: m_t << "∫"; break; case DocSymbol::Product: m_t << "∏"; break; case DocSymbol::Similar: m_t << "∼"; break; case DocSymbol::Approx: m_t << "≈"; break; case DocSymbol::NotEqual: m_t << "≠"; break; case DocSymbol::Equivalent: m_t << "≡"; break; case DocSymbol::Proportional: m_t << "∝"; break; case DocSymbol::LessEqual: m_t << "≤"; break; case DocSymbol::GreaterEqual: m_t << "≥"; break; case DocSymbol::LeftArrow: m_t << "←"; break; case DocSymbol::RightArrow: m_t << "→"; break; case DocSymbol::SetIn: m_t << "∈"; break; case DocSymbol::SetNotIn: m_t << "∉"; break; case DocSymbol::LeftCeil: m_t << "⌈"; break; case DocSymbol::RightCeil: m_t << "⌉"; break; case DocSymbol::LeftFloor: m_t << "⌊"; break; case DocSymbol::RightFloor: m_t << "⌋"; break; default: err("unknown symbol found\n"); } } void TextDocVisitor::filter(const char *str) { if (str==0) return; //printf("TextDocVisitor::filter(%s)\n",str); const char *p=str; char c; while (*p) { c=*p++; switch(c) { case '\n': m_t << " "; break; case '"': m_t << """; break; case '\'': m_t << "'"; break; case '<': m_t << "<"; break; case '>': m_t << ">"; break; case '&': m_t << "&"; break; default: m_t << c; } } }