/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.internal.gosu.ir.transform.expression;
import gw.internal.gosu.parser.expressions.BooleanLiteral;
import gw.internal.gosu.ir.transform.TopLevelTransformationContext;
import gw.lang.ir.IRExpression;
import gw.lang.reflect.java.IJavaType;
import gw.lang.reflect.java.JavaTypes;
import gw.lang.reflect.java.JavaTypes;
/**
*/
public class BooleanLiteralTransformer extends AbstractExpressionTransformer<BooleanLiteral>
{
public static IRExpression compile( TopLevelTransformationContext cc, BooleanLiteral expr )
{
BooleanLiteralTransformer gen = new BooleanLiteralTransformer( cc, expr );
return gen.compile();
}
private BooleanLiteralTransformer( TopLevelTransformationContext cc, BooleanLiteral expr )
{
super( cc, expr );
}
protected IRExpression compile_impl()
{
IRExpression expression = pushConstant( _expr().getValue() );
if( !_expr().getType().isPrimitive() )
{
expression = boxValue( JavaTypes.pBOOLEAN(), expression );
}
return expression;
}
}