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 AExistsExpression extends PExpression
956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson{
1056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    private PExpression _expression_;
1156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
1256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    public AExistsExpression()
1356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
1456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        // Constructor
1556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
1656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
1756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    public AExistsExpression(
1856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        @SuppressWarnings("hiding") PExpression _expression_)
1956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
2056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        // Constructor
2156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        setExpression(_expression_);
2256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
2356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
2456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
2556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    @Override
2656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    public Object clone()
2756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
2856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        return new AExistsExpression(
2956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            cloneNode(this._expression_));
3056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
3156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
3256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    public void apply(Switch sw)
3356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
3456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        ((Analysis) sw).caseAExistsExpression(this);
3556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
3656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
3756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    public PExpression getExpression()
3856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
3956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        return this._expression_;
4056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
4156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
4256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    public void setExpression(PExpression node)
4356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
4456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        if(this._expression_ != null)
4556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        {
4656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            this._expression_.parent(null);
4756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        }
4856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
4956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        if(node != null)
5056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        {
5156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            if(node.parent() != null)
5256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            {
5356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson                node.parent().removeChild(node);
5456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            }
5556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
5656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            node.parent(this);
5756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        }
5856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
5956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        this._expression_ = node;
6056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
6156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
6256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    @Override
6356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    public String toString()
6456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
6556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        return ""
6656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            + toString(this._expression_);
6756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
6856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
6956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    @Override
7056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    void removeChild(@SuppressWarnings("unused") Node child)
7156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
7256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        // Remove child
7356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        if(this._expression_ == child)
7456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        {
7556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            this._expression_ = null;
7656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            return;
7756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        }
7856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
7956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        throw new RuntimeException("Not a child.");
8056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
8156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
8256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    @Override
8356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    void replaceChild(@SuppressWarnings("unused") Node oldChild, @SuppressWarnings("unused") Node newChild)
8456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    {
8556ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        // Replace child
8656ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        if(this._expression_ == oldChild)
8756ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        {
8856ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            setExpression((PExpression) newChild);
8956ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson            return;
9056ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        }
9156ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson
9256ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson        throw new RuntimeException("Not a child.");
9356ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson    }
9456ed4167b942ec265f9cee70ac4d71d10b3835ceBen Dodson}
95