ASubtractExpression.java revision 56ed4167b942ec265f9cee70ac4d71d10b3835ce
1e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat/* This file was generated by SableCC (http://www.sablecc.org/). */
2e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
3e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehatpackage com.google.clearsilver.jsilver.syntax.node;
4e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
5e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehatimport com.google.clearsilver.jsilver.syntax.analysis.*;
6e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
7e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat@SuppressWarnings("nls")
8e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehatpublic final class ASubtractExpression extends PExpression
9e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat{
10e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    private PExpression _left_;
11e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    private PExpression _right_;
12e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
13e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    public ASubtractExpression()
14e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    {
15e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        // Constructor
16e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    }
17e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
18e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    public ASubtractExpression(
19e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        @SuppressWarnings("hiding") PExpression _left_,
20e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        @SuppressWarnings("hiding") PExpression _right_)
21e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    {
22e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        // Constructor
23e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        setLeft(_left_);
24e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
25e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        setRight(_right_);
26e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
27e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    }
28e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
29e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    @Override
30e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    public Object clone()
31e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    {
32e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        return new ASubtractExpression(
33e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            cloneNode(this._left_),
34e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            cloneNode(this._right_));
35e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    }
36e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
37e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    public void apply(Switch sw)
38e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    {
39e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        ((Analysis) sw).caseASubtractExpression(this);
40e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    }
41e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
42e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    public PExpression getLeft()
43e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    {
44e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        return this._left_;
45e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    }
46e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
47e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    public void setLeft(PExpression node)
48e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    {
49e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        if(this._left_ != null)
50e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        {
51e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            this._left_.parent(null);
52e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        }
53e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
54e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        if(node != null)
55e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        {
56e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            if(node.parent() != null)
57e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            {
58e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat                node.parent().removeChild(node);
59e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            }
60e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
61e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            node.parent(this);
62e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        }
63e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
64e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        this._left_ = node;
65e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    }
66e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
67e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    public PExpression getRight()
68e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    {
69e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        return this._right_;
70e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    }
71e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
72e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    public void setRight(PExpression node)
73e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    {
74e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        if(this._right_ != null)
75e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        {
76e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            this._right_.parent(null);
77e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        }
78e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
79e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        if(node != null)
80e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        {
81e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            if(node.parent() != null)
82e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            {
83e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat                node.parent().removeChild(node);
84e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            }
85e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
86e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            node.parent(this);
87e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        }
88e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
89e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        this._right_ = node;
90e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    }
91e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
92e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    @Override
93e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    public String toString()
94e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    {
95e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        return ""
96e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            + toString(this._left_)
97e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            + toString(this._right_);
98e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    }
99e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
100e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    @Override
101e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    void removeChild(@SuppressWarnings("unused") Node child)
102e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    {
103e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        // Remove child
104e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        if(this._left_ == child)
105e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        {
106e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            this._left_ = null;
107e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            return;
108e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        }
109e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
110e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        if(this._right_ == child)
111e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        {
112e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            this._right_ = null;
113e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            return;
114e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        }
115e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
116e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        throw new RuntimeException("Not a child.");
117e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    }
118e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
119e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    @Override
120e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    void replaceChild(@SuppressWarnings("unused") Node oldChild, @SuppressWarnings("unused") Node newChild)
121e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    {
122e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        // Replace child
123e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        if(this._left_ == oldChild)
124e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        {
125e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            setLeft((PExpression) newChild);
126e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            return;
127e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        }
128e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
129e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        if(this._right_ == oldChild)
130e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        {
131e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            setRight((PExpression) newChild);
132e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat            return;
133e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        }
134e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat
135e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat        throw new RuntimeException("Not a child.");
136e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat    }
137e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat}
138e20e1347b9914aa05e30548c15d7cd5e412cc0e2San Mehat