/* * The JabaJaba class library * Copyright (C) 1997-2003 ASAMI, Tomoharu (asami@XMLSmartDoc.org) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ package org.xmlsmartdoc.SmartDoc.mathml; import java.util.ArrayList; import java.util.List; import java.util.Stack; import org.xmlsmartdoc.SmartDoc.mathml.*; import org.xmlsmartdoc.SmartDoc.mathml.rParts.*; /** * LaTeXMaker * * @since Sep. 2, 2000 * @version Oct. 17, 2003 * @author ASAMI, Tomoharu (asami@XMLSmartDoc.org) */ public class LaTeXMaker implements IRVisitor, IMathMLConstants { private List list_; private Stack stack_ = new Stack(); public String getText() { StringBuffer buffer = new StringBuffer(); int size = list_.size(); for (int i = 0;i < size;i++) { buffer.append(list_.get(i).toString()); } return (new String(buffer)); } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMath visitable) { list_ = new ArrayList(); } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMath visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMi visitable) { _append(visitable.getPcdataAsString()); } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMi visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMalignmark visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMalignmark visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMn visitable) { _append(visitable.getPcdataAsString()); } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMn visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMo visitable) { _append(visitable.getPcdataAsString()); } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMo visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMtext visitable) { _append("\\textrm{"); _append(visitable.getPcdataAsString()); _append("}"); } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMtext visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMs visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMs visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMspace visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMspace visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMrow visitable) { _push(); } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMrow visitable) { _append(_pop()); } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMprescripts visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMprescripts visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MNone visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MNone visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMfrac visitable) { _push(); } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMfrac visitable) { List list = _pop(); _append("\\frac{"); _append(list.get(0)); _append("}{"); _append(list.get(1)); _append("}"); } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMsqrt visitable) { _push(); } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMsqrt visitable) { List list = _pop(); _append("\\sqrt"); if (false) { _append("["); _append("]"); } _append("{"); _append(list.get(0)); _append("}"); } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMroot visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMroot visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMstyle visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMstyle visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMerror visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMerror visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMpadded visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMpadded visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMphantom visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMphantom visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMfenced visitable) { _push(); _append("("); } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMfenced visitable) { _append(")"); _append(_pop()); } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMsub visitable) { _push(); } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMsub visitable) { List list = _pop(); _append(list.get(0)); _append("_{"); _append(list.get(1)); _append("}"); } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMsup visitable) { _push(); } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMsup visitable) { List list = _pop(); _append(list.get(0)); _append("^{"); _append(list.get(1)); _append("}"); } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMsubsup visitable) { _push(); } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMsubsup visitable) { List list = _pop(); _append(list.get(0)); _append("_{"); _append(list.get(1)); _append("}^{"); _append(list.get(2)); _append("}"); } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMunder visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMunder visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMover visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMover visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMunderover visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMunderover visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMmultiscripts visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMmultiscripts visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMtable visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMtable visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMtr visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMtr visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMtd visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMtd visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMaligngroup visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMaligngroup visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMaction visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMaction visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MCi visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MCi visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MCn visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MCn visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MSep visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MSep visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MApply visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MApply visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MReln visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MReln visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MLambda visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MLambda visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MCondition visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MCondition visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MDeclare visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MDeclare visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MSemantics visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MSemantics visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MAnnotation visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MAnnotation visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MAnnotationXml visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MAnnotationXml visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MInterval visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MInterval visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MList visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MList visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMatrix visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMatrix visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMatrixrow visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMatrixrow visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MSet visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MSet visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MVector visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MVector visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MLowlimit visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MLowlimit visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MUplimit visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MUplimit visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MBvar visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MBvar visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MDegree visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MDegree visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MLogbase visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MLogbase visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MInverse visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MInverse visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MIdent visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MIdent visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MAbs visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MAbs visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MConjugate visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MConjugate visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MExp visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MExp visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MFactorial visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MFactorial visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MNot visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MNot visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MLn visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MLn visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MSin visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MSin visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MCos visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MCos visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MTan visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MTan visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MSec visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MSec visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MCsc visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MCsc visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MCot visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MCot visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MSinh visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MSinh visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MCosh visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MCosh visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MTanh visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MTanh visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MSech visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MSech visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MCsch visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MCsch visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MCoth visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MCoth visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MArcsin visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MArcsin visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MArccos visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MArccos visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MArctan visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MArctan visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MDeterminant visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MDeterminant visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MTranspose visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MTranspose visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MQuotient visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MQuotient visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MDivide visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MDivide visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MPower visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MPower visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MRem visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MRem visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MImplies visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MImplies visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MSetdiff visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MSetdiff visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MFn visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MFn visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MCompose visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MCompose visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MPlus visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MPlus visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MTimes visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MTimes visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMax visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMax visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMin visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMin visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MGcd visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MGcd visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MAnd visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MAnd visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MOr visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MOr visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MXor visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MXor visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MUnion visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MUnion visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MIntersect visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MIntersect visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMean visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMean visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MSdev visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MSdev visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MVariance visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MVariance visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMedian visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMedian visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMode visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMode visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MSelector visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MSelector visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MRoot visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MRoot visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMinus visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMinus visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MLog visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MLog visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MInt visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MInt visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MDiff visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MDiff visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MPartialdiff visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MPartialdiff visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MSum visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MSum visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MProduct visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MProduct visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MLimit visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MLimit visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MMoment visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MMoment visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MExists visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MExists visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MForall visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MForall visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MNeq visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MNeq visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MIn visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MIn visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MNotin visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MNotin visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MNotsubset visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MNotsubset visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MNotprsubset visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MNotprsubset visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MTendsto visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MTendsto visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MEq visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MEq visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MLeq visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MLeq visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MLt visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MLt visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MGeq visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MGeq visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MGt visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MGt visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MSubset visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MSubset visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(MPrsubset visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(MPrsubset visitable) { } /** * Visits this node for enter behavior. * * @param visitable */ public void enter(RString visitable) { } /** * Visits this node for leave behavior. * * @param visitable */ public void leave(RString visitable) { } private List _pop() { List result = list_; list_ = (List)stack_.pop(); return (result); } private void _push() { stack_.push(list_); list_ = new ArrayList(); } private void _append(Object object) { _append(object.toString()); } private void _append(List list) { StringBuffer buffer = new StringBuffer(); int size = list.size(); for (int i = 0;i < size;i++) { buffer.append(list.get(i).toString()); } _append(new String(buffer)); } private void _append(String text) { list_.add(_escape(text)); } private String _escape(String text) { StringBuffer buffer = new StringBuffer(); char[] chars = text.toCharArray(); for (int i = 0;i < chars.length;i++) { char c = chars[i]; switch (c) { case MATH_PLUS_MINUS: buffer.append("{\\pm}"); break; case MATH_INTEGRAL: buffer.append("\\int"); break; case MATH_SUM: buffer.append("\\sum"); break; case MATH_DIFFERENTIAL_D: buffer.append("d"); break; case MATH_INVISIBLE_TIMES: // do nothing break; default: buffer.append(c); } } return (new String(buffer)); } }