00001 package edu.ksu.cis.bandera.jjjc.node;
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 import ca.mcgill.sable.util.*;
00037 import edu.ksu.cis.bandera.jjjc.analysis.*;
00038
00039 public final class AOldExpCastExp extends PCastExp
00040 {
00041 private TLPar _lPar_;
00042 private PExp _exp_;
00043 private TRPar _rPar_;
00044 private PUnaryExpNotPlusMinus _unaryExpNotPlusMinus_;
00045
00046 public AOldExpCastExp()
00047 {
00048 }
00049 public AOldExpCastExp(
00050 TLPar _lPar_,
00051 PExp _exp_,
00052 TRPar _rPar_,
00053 PUnaryExpNotPlusMinus _unaryExpNotPlusMinus_)
00054 {
00055 setLPar(_lPar_);
00056
00057 setExp(_exp_);
00058
00059 setRPar(_rPar_);
00060
00061 setUnaryExpNotPlusMinus(_unaryExpNotPlusMinus_);
00062
00063 }
00064 public void apply(Switch sw)
00065 {
00066 ((Analysis) sw).caseAOldExpCastExp(this);
00067 }
00068 public Object clone()
00069 {
00070 return new AOldExpCastExp(
00071 (TLPar) cloneNode(_lPar_),
00072 (PExp) cloneNode(_exp_),
00073 (TRPar) cloneNode(_rPar_),
00074 (PUnaryExpNotPlusMinus) cloneNode(_unaryExpNotPlusMinus_));
00075 }
00076 public PExp getExp()
00077 {
00078 return _exp_;
00079 }
00080 public TLPar getLPar()
00081 {
00082 return _lPar_;
00083 }
00084 public TRPar getRPar()
00085 {
00086 return _rPar_;
00087 }
00088 public PUnaryExpNotPlusMinus getUnaryExpNotPlusMinus()
00089 {
00090 return _unaryExpNotPlusMinus_;
00091 }
00092 void removeChild(Node child)
00093 {
00094 if(_lPar_ == child)
00095 {
00096 _lPar_ = null;
00097 return;
00098 }
00099
00100 if(_exp_ == child)
00101 {
00102 _exp_ = null;
00103 return;
00104 }
00105
00106 if(_rPar_ == child)
00107 {
00108 _rPar_ = null;
00109 return;
00110 }
00111
00112 if(_unaryExpNotPlusMinus_ == child)
00113 {
00114 _unaryExpNotPlusMinus_ = null;
00115 return;
00116 }
00117
00118 }
00119 void replaceChild(Node oldChild, Node newChild)
00120 {
00121 if(_lPar_ == oldChild)
00122 {
00123 setLPar((TLPar) newChild);
00124 return;
00125 }
00126
00127 if(_exp_ == oldChild)
00128 {
00129 setExp((PExp) newChild);
00130 return;
00131 }
00132
00133 if(_rPar_ == oldChild)
00134 {
00135 setRPar((TRPar) newChild);
00136 return;
00137 }
00138
00139 if(_unaryExpNotPlusMinus_ == oldChild)
00140 {
00141 setUnaryExpNotPlusMinus((PUnaryExpNotPlusMinus) newChild);
00142 return;
00143 }
00144
00145 }
00146 public void setExp(PExp node)
00147 {
00148 if(_exp_ != null)
00149 {
00150 _exp_.parent(null);
00151 }
00152
00153 if(node != null)
00154 {
00155 if(node.parent() != null)
00156 {
00157 node.parent().removeChild(node);
00158 }
00159
00160 node.parent(this);
00161 }
00162
00163 _exp_ = node;
00164 }
00165 public void setLPar(TLPar node)
00166 {
00167 if(_lPar_ != null)
00168 {
00169 _lPar_.parent(null);
00170 }
00171
00172 if(node != null)
00173 {
00174 if(node.parent() != null)
00175 {
00176 node.parent().removeChild(node);
00177 }
00178
00179 node.parent(this);
00180 }
00181
00182 _lPar_ = node;
00183 }
00184 public void setRPar(TRPar node)
00185 {
00186 if(_rPar_ != null)
00187 {
00188 _rPar_.parent(null);
00189 }
00190
00191 if(node != null)
00192 {
00193 if(node.parent() != null)
00194 {
00195 node.parent().removeChild(node);
00196 }
00197
00198 node.parent(this);
00199 }
00200
00201 _rPar_ = node;
00202 }
00203 public void setUnaryExpNotPlusMinus(PUnaryExpNotPlusMinus node)
00204 {
00205 if(_unaryExpNotPlusMinus_ != null)
00206 {
00207 _unaryExpNotPlusMinus_.parent(null);
00208 }
00209
00210 if(node != null)
00211 {
00212 if(node.parent() != null)
00213 {
00214 node.parent().removeChild(node);
00215 }
00216
00217 node.parent(this);
00218 }
00219
00220 _unaryExpNotPlusMinus_ = node;
00221 }
00222 public String toString()
00223 {
00224 return ""
00225 + toString(_lPar_)
00226 + toString(_exp_)
00227 + toString(_rPar_)
00228 + toString(_unaryExpNotPlusMinus_);
00229 }
00230 }