package com.drawbridge.jsengine.ast;
import java.util.LinkedList;
import com.drawbridge.jsengine.Scope;
import com.drawbridge.jsengine.jsobjects.JSBoolean;
import com.drawbridge.jsengine.jsobjects.JSType;
import com.drawbridge.vl.blocks.BlockPrimitive;
import com.google.caja.parser.js.BooleanLiteral;
public class BooleanLiteralEvaluator extends Evaluator
{
boolean value;
public BooleanLiteralEvaluator(Evaluator parent, Scope scope, BooleanLiteral bLiteral) {
super(parent, scope, bLiteral.getFilePosition());
value = bLiteral.getValue();
}
@Override
public JSType evaluate() throws EvaluatorException
{
return new JSBoolean(value);
}
@Override
public LinkedList<com.drawbridge.vl.blocks.Block> getBlocks()
{
LinkedList<com.drawbridge.vl.blocks.Block> result = new LinkedList<com.drawbridge.vl.blocks.Block>();
result.add(new BlockPrimitive(getFilePosition(), this, value ? "true" : "false"));
return result;
}
@Override
public boolean compare(Evaluator e)
{
if (!e.getClass().equals(getClass()))
return false;
BooleanLiteralEvaluator ble = (BooleanLiteralEvaluator) e;
if (value == ble.value && e.getFilePosition().equals(getFilePosition()))
return true;
else
return false;
}
}