package com.drawbridge.jsengine.ast;
import java.util.LinkedList;
import com.drawbridge.jsengine.Scope;
import com.drawbridge.jsengine.jsobjects.ExecutionException;
import com.drawbridge.jsengine.jsobjects.JSType;
import com.google.caja.parser.js.Expression;
import com.google.caja.parser.js.ExpressionStmt;
public class ExpressionStmtEvaluator extends Evaluator
{
Expression expression;
/**
* Contains only an expression as it's child
*
* @param parser
* @param expressionStmt
*/
public ExpressionStmtEvaluator(Evaluator parent, Scope scope, ExpressionStmt expressionStmt) {
super(parent, scope, expressionStmt.getFilePosition());
expression = expressionStmt.getExpression();
mChildren.add(Evaluator.getEvaluator(this, mScope, (Expression) expression));
}
@Override
public JSType evaluate() throws EvaluatorException, ExecutionException
{
return mChildren.get(0).evaluate();
}
@Override
public LinkedList<com.drawbridge.vl.blocks.Block> getBlocks()
{
if (mChildren.size() > 0 && mChildren.get(0) != null)
return mChildren.get(0).getBlocks();
else
return new LinkedList<com.drawbridge.vl.blocks.Block>();
}
@Override
public boolean compare(Evaluator e)
{
// TODO Auto-generated method stub
return false;
}
}