- if(strcmp("event",token) == 0) {
- ev = g_new(event,1);
- sequence_push(&events,ev);
- parseEvent(&in,ev, &unnamedTypes, &namedTypes);
- }
- else if(strcmp("type",token) == 0) {
- parseTypeDefinition(&in, &unnamedTypes, &namedTypes);
+ if(strcmp(token, "<")) in.error(&in,"not a facility file");
+ token = getName(&in);
+
+ if(strcmp("facility",token) == 0) {
+ fac = g_new(facility_t, 1);
+ fac->name = NULL;
+ fac->description = NULL;
+ sequence_init(&(fac->events));
+ table_init(&(fac->named_types));
+ sequence_init(&(fac->unnamed_types));
+
+ parseFacility(&in, fac);
+
+ //check if any namedType is not defined
+ g_assert(checkNamedTypesImplemented(&fac->named_types) == 0);
+
+ g_assert(generateChecksum(fac->name, &checksum, &fac->events) == 0);
+
+ f = g_new(LttFacility,1);
+ f->base_id = 0;
+ generateFacility(f, fac, checksum);
+
+ t->facility_number++;
+ g_ptr_array_add(t->facilities,f);
+
+ free(fac->name);
+ free(fac->description);
+ freeEvents(&fac->events);
+ sequence_dispose(&fac->events);
+ freeNamedType(&fac->named_types);
+ table_dispose(&fac->named_types);
+ freeTypes(&fac->unnamed_types);
+ sequence_dispose(&fac->unnamed_types);
+ g_free(fac);