156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson/* This file was generated by SableCC (http://www.sablecc.org/). */ 256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodsonpackage com.google.clearsilver.jsilver.syntax.node; 456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodsonimport com.google.clearsilver.jsilver.syntax.analysis.*; 656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson@SuppressWarnings("nls") 856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodsonpublic final class ASetCommand extends PCommand 956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson{ 1056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson private PPosition _position_; 1156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson private PVariable _variable_; 1256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson private PExpression _expression_; 1356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 1456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public ASetCommand() 1556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 1656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson // Constructor 1756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 1856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 1956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public ASetCommand( 2056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson @SuppressWarnings("hiding") PPosition _position_, 2156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson @SuppressWarnings("hiding") PVariable _variable_, 2256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson @SuppressWarnings("hiding") PExpression _expression_) 2356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 2456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson // Constructor 2556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson setPosition(_position_); 2656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 2756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson setVariable(_variable_); 2856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 2956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson setExpression(_expression_); 3056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 3156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 3256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 3356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson @Override 3456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public Object clone() 3556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 3656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return new ASetCommand( 3756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson cloneNode(this._position_), 3856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson cloneNode(this._variable_), 3956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson cloneNode(this._expression_)); 4056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 4156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 4256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public void apply(Switch sw) 4356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 4456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson ((Analysis) sw).caseASetCommand(this); 4556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 4656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 4756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public PPosition getPosition() 4856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 4956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return this._position_; 5056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 5156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 5256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public void setPosition(PPosition node) 5356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 5456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._position_ != null) 5556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 5656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._position_.parent(null); 5756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 5856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 5956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(node != null) 6056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 6156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(node.parent() != null) 6256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 6356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson node.parent().removeChild(node); 6456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 6556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 6656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson node.parent(this); 6756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 6856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 6956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._position_ = node; 7056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 7156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 7256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public PVariable getVariable() 7356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 7456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return this._variable_; 7556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 7656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 7756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public void setVariable(PVariable node) 7856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 7956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._variable_ != null) 8056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 8156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._variable_.parent(null); 8256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 8356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 8456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(node != null) 8556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 8656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(node.parent() != null) 8756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 8856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson node.parent().removeChild(node); 8956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 9056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 9156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson node.parent(this); 9256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 9356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 9456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._variable_ = node; 9556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 9656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 9756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public PExpression getExpression() 9856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 9956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return this._expression_; 10056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 10156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 10256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public void setExpression(PExpression node) 10356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 10456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._expression_ != null) 10556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 10656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._expression_.parent(null); 10756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 10856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 10956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(node != null) 11056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 11156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(node.parent() != null) 11256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 11356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson node.parent().removeChild(node); 11456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 11556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 11656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson node.parent(this); 11756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 11856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 11956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._expression_ = node; 12056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 12156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 12256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson @Override 12356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public String toString() 12456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 12556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return "" 12656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson + toString(this._position_) 12756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson + toString(this._variable_) 12856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson + toString(this._expression_); 12956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 13056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 13156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson @Override 13256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson void removeChild(@SuppressWarnings("unused") Node child) 13356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 13456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson // Remove child 13556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._position_ == child) 13656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 13756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._position_ = null; 13856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return; 13956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 14056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 14156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._variable_ == child) 14256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 14356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._variable_ = null; 14456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return; 14556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 14656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 14756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._expression_ == child) 14856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 14956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._expression_ = null; 15056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return; 15156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 15256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 15356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson throw new RuntimeException("Not a child."); 15456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 15556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 15656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson @Override 15756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson void replaceChild(@SuppressWarnings("unused") Node oldChild, @SuppressWarnings("unused") Node newChild) 15856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 15956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson // Replace child 16056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._position_ == oldChild) 16156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 16256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson setPosition((PPosition) newChild); 16356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return; 16456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 16556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 16656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._variable_ == oldChild) 16756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 16856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson setVariable((PVariable) newChild); 16956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return; 17056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 17156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 17256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._expression_ == oldChild) 17356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 17456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson setExpression((PExpression) newChild); 17556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return; 17656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 17756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 17856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson throw new RuntimeException("Not a child."); 17956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 18056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson} 181