throws ESException
{
if (! (left instanceof LiteralExpr) || ! (right instanceof LiteralExpr))
return new BooleanBinaryExpr(block, left, right, op);
ESBase lvalue = ((LiteralExpr) left).getLiteral();
ESBase rvalue = ((LiteralExpr) right).getLiteral();
boolean value;
try {
switch (op) {
case '<':
value = lvalue.lessThan(rvalue, false);
break;
case '>':
value = rvalue.lessThan(lvalue, false);
break;
case Lexer.LEQ:
value = rvalue.lessThan(lvalue, true);
break;
case Lexer.GEQ:
value = lvalue.lessThan(rvalue, true);
break;