Example #1
0
int
isvectordef(const char *type, relation rel)
{
	definition *def;

	for (;;) {
		switch (rel) {
		case REL_VECTOR:
			return (!streq(type, "string"));
		case REL_ARRAY:
			return (0);
		case REL_POINTER:
			return (0);
		case REL_ALIAS:
			def = (definition *) FINDVAL(defined, type, typedefed);
			if (def == NULL) {
				return (0);
			}
			type = def->def.ty.old_type;
			rel = def->def.ty.rel;
		}
	}

	return (0);
}
Example #2
0
static int
undefined(char *type)
{
    definition *def;

    def = (definition *) FINDVAL(defined, type, findtype);
    return (def == NULL);
}
Example #3
0
static char* fixit(char* type, char* orig)
{
  definition* def;

  def = (definition*)FINDVAL(defined, type, findit);
  if (def == NULL || def->def_kind != DEF_TYPEDEF) {
    return (orig);
  }
  switch (def->def.ty.rel) {
  case REL_VECTOR:
    return (def->def.ty.old_type);
  case REL_ALIAS:
    return (fixit(def->def.ty.old_type, orig));
  default:
    return (orig);
  }
}