+void surf_parse_double(double *value)
+{
+ e_surf_token_t token;
+ int ret = 0;
+
+ token = surf_parse(); /* power_scale */
+ xbt_assert1((token == TOKEN_WORD), "Parse error line %d", surf_line_pos);
+ ret = sscanf(surf_parse_text, "%lg", value);
+ xbt_assert2((ret==1), "Parse error line %d : %s not a number", surf_line_pos,
+ surf_parse_text);
+}
+
+void surf_parse_trace(tmgr_trace_t *trace)
+{
+ e_surf_token_t token;
+
+ token = surf_parse(); /* power_trace */
+ xbt_assert1((token == TOKEN_WORD), "Parse error line %d", surf_line_pos);
+ if (strcmp(surf_parse_text, "") == 0)
+ *trace = NULL;
+ else
+ *trace = tmgr_trace_new(surf_parse_text);
+}
+
+void surf_parse_deployment_line(char **host, int *argc, char ***argv)
+{
+ e_surf_token_t token;
+
+
+ /* Parse Host name */
+ *host = xbt_strdup(surf_parse_text);
+
+ *argc = 0;
+ *argv = NULL;
+
+ /* Parse command line */
+ while((token = surf_parse())) {
+ if(token == TOKEN_NEWLINE) return;
+ xbt_assert1((token == TOKEN_WORD), "Parse error line %d", surf_line_pos);
+
+ (*argc)++;
+ *argv=xbt_realloc (*argv, (*argc) * sizeof(char*));
+ (*argv)[(*argc)-1]=xbt_strdup(surf_parse_text);
+ }
+}
+
+