From 702208e54132477eeff922ebf641ba56540b9456 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 25 Jan 2011 00:08:48 +0000 Subject: Fix parsing of numbers that begin with a `.'. Add number parsing test case. git-svn-id: http://svn.drobilla.net/serd/trunk@56 490d8e77-9747-427b-9fa3-0b8f29cee8a0 --- src/reader.c | 2 +- tests/test-num.out | 6 ++++++ tests/test-num.ttl | 9 +++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 tests/test-num.out create mode 100644 tests/test-num.ttl diff --git a/src/reader.c b/src/reader.c index 3a4ef452..6d7badbf 100644 --- a/src/reader.c +++ b/src/reader.c @@ -908,7 +908,7 @@ read_literal(SerdReader reader, Node* dest) Ref str = 0; Node datatype = INTERNAL_NODE_NULL; const uint8_t c = peek_byte(reader); - if (c == '-' || c == '+' || is_digit(c)) { + if (c == '-' || c == '+' || c == '.' || is_digit(c)) { return read_number(reader, dest); } else if (c == '\"') { str = read_quotedString(reader); diff --git a/tests/test-num.out b/tests/test-num.out new file mode 100644 index 00000000..447f11df --- /dev/null +++ b/tests/test-num.out @@ -0,0 +1,6 @@ + "0.1"^^ . + "+0.2"^^ . + "-0.3"^^ . + ".4"^^ . + "+.5"^^ . + "-.6"^^ . diff --git a/tests/test-num.ttl b/tests/test-num.ttl new file mode 100644 index 00000000..086ca5ab --- /dev/null +++ b/tests/test-num.ttl @@ -0,0 +1,9 @@ +@prefix eg: . + +eg:thing eg:num 0.1 . +eg:thing eg:num +0.2 . +eg:thing eg:num -0.3 . +eg:thing eg:num .4 . +eg:thing eg:num +.5 . +eg:thing eg:num -.6 . + -- cgit v1.2.1