1 2 3 package org.sablecc.sablecc.syntax3.node; 4 5 import java.util.*; 6 import org.sablecc.sablecc.syntax3.analysis.*; 7 8 @SuppressWarnings ("nls") 9 public final class ASelection extends PSelection 10 { 11 private final LinkedList<TIdentifier> _names_ = new LinkedList<TIdentifier>(); 12 13 public ASelection() 14 { 15 } 17 18 public ASelection( 19 @SuppressWarnings ("hiding") List<TIdentifier> _names_) 20 { 21 setNames(_names_); 23 24 } 25 26 @Override 27 public Object clone() 28 { 29 return new ASelection( 30 cloneList(this._names_)); 31 } 32 33 public void apply(Switch sw) 34 { 35 ((Analysis) sw).caseASelection(this); 36 } 37 38 public LinkedList<TIdentifier> getNames() 39 { 40 return this._names_; 41 } 42 43 public void setNames(List<TIdentifier> list) 44 { 45 this._names_.clear(); 46 this._names_.addAll(list); 47 for(TIdentifier e : list) 48 { 49 if(e.parent() != null) 50 { 51 e.parent().removeChild(e); 52 } 53 54 e.parent(this); 55 } 56 } 57 58 @Override 59 public String toString() 60 { 61 return "" 62 + toString(this._names_); 63 } 64 65 @Override 66 void removeChild(@SuppressWarnings ("unused") Node child) 67 { 68 if(this._names_.remove(child)) 70 { 71 return; 72 } 73 74 throw new RuntimeException ("Not a child."); 75 } 76 77 @Override 78 void replaceChild(@SuppressWarnings ("unused") Node oldChild, @SuppressWarnings ("unused") Node newChild) 79 { 80 for(ListIterator<TIdentifier> i = this._names_.listIterator(); i.hasNext();) 82 { 83 if(i.next() == oldChild) 84 { 85 if(newChild != null) 86 { 87 i.set((TIdentifier) newChild); 88 newChild.parent(this); 89 oldChild.parent(null); 90 return; 91 } 92 93 i.remove(); 94 oldChild.parent(null); 95 return; 96 } 97 } 98 99 throw new RuntimeException ("Not a child."); 100 } 101 } 102 | Popular Tags |