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"); }
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; }
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"); }
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; }
bool Type::is_primitive() const { return is_number() || is_bool() || is_char() || is_enum(); }