/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.internal.gosu.parser.expressions;
import gw.lang.parser.GosuParserTypes;
import gw.lang.parser.expressions.ICharLiteralExpression;
/**
* Represents a String literal expression as defined in the Gosu grammar.
*
* @see gw.lang.parser.IGosuParser
*/
public final class CharLiteral extends Literal implements ICharLiteralExpression
{
protected Character _char;
public CharLiteral( char c )
{
_char = c;
setType( GosuParserTypes.CHAR_TYPE() );
}
public Character getValue()
{
return _char;
}
public boolean isCompileTimeConstant()
{
return true;
}
public Object evaluate()
{
return _char;
}
@Override
public String toString()
{
return "\'" + escapeQuotes() + "\'";
}
private String escapeQuotes()
{
if( _char == '\'' )
{
return "\\\'";
}
return _char.toString();
}
}