Index: ASTAssignment.java =================================================================== RCS file: /home/cvspublic/jakarta-commons/jexl/src/java/org/apache/commons/jexl/parser/ASTAssignment.java,v retrieving revision 1.1 diff -u -r1.1 ASTAssignment.java --- ASTAssignment.java 26 Apr 2002 04:23:14 -0000 1.1 +++ ASTAssignment.java 4 Nov 2004 08:04:50 -0000 @@ -2,7 +2,11 @@ package org.apache.commons.jexl.parser; +import org.apache.commons.jexl.JexlContext; + + public class ASTAssignment extends SimpleNode { + public ASTAssignment(int id) { super(id); } @@ -15,5 +19,19 @@ /** Accept the visitor. **/ public Object jjtAccept(ParserVisitor visitor, Object data) { return visitor.visit(this, data); + } + + public Object value(JexlContext context) throws Exception { + SimpleNode left = (SimpleNode)jjtGetChild(0); + Object right = ((SimpleNode) jjtGetChild(1)).value(context); + if (left instanceof ASTReference) { + ASTReference reference = (ASTReference)left; + left = (SimpleNode)reference.jjtGetChild(0); + if (left instanceof ASTIdentifier) { + String identifier = ((ASTIdentifier)left).getIdentifierString(); + context.getVars().put(identifier,right); + } + } + return right; } } Index: ASTReferenceExpression.java =================================================================== RCS file: /home/cvspublic/jakarta-commons/jexl/src/java/org/apache/commons/jexl/parser/ASTReferenceExpression.java,v retrieving revision 1.1 diff -u -r1.1 ASTReferenceExpression.java --- ASTReferenceExpression.java 26 Apr 2002 04:23:14 -0000 1.1 +++ ASTReferenceExpression.java 4 Nov 2004 08:04:50 -0000 @@ -2,6 +2,8 @@ package org.apache.commons.jexl.parser; +import org.apache.commons.jexl.JexlContext; + public class ASTReferenceExpression extends SimpleNode { public ASTReferenceExpression(int id) { super(id); @@ -16,4 +18,11 @@ public Object jjtAccept(ParserVisitor visitor, Object data) { return visitor.visit(this, data); } + + public Object value(JexlContext context) + throws Exception + { + return ((SimpleNode) jjtGetChild(0)).value(context); + } + } Index: ASTStatementExpression.java =================================================================== RCS file: /home/cvspublic/jakarta-commons/jexl/src/java/org/apache/commons/jexl/parser/ASTStatementExpression.java,v retrieving revision 1.1 diff -u -r1.1 ASTStatementExpression.java --- ASTStatementExpression.java 26 Apr 2002 04:23:14 -0000 1.1 +++ ASTStatementExpression.java 4 Nov 2004 08:04:50 -0000 @@ -2,6 +2,8 @@ package org.apache.commons.jexl.parser; +import org.apache.commons.jexl.JexlContext; + public class ASTStatementExpression extends SimpleNode { public ASTStatementExpression(int id) { super(id); @@ -16,4 +18,10 @@ public Object jjtAccept(ParserVisitor visitor, Object data) { return visitor.visit(this, data); } + + public Object value(JexlContext context) + throws Exception { + return ((SimpleNode) jjtGetChild(0)).value(context); + } + }