#ifndef _SURF_SURF_PARSE_H
#define _SURF_SURF_PARSE_H
+#include "xbt/misc.h"
+#include "surf/trace_mgr.h"
+
typedef enum {
TOKEN_EMPTY = 0,
TOKEN_LP = 512,
e_surf_token_t surf_parse(void);
void find_section(const char* file, const char* section_name);
void close_section(const char* section_name);
+void surf_parse_float(xbt_maxmin_float_t *value);
+void surf_parse_trace(tmgr_trace_t *trace);
+
/* Should not be called if you use the previous "section" functions */
void surf_parse_open(const char *file);
tok_num = 0;
}
+void surf_parse_float(xbt_maxmin_float_t *value)
+{
+ e_surf_token_t token;
+ int ret = 0;
+
+ token = surf_parse(); /* power_scale */
+ xbt_assert1((token == TOKEN_WORD), "Parse error line %d", line_pos);
+ ret = sscanf(surf_parse_text, XBT_MAXMIN_FLOAT_T, value);
+ xbt_assert2((ret==1), "Parse error line %d : %s not a number", 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", line_pos);
+ if (strcmp(surf_parse_text, "") == 0)
+ *trace = NULL;
+ else
+ *trace = tmgr_trace_new(surf_parse_text);
+}
/* Local variables: */
/* mode: c */
/* End: */