char * str, *str1;
t->type = ENUM;
sequence_init(&(t->labels));
+ sequence_init(&(t->labels_description));
+ t->already_printed = 0;
t->size = getSizeAttribute(in);
t->fmt = allocAndCopy(getFormatAttribute(in));
getRAnglebracket(in);
str = allocAndCopy(getNameAttribute(in));
token = getValueStrAttribute(in);
if(token){
- str1 = appendString(str,"=");
- free(str);
- str = appendString(str1,token);
- free(str1);
- sequence_push(&(t->labels),str);
- }else
- sequence_push(&(t->labels),str);
+ str1 = appendString(str,"=");
+ free(str);
+ str = appendString(str1,token);
+ free(str1);
+ sequence_push(&(t->labels),str);
+ }
+ else
+ sequence_push(&(t->labels),str);
getForwardslash(in);
getRAnglebracket(in);
+ //read description if any. May be NULL.
+ str = allocAndCopy(getDescription(in));
+ sequence_push(&(t->labels_description),str);
+
//next label definition
getLAnglebracket(in);
token = getToken(in); //"label" or "/"
if(strcmp("/",token))in->error(in, "not a valid enum definition");
token = getName(in);
if(strcmp("enum",token))in->error(in, "not a valid enum definition");
- getRAnglebracket(in); //</label>
+ getRAnglebracket(in); //</label>
}
else if(strcmp(token,"int") == 0) {
t->type = INT;
getRAnglebracket(in); //<type name=type_name>
getLAnglebracket(in); //<struct>
token = getName(in);
- if(strcmp("struct",token))in->error(in,"not a valid type definition");
+ //MD ??if(strcmp("struct",token))in->error(in,"not a valid type definition");
ungetToken(in);
parseType(in,t, unnamed_types, named_types);