AGteExpression.java revision 56ed4167b942ec265f9cee70ac4d71d10b3835ce
13a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org/* This file was generated by SableCC (http://www.sablecc.org/). */
23a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org
33a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgpackage com.google.clearsilver.jsilver.syntax.node;
43a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org
53a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgimport com.google.clearsilver.jsilver.syntax.analysis.*;
63a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org
73a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org@SuppressWarnings("nls")
83a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.orgpublic final class AGteExpression extends PExpression
93a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org{
103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    private PExpression _left_;
113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    private PExpression _right_;
123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org
133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    public AGteExpression()
143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    {
153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org        // Constructor
163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    }
173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org
183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    public AGteExpression(
193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org        @SuppressWarnings("hiding") PExpression _left_,
203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org        @SuppressWarnings("hiding") PExpression _right_)
213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    {
223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org        // Constructor
233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org        setLeft(_left_);
243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org
253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org        setRight(_right_);
263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org
273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    }
283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org
293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    @Override
303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    public Object clone()
31760fd893ba809a7a5daa25c2749ff502f7186e83kbr@chromium.org    {
32760fd893ba809a7a5daa25c2749ff502f7186e83kbr@chromium.org        return new AGteExpression(
33760fd893ba809a7a5daa25c2749ff502f7186e83kbr@chromium.org            cloneNode(this._left_),
34760fd893ba809a7a5daa25c2749ff502f7186e83kbr@chromium.org            cloneNode(this._right_));
35760fd893ba809a7a5daa25c2749ff502f7186e83kbr@chromium.org    }
363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org
373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    public void apply(Switch sw)
383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    {
393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org        ((Analysis) sw).caseAGteExpression(this);
403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    }
413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org
423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    public PExpression getLeft()
433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    {
443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org        return this._left_;
45760fd893ba809a7a5daa25c2749ff502f7186e83kbr@chromium.org    }
46760fd893ba809a7a5daa25c2749ff502f7186e83kbr@chromium.org
473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    public void setLeft(PExpression node)
483a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    {
493a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org        if(this._left_ != null)
503a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org        {
513a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org            this._left_.parent(null);
523a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org        }
533a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org
543a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org        if(node != null)
553a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org        {
563a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org            if(node.parent() != null)
573a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org            {
583a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org                node.parent().removeChild(node);
59760fd893ba809a7a5daa25c2749ff502f7186e83kbr@chromium.org            }
60760fd893ba809a7a5daa25c2749ff502f7186e83kbr@chromium.org
61760fd893ba809a7a5daa25c2749ff502f7186e83kbr@chromium.org            node.parent(this);
62760fd893ba809a7a5daa25c2749ff502f7186e83kbr@chromium.org        }
63760fd893ba809a7a5daa25c2749ff502f7186e83kbr@chromium.org
64760fd893ba809a7a5daa25c2749ff502f7186e83kbr@chromium.org        this._left_ = node;
653a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    }
663a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org
673a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    public PExpression getRight()
683a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org    {
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