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