docs: public static boolean greater(final Object o1, final Object o2, final ASTNode node1, final ASTNode node2)
  	{
  		if (o1 != null && o2 != null)
  		{
  			switch (getBaseType(o1, o2))
  			{
  			// case STRING:
  				case CHAR:
  					return (o1 instanceof Number ? ((Number) o1).intValue() : (int) ((Character) o1).charValue()) > (o2 instanceof Number ? ((Number) o2)
  							.intValue() : (int) ((Character) o2).charValue());
  
  				case SHORT:
  				case INTEGER:
  					return ((Number) o1).intValue() > ((Number) o2).intValue();
  				case LONG:
  					return ((Number) o1).longValue() > ((Number) o2).longValue();
  				case DOUBLE:
  					return ((Number) o1).doubleValue() > ((Number) o2).doubleValue();
  				case FLOAT:
  					return ((Number) o1).floatValue() > ((Number) o2).floatValue();
  				case HS:
  					BigDecimal b1 = getBigDecimal(o1),
  					b2 = getBigDecimal(o2);
  					return b1.compareTo(b2) > 0;
  				default:
  					int result = compareObject(o1, o2, node1, node2, ">");
  					if (result == -2)
  						throw UnsupportedTypeException(o1, o2, node1, node2, ">");
  					else
  						return result > 0;
  			}
  		}
  		else
  		{
  			throw valueIsNullException(o1, o2, node1, node2);
  		}
  	}