From 5336dbf5369f77fba0f498a03523faebeed9c5b2 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Sun, 7 Sep 2008 12:19:15 -0400 Subject: Error-parsing floats and bools --- src/c/urweb.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src') diff --git a/src/c/urweb.c b/src/c/urweb.c index 1286ca5e..47b45367 100644 --- a/src/c/urweb.c +++ b/src/c/urweb.c @@ -799,3 +799,22 @@ lw_Basis_int lw_Basis_stringToInt_error(lw_context ctx, lw_Basis_string s) { else lw_error(ctx, FATAL, "Can't parse int: %s", s); } + +lw_Basis_float lw_Basis_stringToFloat_error(lw_context ctx, lw_Basis_string s) { + char *endptr; + lw_Basis_float n = strtod(s, &endptr); + + if (*s != '\0' && *endptr == '\0') + return n; + else + lw_error(ctx, FATAL, "Can't parse float: %s", s); +} + +lw_Basis_bool lw_Basis_stringToBool_error(lw_context ctx, lw_Basis_string s) { + if (!strcasecmp (s, "True")) + return lw_Basis_True; + else if (!strcasecmp (s, "False")) + return lw_Basis_False; + else + lw_error(ctx, FATAL, "Can't parse bool: %s", s); +} -- cgit v1.2.3