Main Page   Packages   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

AWhileStmt.java

00001 package edu.ksu.cis.bandera.jjjc.node;
00002 
00003 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00004  * Bandera, a Java(TM) analysis and transformation toolkit           *
00005  * Copyright (C) 1998-2001 SAnToS Laboratories (santos@cis.ksu.edu)  *
00006 
00007  * All rights reserved.                                              *
00008  *                                                                   *
00009  * This work was done as a project in the SAnToS Laboratory,         *
00010  * Department of Computing and Information Sciences, Kansas State    *
00011  * University, USA (http://www.cis.ksu.edu/santos).                  *
00012  * It is understood that any modification not identified as such is  *
00013  * not covered by the preceding statement.                           *
00014  *                                                                   *
00015  * This work is free software; you can redistribute it and/or        *
00016  * modify it under the terms of the GNU Library General Public       *
00017  * License as published by the Free Software Foundation; either      *
00018  * version 2 of the License, or (at your option) any later version.  *
00019  *                                                                   *
00020  * This work is distributed in the hope that it will be useful,      *
00021  * but WITHOUT ANY WARRANTY; without even the implied warranty of    *
00022  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU *
00023  * Library General Public License for more details.                  *
00024  *                                                                   *
00025  * You should have received a copy of the GNU Library General Public *
00026  * License along with this toolkit; if not, write to the             *
00027  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,      *
00028  * Boston, MA  02111-1307, USA.                                      *
00029  *                                                                   *
00030  * Java is a trademark of Sun Microsystems, Inc.                     *
00031  *                                                                   *
00032  * To submit a bug report, send a comment, or get the latest news on *
00033  * this project and other SAnToS projects, please visit the web-site *
00034  *                http://www.cis.ksu.edu/santos                      *
00035  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
00036 import ca.mcgill.sable.util.*;
00037 import edu.ksu.cis.bandera.jjjc.analysis.*;
00038 
00039 public final class AWhileStmt extends PStmt
00040 {
00041     private TWhile _while_;
00042     private TLPar _lPar_;
00043     private PExp _exp_;
00044     private TRPar _rPar_;
00045     private PBlock _block_;
00046 
00047     public AWhileStmt()
00048     {
00049     }
00050     public AWhileStmt(
00051         TWhile _while_,
00052         TLPar _lPar_,
00053         PExp _exp_,
00054         TRPar _rPar_,
00055         PBlock _block_)
00056     {
00057         setWhile(_while_);
00058 
00059         setLPar(_lPar_);
00060 
00061         setExp(_exp_);
00062 
00063         setRPar(_rPar_);
00064 
00065         setBlock(_block_);
00066 
00067     }
00068     public void apply(Switch sw)
00069     {
00070         ((Analysis) sw).caseAWhileStmt(this);
00071     }
00072     public Object clone()
00073     {
00074         return new AWhileStmt(
00075             (TWhile) cloneNode(_while_),
00076             (TLPar) cloneNode(_lPar_),
00077             (PExp) cloneNode(_exp_),
00078             (TRPar) cloneNode(_rPar_),
00079             (PBlock) cloneNode(_block_));
00080     }
00081     public PBlock getBlock()
00082     {
00083         return _block_;
00084     }
00085     public PExp getExp()
00086     {
00087         return _exp_;
00088     }
00089     public TLPar getLPar()
00090     {
00091         return _lPar_;
00092     }
00093     public TRPar getRPar()
00094     {
00095         return _rPar_;
00096     }
00097     public TWhile getWhile()
00098     {
00099         return _while_;
00100     }
00101     void removeChild(Node child)
00102     {
00103         if(_while_ == child)
00104         {
00105             _while_ = null;
00106             return;
00107         }
00108 
00109         if(_lPar_ == child)
00110         {
00111             _lPar_ = null;
00112             return;
00113         }
00114 
00115         if(_exp_ == child)
00116         {
00117             _exp_ = null;
00118             return;
00119         }
00120 
00121         if(_rPar_ == child)
00122         {
00123             _rPar_ = null;
00124             return;
00125         }
00126 
00127         if(_block_ == child)
00128         {
00129             _block_ = null;
00130             return;
00131         }
00132 
00133     }
00134     void replaceChild(Node oldChild, Node newChild)
00135     {
00136         if(_while_ == oldChild)
00137         {
00138             setWhile((TWhile) newChild);
00139             return;
00140         }
00141 
00142         if(_lPar_ == oldChild)
00143         {
00144             setLPar((TLPar) newChild);
00145             return;
00146         }
00147 
00148         if(_exp_ == oldChild)
00149         {
00150             setExp((PExp) newChild);
00151             return;
00152         }
00153 
00154         if(_rPar_ == oldChild)
00155         {
00156             setRPar((TRPar) newChild);
00157             return;
00158         }
00159 
00160         if(_block_ == oldChild)
00161         {
00162             setBlock((PBlock) newChild);
00163             return;
00164         }
00165 
00166     }
00167     public void setBlock(PBlock node)
00168     {
00169         if(_block_ != null)
00170         {
00171             _block_.parent(null);
00172         }
00173 
00174         if(node != null)
00175         {
00176             if(node.parent() != null)
00177             {
00178                 node.parent().removeChild(node);
00179             }
00180 
00181             node.parent(this);
00182         }
00183 
00184         _block_ = node;
00185     }
00186     public void setExp(PExp node)
00187     {
00188         if(_exp_ != null)
00189         {
00190             _exp_.parent(null);
00191         }
00192 
00193         if(node != null)
00194         {
00195             if(node.parent() != null)
00196             {
00197                 node.parent().removeChild(node);
00198             }
00199 
00200             node.parent(this);
00201         }
00202 
00203         _exp_ = node;
00204     }
00205     public void setLPar(TLPar node)
00206     {
00207         if(_lPar_ != null)
00208         {
00209             _lPar_.parent(null);
00210         }
00211 
00212         if(node != null)
00213         {
00214             if(node.parent() != null)
00215             {
00216                 node.parent().removeChild(node);
00217             }
00218 
00219             node.parent(this);
00220         }
00221 
00222         _lPar_ = node;
00223     }
00224     public void setRPar(TRPar node)
00225     {
00226         if(_rPar_ != null)
00227         {
00228             _rPar_.parent(null);
00229         }
00230 
00231         if(node != null)
00232         {
00233             if(node.parent() != null)
00234             {
00235                 node.parent().removeChild(node);
00236             }
00237 
00238             node.parent(this);
00239         }
00240 
00241         _rPar_ = node;
00242     }
00243     public void setWhile(TWhile node)
00244     {
00245         if(_while_ != null)
00246         {
00247             _while_.parent(null);
00248         }
00249 
00250         if(node != null)
00251         {
00252             if(node.parent() != null)
00253             {
00254                 node.parent().removeChild(node);
00255             }
00256 
00257             node.parent(this);
00258         }
00259 
00260         _while_ = node;
00261     }
00262     public String toString()
00263     {
00264         return ""
00265             + toString(_while_)
00266             + toString(_lPar_)
00267             + toString(_exp_)
00268             + toString(_rPar_)
00269             + toString(_block_);
00270     }
00271 }

Generated at Thu Feb 7 06:40:25 2002 for Bandera by doxygen1.2.10 written by Dimitri van Heesch, © 1997-2001