Beispiel #1
0
etype_t
low_level_type (type_t *type)
{
	if (type->type >= ev_type_count)
		internal_error (0, "invalid type");
	if (type->type == ev_type_count)
		internal_error (0, "found 'type count' type");
	if (type->type < ev_invalid)
		return type->type;
	if (is_enum (type))
		return type_default->type;
	if (is_struct (type))
		return ev_void;
	if (is_array (type))
		return ev_void;
	internal_error (0, "invalid complex type");
}
Beispiel #2
0
gboolean 
TranslateEdgeStyleName (gchar * str, gint *retval)
{
#define is_enum(XX)  (g_ascii_strncasecmp(str, XX, strlen(XX))==0)
  if (is_enum("none"))
    *retval = NO_EDGE;
  else if (is_enum("line") || is_enum("normal") || is_enum("default") || is_enum("standard"))
    *retval = LINE_EDGE;
  else if (is_enum("gradient"))
    *retval = GRADIENT_EDGE;
  else if (is_enum("xpm"))
    *retval = XPM_EDGE;
  else
    return FALSE; 

  return TRUE;
}
Beispiel #3
0
etype_t
low_level_type (type_t *type)
{
	if (type->type >= ev_type_count)
		internal_error (0, "invalid type");
	if (type->type == ev_type_count)
		internal_error (0, "found 'type count' type");
	if (type->type < ev_invalid)
		return type->type;
	if (is_enum (type))
		return type_default->type;
	if (is_struct (type)) {
		//FIXME does this break anything?
		//maybe the peephole optimizer should do this sort of thing.
		if (type_size (type) == 1)
			return ev_integer;
		return ev_void;
	}
	if (is_array (type))
		return ev_void;
	internal_error (0, "invalid complex type");
}
Beispiel #4
0
gboolean 
TranslateCheckStyleName (gchar * str, gint *retval)
{
#define is_enum(XX)  (g_ascii_strncasecmp(str, XX, strlen(XX))==0)
  if (is_enum("none"))
    *retval = NO_CHECK;
  else if (is_enum("fast"))
    *retval = FAST_CHECK;
  else if (is_enum("sloppy"))
    *retval = SLOPPY_CHECK;
  else if (is_enum("clean"))
    *retval = CLEAN_CHECK;
  else if (is_enum("criss_cross") || is_enum("criss-cross") || is_enum("crisscross") || is_enum("x"))
    *retval = X_CHECK;
  else if (is_enum("block") || is_enum("square") || is_enum("box"))
    *retval = BLOCK_CHECK;
  else if (is_enum("circle") || is_enum("round"))
    *retval = CIRCLE_CHECK;
  else if (is_enum("diamond"))
    *retval = DIAMOND_CHECK;
  else if (is_enum("xpm"))
    *retval = XPM_CHECK;
  else
    return FALSE; 

  return TRUE;
}
Beispiel #5
0
bool Type::is_primitive() const {
    return is_number() || is_bool() || is_char() || is_enum();
}