From 91d9c50bb30583cbaad09620a42c0d8fe2421273 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Tue, 26 Sep 2017 14:37:03 +0200 Subject: Parse reals as string in JSON front-end --- frontends/json/jsonparse.cc | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/frontends/json/jsonparse.cc b/frontends/json/jsonparse.cc index d34a27944..629578c61 100644 --- a/frontends/json/jsonparse.cc +++ b/frontends/json/jsonparse.cc @@ -76,6 +76,7 @@ struct JsonNode { type = 'N'; data_number = ch - '0'; + data_string += ch; while (1) { @@ -84,12 +85,39 @@ struct JsonNode if (ch == EOF) break; + if (ch == '.') + goto parse_real; + if (ch < '0' || '9' < ch) { f.unget(); break; } data_number = data_number*10 + (ch - '0'); + data_string += ch; + } + + data_string = ""; + break; + + parse_real: + type = 'S'; + data_number = 0; + data_string += ch; + + while (1) + { + ch = f.get(); + + if (ch == EOF) + break; + + if (ch < '0' || '9' < ch) { + f.unget(); + break; + } + + data_string += ch; } break; -- cgit v1.2.3