Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
cosmetics
[simgrid.git] / src / surf / surfxml_parseplatf.c
index 4fa418f..7a6cd0e 100644 (file)
@@ -49,12 +49,6 @@ void surfxml_bufferstack_pop(int new)
   }
 }
 
-/*
- * Pass arguments to parsing callback as structures to save some time (and allow callbacks to ignore some)
- */
-
-surf_parsing_cluster_arg_t struct_cluster = NULL;
-
 /*
  * Trace related stuff
  */
@@ -82,10 +76,9 @@ static void parse_Etag_trace(void)
   tmgr_trace_t trace;
   if (!trace_file || strcmp(trace_file, "") != 0) {
     trace = tmgr_trace_new(trace_file);
-  } else {
-    if (strcmp(surfxml_pcdata, "") == 0)
+  } else if (strcmp(surfxml_pcdata, "") == 0) {
       trace = NULL;
-    else
+  } else {
       trace =
           tmgr_trace_new_from_string(trace_id, surfxml_pcdata,
                                      trace_periodicity);
@@ -136,10 +129,24 @@ static void parse_Stag_trace_connect(void)
   }
 }
 
-/* Init and free parse data */
-
-static void init_data(void)
+/* This function acts as a main in the parsing area. */
+void parse_platform_file(const char *file)
 {
+  int parse_status;
+
+  surf_parse_reset_callbacks();
+
+  /* Register classical callbacks */
+  surfxml_add_callback(STag_surfxml_prop_cb_list, &parse_properties_XML);
+  routing_register_callbacks();
+
+  /* init the flex parser */
+  surfxml_buffer_stack_stack_ptr = 1;
+  surfxml_buffer_stack_stack[0] = 0;
+
+  surf_parse_open(file);
+
+  /* Init my data */
   if (!surfxml_bufferstack_stack)
     surfxml_bufferstack_stack = xbt_dynar_new(sizeof(char *), NULL);
 
@@ -158,10 +165,12 @@ static void init_data(void)
   /* we care about the ASes while parsing the platf. Incredible, isnt it? */
   sg_platf_AS_end_add_cb(routing_AS_end);
   sg_platf_AS_begin_add_cb(routing_AS_begin);
-}
 
-static void free_data(void)
-{
+
+  /* Do the actual parsing */
+  parse_status = surf_parse();
+
+  /* Free my data */
   xbt_dict_free(&trace_connect_list_host_avail);
   xbt_dict_free(&trace_connect_list_power);
   xbt_dict_free(&trace_connect_list_link_avail);
@@ -170,26 +179,8 @@ static void free_data(void)
   xbt_dict_free(&traces_set_list);
   xbt_dict_free(&random_data_list);
   xbt_dynar_free(&surfxml_bufferstack_stack);
-}
-
-/* This function acts as a main in the parsing area. */
-void parse_platform_file(const char *file)
-{
-  int parse_status;
 
-  surf_parse_reset_callbacks();
-
-  /* Register classical callbacks */
-  surfxml_add_callback(STag_surfxml_prop_cb_list, &parse_properties_XML);
-  routing_register_callbacks();
-
-  surfxml_buffer_stack_stack_ptr = 1;
-  surfxml_buffer_stack_stack[0] = 0;
-
-  surf_parse_open(file);
-  init_data();
-  parse_status = surf_parse();
-  free_data();
+  /* Stop the flex parser */
   surf_parse_close();
   if (parse_status)
     xbt_die("Parse error in %s", file);