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 AEachCommand extends PCommand 956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson{ 1056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson private PPosition _position_; 1156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson private PVariable _variable_; 1256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson private PExpression _expression_; 1356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson private PCommand _command_; 1456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 1556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public AEachCommand() 1656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 1756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson // Constructor 1856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 1956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 2056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public AEachCommand( 2156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson @SuppressWarnings("hiding") PPosition _position_, 2256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson @SuppressWarnings("hiding") PVariable _variable_, 2356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson @SuppressWarnings("hiding") PExpression _expression_, 2456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson @SuppressWarnings("hiding") PCommand _command_) 2556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 2656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson // Constructor 2756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson setPosition(_position_); 2856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 2956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson setVariable(_variable_); 3056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 3156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson setExpression(_expression_); 3256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 3356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson setCommand(_command_); 3456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 3556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 3656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 3756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson @Override 3856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public Object clone() 3956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 4056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return new AEachCommand( 4156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson cloneNode(this._position_), 4256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson cloneNode(this._variable_), 4356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson cloneNode(this._expression_), 4456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson cloneNode(this._command_)); 4556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 4656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 4756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public void apply(Switch sw) 4856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 4956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson ((Analysis) sw).caseAEachCommand(this); 5056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 5156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 5256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public PPosition getPosition() 5356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 5456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return this._position_; 5556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 5656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 5756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public void setPosition(PPosition node) 5856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 5956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._position_ != null) 6056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 6156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._position_.parent(null); 6256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 6356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 6456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(node != null) 6556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 6656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(node.parent() != null) 6756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 6856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson node.parent().removeChild(node); 6956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 7056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 7156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson node.parent(this); 7256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 7356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 7456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._position_ = node; 7556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 7656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 7756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public PVariable getVariable() 7856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 7956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return this._variable_; 8056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 8156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 8256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public void setVariable(PVariable node) 8356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 8456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._variable_ != null) 8556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 8656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._variable_.parent(null); 8756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 8856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 8956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(node != null) 9056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 9156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(node.parent() != null) 9256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 9356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson node.parent().removeChild(node); 9456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 9556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 9656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson node.parent(this); 9756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 9856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 9956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._variable_ = node; 10056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 10156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 10256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public PExpression getExpression() 10356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 10456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return this._expression_; 10556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 10656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 10756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public void setExpression(PExpression node) 10856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 10956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._expression_ != null) 11056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 11156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._expression_.parent(null); 11256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 11356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 11456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(node != null) 11556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 11656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(node.parent() != null) 11756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 11856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson node.parent().removeChild(node); 11956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 12056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 12156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson node.parent(this); 12256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 12356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 12456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._expression_ = node; 12556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 12656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 12756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public PCommand getCommand() 12856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 12956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return this._command_; 13056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 13156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 13256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public void setCommand(PCommand node) 13356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 13456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._command_ != null) 13556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 13656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._command_.parent(null); 13756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 13856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 13956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(node != null) 14056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 14156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(node.parent() != null) 14256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 14356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson node.parent().removeChild(node); 14456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 14556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 14656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson node.parent(this); 14756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 14856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 14956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._command_ = node; 15056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 15156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 15256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson @Override 15356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson public String toString() 15456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 15556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return "" 15656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson + toString(this._position_) 15756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson + toString(this._variable_) 15856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson + toString(this._expression_) 15956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson + toString(this._command_); 16056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 16156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 16256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson @Override 16356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson void removeChild(@SuppressWarnings("unused") Node child) 16456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 16556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson // Remove child 16656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._position_ == child) 16756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 16856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._position_ = null; 16956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return; 17056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 17156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 17256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._variable_ == child) 17356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 17456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._variable_ = null; 17556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return; 17656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 17756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 17856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._expression_ == child) 17956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 18056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._expression_ = null; 18156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return; 18256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 18356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 18456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._command_ == child) 18556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 18656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson this._command_ = null; 18756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return; 18856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 18956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 19056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson throw new RuntimeException("Not a child."); 19156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 19256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 19356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson @Override 19456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson void replaceChild(@SuppressWarnings("unused") Node oldChild, @SuppressWarnings("unused") Node newChild) 19556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 19656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson // Replace child 19756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._position_ == oldChild) 19856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 19956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson setPosition((PPosition) newChild); 20056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return; 20156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 20256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 20356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._variable_ == oldChild) 20456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 20556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson setVariable((PVariable) newChild); 20656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return; 20756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 20856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 20956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._expression_ == oldChild) 21056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 21156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson setExpression((PExpression) newChild); 21256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return; 21356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 21456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 21556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson if(this._command_ == oldChild) 21656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson { 21756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson setCommand((PCommand) newChild); 21856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson return; 21956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 22056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson 22156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson throw new RuntimeException("Not a child."); 22256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson } 22356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson} 224