diff --git a/autotests/folding/test.c.fold b/autotests/folding/test.c.fold
--- a/autotests/folding/test.c.fold
+++ b/autotests/folding/test.c.fold
@@ -8,14 +8,14 @@
two \
three
-static uint64_t intWithSuffix = 42ull;
+static uint64_t intWithSuffix = 42ull + ~1233L;
static int octNum = 07232;
static int invalidOctNum = 09231;
static uint64_t hexNum = 0xDEADBEEF42;
static uint64_t invalidHexNum = 0xGLDFKG;
static char binNum = 0b0101010;
-static double d1 = 42.;
+static double d1 = 42. + 0x1.5p+2;
static double d2 = .42;
static double d3 = 42.3e1;
static double d4 = .2e-12;
diff --git a/autotests/html/test.c.html b/autotests/html/test.c.html
--- a/autotests/html/test.c.html
+++ b/autotests/html/test.c.html
@@ -14,19 +14,19 @@
two \
three
-static uint64_t intWithSuffix = 42ull;
+static uint64_t intWithSuffix = 42ull + ~1233L;
static int octNum = 07232;
-static int invalidOctNum = 09231;
+static int invalidOctNum = 09231;
static uint64_t hexNum = 0xDEADBEEF42;
-static uint64_t invalidHexNum = 0xGLDFKG;
+static uint64_t invalidHexNum = 0xGLDFKG;
static char binNum = 0b0101010;
-static double d1 = 42.;
+static double d1 = 42. + 0x1.5p+2;
static double d2 = .42;
static double d3 = 42.3e1;
static double d4 = .2e-12;
static double d5 = 32.e+12;
-static float floatQualifier = 23.123f;
+static float floatQualifier = 23.123f;
static const char c1 = 'c';
static const char c2 = '\n';
diff --git a/autotests/input/test.c b/autotests/input/test.c
--- a/autotests/input/test.c
+++ b/autotests/input/test.c
@@ -8,14 +8,14 @@
two \
three
-static uint64_t intWithSuffix = 42ull;
+static uint64_t intWithSuffix = 42ull + ~1233L;
static int octNum = 07232;
static int invalidOctNum = 09231;
static uint64_t hexNum = 0xDEADBEEF42;
static uint64_t invalidHexNum = 0xGLDFKG;
static char binNum = 0b0101010;
-static double d1 = 42.;
+static double d1 = 42. + 0x1.5p+2;
static double d2 = .42;
static double d3 = 42.3e1;
static double d4 = .2e-12;
diff --git a/autotests/reference/test.c.ref b/autotests/reference/test.c.ref
--- a/autotests/reference/test.c.ref
+++ b/autotests/reference/test.c.ref
@@ -8,19 +8,19 @@
two \
three
-static uint64_t intWithSuffix = 42ull;
+static uint64_t intWithSuffix = 42ull + ~1233L;
static int octNum = 07232;
-static int invalidOctNum = 09231;
+static int invalidOctNum = 09231;
static uint64_t hexNum = 0xDEADBEEF42;
-static uint64_t invalidHexNum = 0xGLDFKG;
+static uint64_t invalidHexNum = 0xGLDFKG;
static char binNum = 0b0101010;
-static double d1 = 42.;
+static double d1 = 42. + 0x1.5p+2;
static double d2 = .42;
static double d3 = 42.3e1;
static double d4 = .2e-12;
static double d5 = 32.e+12;
-static float floatQualifier = 23.123f;
+static float floatQualifier = 23.123f;
static const char c1 = 'c';
static const char c2 = '\n';
diff --git a/data/syntax/c.xml b/data/syntax/c.xml
--- a/data/syntax/c.xml
+++ b/data/syntax/c.xml
@@ -1,17 +1,24 @@
-
+
+
+
+
+]>
@@ -119,34 +126,18 @@
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -173,7 +164,7 @@
-
+
@@ -228,6 +219,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -239,6 +260,7 @@
+