01: /* ====================================================================
02: * Tea - Copyright (c) 1997-2000 Walt Disney Internet Group
03: * ====================================================================
04: * The Tea Software License, Version 1.1
05: *
06: * Copyright (c) 2000 Walt Disney Internet Group. All rights reserved.
07: *
08: * Redistribution and use in source and binary forms, with or without
09: * modification, are permitted provided that the following conditions
10: * are met:
11: *
12: * 1. Redistributions of source code must retain the above copyright
13: * notice, this list of conditions and the following disclaimer.
14: *
15: * 2. Redistributions in binary form must reproduce the above copyright
16: * notice, this list of conditions and the following disclaimer in
17: * the documentation and/or other materials provided with the
18: * distribution.
19: *
20: * 3. The end-user documentation included with the redistribution,
21: * if any, must include the following acknowledgment:
22: * "This product includes software developed by the
23: * Walt Disney Internet Group (http://opensource.go.com/)."
24: * Alternately, this acknowledgment may appear in the software itself,
25: * if and wherever such third-party acknowledgments normally appear.
26: *
27: * 4. The names "Tea", "TeaServlet", "Kettle", "Trove" and "BeanDoc" must
28: * not be used to endorse or promote products derived from this
29: * software without prior written permission. For written
30: * permission, please contact opensource@dig.com.
31: *
32: * 5. Products derived from this software may not be called "Tea",
33: * "TeaServlet", "Kettle" or "Trove", nor may "Tea", "TeaServlet",
34: * "Kettle", "Trove" or "BeanDoc" appear in their name, without prior
35: * written permission of the Walt Disney Internet Group.
36: *
37: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
38: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
39: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40: * DISCLAIMED. IN NO EVENT SHALL THE WALT DISNEY INTERNET GROUP OR ITS
41: * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
42: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
43: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
44: * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
45: * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
46: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
47: * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
48: * ====================================================================
49: *
50: * For more information about Tea, please see http://opensource.go.com/.
51: */
52: package com.go.tea.parsetree;
53:
54: import com.go.tea.compiler.SourceInfo;
55:
56: /******************************************************************************
57: * AssignmentStatements can only assign values to variables, and not to
58: * array elements. AssignmentStatements are not expressions as they are in
59: * C or Java, and thus chaining is not allowed. i.e. a = b = c;
60: *
61: * @author Brian S O'Neill
62: * @version
63: * <!--$$Revision:--> 23 <!-- $-->, <!--$$JustDate:--> 9/07/00 <!-- $-->
64: */
65: public class AssignmentStatement extends Statement {
66: private VariableRef mLvalue;
67: private Expression mRvalue;
68:
69: public AssignmentStatement(SourceInfo info, VariableRef lvalue,
70: Expression rvalue) {
71: super (info);
72:
73: mLvalue = lvalue;
74: mRvalue = rvalue;
75: }
76:
77: public Object accept(NodeVisitor visitor) {
78: return visitor.visit(this );
79: }
80:
81: public Object clone() {
82: AssignmentStatement as = (AssignmentStatement) super .clone();
83: as.mLvalue = (VariableRef) mLvalue.clone();
84: as.mRvalue = (Expression) mRvalue.clone();
85: return as;
86: }
87:
88: public VariableRef getLValue() {
89: return mLvalue;
90: }
91:
92: public Expression getRValue() {
93: return mRvalue;
94: }
95:
96: public void setRValue(Expression rvalue) {
97: mRvalue = rvalue;
98: }
99: }
|